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.
14 trang |
Chia sẻ: lylyngoc | Lượt xem: 1568 | Lượt tải: 1
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.