Dễ dàng thu nhập và lưu trữ dữ liệu hiệu năng trong DB2

Bạn có bao giờ tự hỏi rằng mình làm thế nào có thể thu thập dữ liệu hiệu năng về hệ thống DB2 một cách đơn giản nhất mà không cần dùng thêm bất kì một công cụ nào? Ở bài viết này, đưa ra vấn đề làm thế nào vận hành ứng dụng mới cho DB2® cho những khung mẫu phiên bản V10.1 (ban đầu là phiên bản 9.7) dùng để theo dõi trong Linux®, UNIX®, và Windows®. Bài viết cũng giải thích làm thế nào để kết hợp giữa các công cụ trong DB2 để chọn, ghi nhận và lưu trữ dữ liệu mà bạn có thể dùng để phân tích như SQL hay công cụ BI.

pdf14 trang | Chia sẻ: lylyngoc | Lượt xem: 1493 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Dễ dàng thu nhập và lưu trữ dữ liệu hiệu năng trong DB2, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Dễ dàng thu nhập và lưu trữ dữ liệu hiệu năng trong DB2 Tận dụng khuôn khổ giám sát với các tiện ích DB2 Bạn có bao giờ tự hỏi rằng mình làm thế nào có thể thu thập dữ liệu hiệu năng về hệ thống DB2 một cách đơn giản nhất mà không cần dùng thêm bất kì một công cụ nào? Ở bài viết này, đưa ra vấn đề làm thế nào vận hành ứng dụng mới cho DB2® cho những khung mẫu phiên bản V10.1 (ban đầu là phiên bản 9.7) dùng để theo dõi trong Linux®, UNIX®, và Windows®. Bài viết cũng giải thích làm thế nào để kết hợp giữa các công cụ trong DB2 để chọn, ghi nhận và lưu trữ dữ liệu mà bạn có thể dùng để phân tích như SQL hay công cụ BI. Giới thiệu Các số liệu về hiệu năng đã có sẵn trong khoảng thời gian dài thông qua các snapshort. Các snapshort đó cung cấp rất nhiều thông tin, nhưng không thích hợp cho việc thu thập dữ liệu lịch sử. Nếu bạn muốn thu thập dữ liệu lịch sử, bạn cần phải loại bỏ những dữ liệu không cần thiết, bởi vì các snapshort ghi nhận được nhiều hơn những gì bạn cần. Hơn thế nữa, bạn cần phải có nhiều kịch bản lệnh để rút trích dữ liệu từ các snapshort và lưu trữ chúng. Bắt đầu với DB2 9.7, một khung theo dõi mới được đưa ra. Khung mới này làm việc ở mức cơ sở dữ liệu, và giao diện dựa trên SQL cho phép bạn lấy ra chính xác những gì bạn cần từ DB2. Tất cả những gì bạn cần là những kiến thức cơ bản về SQL và những chức năng của DB2 mà bạn sáng tạo và mở rộng thêm để bắt đầu. Các bước tiếp theo hướng dẫn cách để xây dựng thành công một cơ sở dữ liệu hiệu năng. Các ví dụ trong tài liệu này được xây dựng với DB2 v10.1 cho Linux, UNIX và Windows. Bởi vì các khung theo dõi đã có sẵn từ DB2 9.7, bạn cũng có thể sử dụng DB2 với phiên bản này. Khung theo dõi đã có sẵn trong tất cả các ấn bản của DB2. Thu thập và lưu trữ dữ liệu Để thu thập và lưu trữ dữ liệu hiệu năng: 1. Xác định những dữ liệu nào bạn muốn thu nhận và khoảng thời gian mà bạn muốn có nó trong cơ sở dữ liệu hiệu năng. 2. Thiết lập cơ sở dữ liệu để lưu trữ. 3. Thiệt lập cơ chế, quy định để thu nhận và truyền tải dữ liệu hiệu năng vào cơ sở dữ liệu của bạn. Xác định dữ liệu cần nắm bắt và khoảng thời gian nắm bắt Có nhiều cách để tập hợp dữ liệu vận hành trong Hệ quản trị DB2 bằng việc sử dụng một khung theo dõi mới. Một cách nữa là sử dụng khung nhìn (view) được định vị trong lược đồ SYSIBMADM trong DB2. Các khung nhìn này thường trong trạng thái sẵn sàng sử dụng với câu SQL và được xây dựng bằng cách tập hợp các kết quả của một hoặc nhiều bảng chức năng. Bạn cũng có thể sử dụng câu truy vấn sau trên Cơ sở dữ liệu (CSDL), và bạn sẽ thu nhận được dữ liệu để xác định các khung nhìn nào đã sẵn sàng. Liệt kê 1. Danh sách dòng lệnh bảng list tables for schema SYSIBMADM Hình 1 cho biết danh sách các bảng yêu cầu, bao gồm các thông tin: tên của bảng/ khung nhìn, tên lược đồ, kiểu của đối tượng (type) (quy ước T cho Bảng và V cho Khung nhìn) và thời điểm đối tượng được tạo. Hình 1. Danh sách các bảng Một cách khác cho bạn là sử dụng các bảng chức năng (table functions) có trong DB2 V9.7. Những bảng chức năng này cũng có thể được truy vấn bằng cách sử dụng SQL với điều kiện cần có tham số đầu vào, điều mà các khung nhìn đã được đề cập ở trên không có yêu cầu. Tùy theo mục đích làm việc, bạn có thể sử dụng nhiều bảng chức năng khác nhau. Một số chức năng chính thường dùng là:  Monitor functions (các chức năng giám sát) được định hướng cho nhiều đối tượng CSDL và các thành phần trong DB2. Các chức năng này có tên bắt đầu bằng mon_get.  Workload management (WLM) – được định hướng dùng cho các bảng chức năng. Những bảng chức năng này cho phép bạn có cái nhìn thấu đáo về cách thức làm việc trong DB2 dưới quan điểm của WLM. Các chức năng được cho sẵn trong WLM đầu có tên bắt đầu bằng wlm_get.  Các chức năng có tên bắt đầu bằng admin_get cung cấp thông tin có thể hữu ích trong việc quản trị CSDL như thông tin cài đặt (ví dụ khi bạn muốn giám sát về kích cỡ của các bảng hoặc lượng tiêu thụ không gian trong bộ nhớ). Để có một danh sách hoàn chỉnh tất cả các bảng chức năng có sẵn và các khung nhìn quản trị, nên cài đặt DB2 V9.7 trên hệ điều hành Linux, UNIX và Windows Information Center (xem phần Tài nguyên). Để có danh sách các bảng chức năng được sử dụng phổ biến nhất, ta sử dụng câu lệnh sau trong Liệt kê 2. Liệt kê 2. Truy vấn danh sách các bảng chức năng có sẵn select funcname from syscat.functions where funcname like 'MON_GET%' \n or funcname like 'WLM_GET%' or funcname like 'ADMIN_GET%' Kết quả truy vấn được thể hiện trong Hình 2. Hình 2. Truy vấn danh sách các bảng chức năng có sẵn DB2 Information Center cung cấp cho người dùng hiểu rõ về những bảng chức năng nào cho ra những dữ liệu nào (xem phần Tài nguyên). Trong ví dụ này, bạn có thể giám sát một số bảng được duyệt trên tất cả các bảng trong CSDL. Bạn có thể sử dụng bảng chức năng MON_GET_TABLE bởi vì tablefunction (bảng chức năng) sẽ trả về một cột cho biết số lần được duyệt của mỗi bảng trong CSDL. Để có một hình ảnh rõ hơn về số lượng bảng được duyệt qua một ngày làm việc, bạn có thể tập hợp các dữ liệu được yêu cầu trong khoảng thời gian 10 phút bằng cách thực hiện câu lệnh sau trong Liệt kê 3. Liệt kê 3. Ví dụ truy vấn SELECT current_timestamp, tabschema, tabname, table_scans FROM TABLE(MON_GET_TABLE('','',-2)) AS t Nếu bạn nhìn vào các bảng chức năng MON_GET_TABLE, bạn sẽ thấy ở đây có 3 tham số đầu vào: tham số đầu tiên là tên lược đồ, thứ hai là tên bảng, và tham số thứ ba cho bạn định rõ thành phần nào trong DPF (database partition feature – điểm phân khu trong CSDL) của CSDL mà bạn muốn tập hợp dữ liệu từ đó. Trong ví dụ này, bạn có thể nắm bắt tất cả các bảng được duyệt trong tất cả các lược đồ trong toàn bộ các CSDL thành viên. Đó là lý do vì sao 2 tham số đầu tiên có giá trị ‘’- giá trị “NULL” và tham số cuối có giá trị là -2, tức là chỉ tất cả các CSDL thành viên. Trong thực tế, bạn có thể gới hạn số lượng bảng để giám sát bởi vì không phải mọi thứ đều giúp ích cho bạn và bạ̀n có thể thu thập nhiều dữ liệu hơn bạn cần. Xác dịnh khoảng thời gian cho việc thu thập dữ liệu Khoảng thời gian dùng để tập hợp dữ liệu rất quan trọng và thường chiếm nhiều thời gian đánh giá. Đây được xem là một yếu tố chủ chốt giúp bạn xác định một thành phần rõ ràng hoặc những tác động mà bạn muốn xem xét.. Bạn cần biết rõ mục đích của mình trong việc thu thập dữ liệu. Nếu bạn gặp khó khăn hay cố gắng để xác định đâu là nguyên nhân của vấn đề bạn đang gặp trong hiện tại, bạn cần có dữ liệu trong một khoảng thời gian ngắn. Nếu bạn đang thu thập dữ liệu trong một xu hướng dài hạn, bạn không cần nắm bắt nhiều thông tin chi tiết trong một thời gian ngắn. Một yếu tố khác cần ghi nhớ là khoảng không gian bạn muốn dự trù trong việc vận hành CSDL. Nếu bạn muốn tập hợp dữ liệu trong một khoảng thời gian ngắn, bạn có thể dự tính để có một số bảng có kích thước lớn trong một thời gian rất ngắn, tận dụng khoảng không gian lưu trữ của ổ đĩa. Thiết lập cơ chế sưu tập và vận chuyển để bắt giữ các dữ liệu mong muốn Nếu bảng mục tiêu của bạn nằm trong cùng một cơ sở dữ liệu tương tự như hệ thống nguồn của bạn, bạn có thể dùng câu lệnh INSERT để chèn dữ liệu của bạn vào bảng. Nếu bảng đích của bạn nằm ở một cơ sở dữ liệu riêng biệt, bạn có thể sử dụng những tiện ích tải cross-load từ nguồn của bạn vào hệ thống đích mà bạn mong muốn. Để tạo dữ liệu lịch sử, bạn cần tổ hợp để ghi nhận thời gian trong dữ liệu của bạn mà bạn có thể sử dụng để theo dõi dữ liệu của bạn theo thời gian và tóm tắt hay tổng hợp dữ liệu trong khoảng thời gian mong muốn. Nếu bạn đang đứng góc nhìn của người quản trị, thời gian hiện tại đã được bao gồm trong định nghĩa khung nhìn. Nếu bạn sử dụng chức năng bảng, bạn phải đăng ký thủ công bao gồm các current_timestamp đặc biệt trong truy vấn của bạn. Sau khi bạn tạo ra một cơ sở dữ liệu riêng biệt được gọi là PERFDB sẽ chứa các dữ liệu hoạt động, bạn phải cung cấp câu lệnh gọi hàm mà thực sự cần thiết cho các truy vấn trên hệ thống nguồn và gửi dữ liệu trở lại tiện ích LOAD. Hoạt động này có thể được chia thành bốn bước sau: 1. Kết nối cơ sở dữ liệu đích. 2. Khai báo con trỏ đến câu lệnh select.. 3. Gọi các tiện ích load để thực sự nạp dữ liệu vào bảng mục tiêu. 4. Thiết lập lại kết nối. Truy vấn trong Liệt kê 6 cho thấy bạn làm thế nào để tạo ra các kịch bản tải, lựa chọn dữ liệu thích hợp, và, sau đó, tải dữ liệu vào bảng mong muốn Liệt kê 6. Truy vấn để tạo ra các kịch bản tải CONNECT to PERFDB; DECLARE C1 CURSOR database sample user using FOR SELECT current_timestamp, tabschema, tabname, table_scans FROM TABLE(MON_GET_TABLE('','',-2)) AS t; LOAD FROM "C1" of cursor MESSAGES "C:\temp\msg.txt" TEMPFILES PATH "C:\temp" INSERT INTO TABLESCANS (current_timestamp, tabschema, tabname, table_scans) NONRECOVERABLE INDEXING MODE AUTOSELECT; CONNECT RESET; Tất cả bốn bước cần phải được thực hiện theo thứ tự, vì vậy nó có ý nghĩa để đặt chúng lại với nhau trong một tập tin và có DB2 process cập nhật tập tin một cách thường xuyên sử dụng một lịch trình cơ sở. Trong trường hợp này, một tập tin gọi là loadcursor.sql được tạo ra và nó có chứa các báo cáo từ bốn bước. Bộ vi xử lý dòng lệnh DB2 đã được sử dụng để thực hiện các lệnh từ một dấu nhắc DOS. Liệt kê 7. Chạy kịch bản tải đã tạo db2 -tvf loadcursor.sql Kết quả trình bày báo cáo tiện ích tải đã được thực hiện, bao gồm một số liệu thống kê về bao nhiêu hàng đã được nạp (xem ảnh lớn hơn). Hình 5. Chạy kịch bản đã tạo Các ví dụ trên được hướng dẫn dựa trên nền tảng Windows, nhưng bạn có thể sử dụng chúng một cách dễ dàng trên các nền tảng UNIX và Linux. Có một vài điều cần lưu ý.  Hầu hết các biện pháp trong khuôn khổ theo dõi được kiểm chứng. Nếu bạn muốn biết giá trị denta giữa hai thời điểm khác nhau của sự đo lường, bạn cần phải bỏ qua các phần giống nhau của các biện pháp với nhau.  Màn hình “cũ” chuyển mạch trên cấp độ thể hiện không có ảnh hưởng đến việc thu thập dữ liệu của khung "mới", mà là ở cấp độ cơ sở dữ liệu.  Trong bài viết này, chỉ là một ví dụ đơn giản đã được chứng minh. Không có gì phụ thuộc vào cách của bạn kết hợp nhiều chức năng bảng vào một truy vấn và giải nén dữ liệu đó. Ghi chú sử dụng Nếu bạn đang có kế hoạch thu thập rất nhiều dữ liệu để làm quản lý hiệu năng trên hệ thống DB2 của bạn, nó có thể tiết kiệm chi phí hiệu quả và dễ dàng hơn để sử dụng Optim Performance Manager (OPM). OPM được bao gồm với DB2 nâng cao Enterprise Server Edition (AESE) hoặc được bán như một sản phẩm riêng biệt. OPM là một giải pháp toàn diện và chủ động cho theo dõi thời gian thực và hiệu năng quản lý kho cho DB2 và InfoSphere Warehouse cho Linux, UNIX, và Windows. Thông tin thêm có thể được tìm thấy trong phần Tài nguyên. Bạn có thể sử dụng dữ liệu đã thu nhập được với những phần mềm khác như Optim Query Workload Tuner, Optim Query Tuner, hoặc Cognos BI để tạo nên những truy vấn, toàn bộ luồng công việc và các bản báo cáo ngay trên những dữ liệu đã thu nhập. Ví dụ, bạn có thể thu nhận những dữ liệu để có thể đưa ra cho bạn top 10 những câu truy vấn trong môi trường của bạn trong từng khoảng thời gian để có chúng như là input của những hoạt động trong Query Workload Tuner. Tổng kết Trong bài báo này, bạn đã xây dựng các câu truy vấn để lấy ra dữ liệu hiệu năng trong DB2 bằng cách sử dụng các chức năng đối với bảng. Dữ liệu được lấy ra sau đó sẽ được tải qua một cơ sở dữ liệu khác để có thể sử dụng cho mục đích phân tích hoặc làm dữ liệu nguồn cho các cơ sở dữ liệu hiêu suất khác hoặc các công cụ báo cáo.
Tài liệu liên quan