Hướng dẫn sử dụng IBTransaction Monitor
Dmitry Kuzmenko, 08-Th06-2008
IBSurgeon Transaction Monitor (IBTM) là một gói phần mềm được thiết kế để giám sát, xem và phân tích các giao dịch động trong cơ sở dữ liệu InterBase và Firebird.
Mục lục
Hướng dẫn sử dụng IBSurgeon Transaction Monitor. {C}{C}{C}{C}1{C}{C}{C}{C}{C}{C}{C}{C}{C}
Bên trong có gì?. {C}{C}{C}{C}2{C}{C}{C}{C}{C}{C}{C}{C}{C}
Monitor{C}{C}{C}{C}2{C}{C}{C}{C}{C}{C}{C}{C}{C}
Những gì được ghi lại?. {C}{C}{C}{C}2{C}{C}{C}{C}{C}{C}{C}{C}{C}
Configuration Assistant{C}{C}{C}{C}3{C}{C}{C}{C}{C}{C}{C}{C}{C}
Sử dụng Configuration Assistant{C}{C}{C}{C}4{C}{C}{C}{C}{C}{C}{C}{C}{C}
Quản lý dịch vụ Monitor. {C}{C}{C}{C}4{C}{C}{C}{C}{C}{C}{C}{C}{C}
Cấu hình Máy chủ. {C}{C}{C}{C}4{C}{C}{C}{C}{C}{C}{C}{C}{C}
Cấu hình Cơ sở dữ liệu. {C}{C}{C}{C}5{C}{C}{C}{C}{C}{C}{C}{C}{C}
Visualizer{C}{C}{C}{C}8{C}{C}{C}{C}{C}{C}{C}{C}{C}
Các loại chế độ xem đồ thị. {C}{C}{C}{C}13{C}{C}{C}{C}{C}{C}{C}{C}{C}
Hỗ trợ kỹ thuật{C}{C}{C}{C}16{C}{C}{C}{C}{C}{C}{C}{C}{C}
Gói IBTM chứa ba mô-đun chính:
- Monitor - Một chương trình nhỏ dựa trên dịch vụ Win32 để giám sát và ghi lại trạng thái giao dịch từ một hoặc nhiều cơ sở dữ liệu.
- Configuration Assistant Dùng để cấu hình các thiết lập cho Monitor và Viewer.
- Visualizer Được thiết kế để xem và phân tích thông tin được ghi lại bởi Monitor.
Monitor là một chương trình nhỏ dựa trên dịch vụ Win32 (ibtm.exe), hoạt động trên Windows NT, 2000, XP và Windows Server 2003 và 2008 (cả 32 và 64 bit). Khi khởi động, Monitor đọc các thiết lập (được đặt bởi Configuration Assistant) và giám sát cơ sở dữ liệu được chỉ định. Trong quá trình giám sát, nó kết nối đến cơ sở dữ liệu mỗi phút (khoảng thời gian mặc định được khuyến nghị) và đọc trạng thái của các giao dịch.
Nếu InterBase hoặc Firebird đang chạy trên Windows, Monitor có thể được cài đặt trên máy chủ nơi cơ sở dữ liệu lưu trú. Đối với các máy chủ dựa trên Linux, nó có thể được cài đặt trên bất kỳ máy tính Windows nào có quyền truy cập mạng đến máy chủ InterBase hoặc Firebird. Bạn có thể cài đặt Monitor bằng các phương pháp sau:
- Sử dụng Configuration Assistant
- Từ cửa sổ dòng lệnh
Quan trọng! Trước khi bắt đầu cài đặt Monitor, bạn cần đảm bảo rằng bạn đã đăng nhập vào Windows với quyền và đặc quyền Quản trị viên. Monitor sẽ được cài đặt như một dịch vụ với chế độ khởi động Tự động dưới tài khoản người dùng Localsystem.
Vì Monitor chỉ kết nối định kỳ đến cơ sở dữ liệu và ghi thông tin thu thập được vào một tệp nhật ký văn bản thuần túy, không cần phải áp dụng thêm bất kỳ quy tắc nào. Tuy nhiên, nếu bạn muốn bảo mật cấu hình Monitor và thông tin đăng nhập cơ sở dữ liệu, bạn phải thay đổi thiết lập dịch vụ của Monitor và quyền truy cập thư mục (và nhật ký) của nó nếu cần, thông qua Bảng điều khiển Dịch vụ Windows.
Các tham số cấu hình Monitor sẽ được thảo luận trong Configuration Assistant.
Monitor định kỳ kiểm tra trang tiêu đề của cơ sở dữ liệu, sau đó lưu trữ thông tin giao dịch của cơ sở dữ liệu vào nhật ký, như sau:
- Thời gian ghi nhật ký
- Số giao dịch cũ nhất
- Số giao dịch snapshot cũ nhất
- Số giao dịch đang hoạt động cũ nhất
- Số giao dịch tiếp theo
- Số lượng giao dịch đang hoạt động (phụ thuộc vào phiên bản máy chủ)
Thông tin này được lưu trữ trong tệp nhật ký và sau đó có thể được xem và phân tích bằng Visualizer. Sử dụng thông tin trạng thái giao dịch trực quan, bạn có thể hiểu các ứng dụng của bạn giữ giao dịch mở trong bao lâu, có bao nhiêu giao dịch đồng thời đang chạy, các giao dịch snapshot đang chạy trong bao lâu, thời điểm nào là thời điểm căng thẳng nhất mà các ứng dụng bắt đầu giao dịch, v.v.
Lưu ý: Monitor ghi thông tin trạng thái giao dịch vào tệp nhật ký cục bộ. Nó không gửi thông tin này hoặc bất kỳ thông tin nào khác qua mạng.
Configuration Assistant (ibtmconfig.exe) được sử dụng để thiết lập các tham số cấu hình cho Monitor và Viewer. Nó lưu các tham số cấu hình trong tệp ibtm.ini.
! Trên Windows Vista hoặc Windows 7, bạn cần chạy Configuration Assistant với đặc quyền quản trị (nhấp chuột phải), nếu không nó sẽ không thể quản lý dịch vụ IBTM (Lỗi 5, truy cập bị từ chối).
Mẹo! IBTM không sử dụng Registry để lưu trữ các tham số cấu hình, vì vậy bạn có thể chuẩn bị cấu hình trên một máy tính và sau đó di chuyển ibtm.ini đến một máy tính khác nơi Monitor được cài đặt (Dịch vụ Monitor cần được khởi động lại để đọc cấu hình mới).
Monitor và Configuration Assistant được trình cài đặt IBTM đặt trong cùng một thư mục, để Monitor và Configuration Assistant chia sẻ cùng một tệp cấu hình (ibtm.ini).

Configuration Assistant giúp bạn
- Quản lý dịch vụ Monitor - cài đặt, gỡ cài đặt, khởi động, dừng, tạm dừng và khởi động lại.
- Chỉ định các máy chủ InterBase hoặc Firebird có cơ sở dữ liệu cần được giám sát
- Chỉ định cơ sở dữ liệu và các tùy chọn giám sát/lập lịch cho một cơ sở dữ liệu cụ thể

Khi Configuration Assistant khởi động, nó xác định trạng thái dịch vụ Monitor trên Hệ thống.
Cài đặt Monitor - nếu dịch vụ Monitor chưa được cài đặt, bạn sẽ thấy thông báo “chưa cài đặt” trong nhãn trạng thái IBTM ở góc trên bên trái. Để cài đặt Monitor, nhấn nút Install ở phía bên phải của cửa sổ. Lưu ý rằng dịch vụ Monitor sẽ sử dụng giá trị của hộp kiểm Loại khởi động (tự động hoặc thủ công). Nếu việc cài đặt dịch vụ Monitor thành công, bạn sẽ thấy trạng thái IBTM thay đổi thành “đã dừng” và nút “Chạy dịch vụ” sẽ được kích hoạt.
Bạn cần khởi động lại dịch vụ Monitor bất cứ khi nào bạn thay đổi bất kỳ tham số cấu hình cơ sở dữ liệu nào.
IBTM sử dụng giao thức kết nối TCP/IP để truy cập cơ sở dữ liệu để giám sát. Vì vậy, nếu bạn cài đặt Monitor trên cùng máy tính nơi máy chủ đang chạy, bạn cần thêm máy chủ dưới dạng localhost hoặc tên máy chủ của máy chủ. Sau khi hoàn tất, bạn sẽ có thể thêm các cơ sở dữ liệu sẽ được giám sát trên máy chủ này.
Với phiên bản IBTM này, bạn chỉ có thể giám sát một cơ sở dữ liệu tại một thời điểm. Cần có thêm giấy phép để giám sát một hoặc nhiều cơ sở dữ liệu đồng thời. Vui lòng liên hệ với chúng tôi để biết chi tiết ( www.ibphoenix.com).
Tuy nhiên, bạn có thể thiết lập nhiều máy chủ và cơ sở dữ liệu và chuyển đổi giữa chúng để chọn cơ sở dữ liệu cần giám sát (cơ sở dữ liệu đang hoạt động sẽ được tô đậm). Với giấy phép bổ sung, bạn sẽ có thể giám sát nhiều cơ sở dữ liệu đồng thời.
Sử dụng các nút Add Server và Add Database ở phía bên trái của danh sách Databases.
Mỗi bản ghi cơ sở dữ liệu có thể được cấu hình với các tham số sau:
Phương pháp lấy số liệu thống kê. Điều này phụ thuộc vào phiên bản máy chủ và hỗ trợ các khả năng khác nhau. Mỗi phương pháp được mô tả với ưu và nhược điểm của nó:
| Services API | Firebird API | Bảng TMP$ | |
| InterBase 4.x/5.x | Không | Không | Không |
| InterBase 6.0 Classic | Không | Không | Không |
| Firebird Classic - 1.0, 1.5.0, 1.5.1, 1.5.2 |
Không | Có | Không |
| InterBase 6.x SuperServer | Có | Không | Không |
| InterBase 7.x/2007 | Có | Không | Có |
| Firebird Classic và SuperServer: 1.5.3, 1.5.4 /2.0 | Có | Có | Không |
Sự khác biệt giữa Services API, Firebird API và bảng TMP$:
| Phương pháp | Ưu điểm | Nhược điểm |
| Services API API công khai được giới thiệu trong InterBase 6.0 SuperServer |
- Phương pháp phổ quát, hoạt động với tất cả các phiên bản InterBase và Firebird - Không ảnh hưởng đến Next transaction |
- Không có khả năng tìm số lượng thực tế của các giao dịch đang hoạt động - Có thể hiển thị thông tin lỗi thời nếu máy chủ hiếm khi lưu trang tiêu đề cơ sở dữ liệu lên đĩa (InterBase V7.1/V7.5) |
| Firebird API Firebird từ V1.0 có các tham số mở rộng cho lệnh gọi isc_database_info, cho phép trả về thông tin trạng thái giao dịch. |
Cho phép lấy thông tin số lượng giao dịch đang hoạt động (không quá 4676 giao dịch đang hoạt động) | - Không được hỗ trợ bởi bất kỳ phiên bản InterBase nào - Tăng Next transaction một cách nội bộ. Monitor sẽ tăng Next transaction thêm +1 mỗi lần kết nối đến cơ sở dữ liệu. Nếu không có hoạt động giao dịch nào trong cơ sở dữ liệu tại thời điểm này, các số Oldest Active, Oldest Snapshot và Oldest transaction sẽ không thay đổi. Nếu không có bất kỳ hoạt động nào trong cơ sở dữ liệu, chính Monitor sẽ tăng Next transaction thêm +1440 trong 24 giờ, nếu nó được cấu hình để kiểm tra cơ sở dữ liệu mỗi (1) phút. (Bản thân Firebird API không có hiệu ứng này. Hành vi được mô tả là cụ thể cho phương pháp isc_database_info) |
| Bảng TMP$ Được giới thiệu trong InterBase 7.0 để cho phép giám sát trạng thái máy chủ |
- Cho phép truy xuất trạng thái giao dịch thực tế từ InterBase V7.x/V2007, bao gồm cả số lượng giao dịch đang hoạt động. - Để lấy thông tin trạng thái giao dịch, Monitor bắt đầu một giao dịch với các tham số read_only read_committed rec_version. Giao dịch như vậy không được coi là đang hoạt động cho mục đích hạch toán giao dịch và không ảnh hưởng đến hiệu suất máy chủ hoặc cơ sở dữ liệu. |
- Chỉ được hỗ trợ bởi InterBase V7.0/V7.1/V7.5/V2007 - Giống như Firebird API, nó tăng số Next transaction, vì việc đọc dữ liệu từ bảng TMP$ cần được thực hiện trong một giao dịch. - Thời gian truy cập lâu hơn một chút so với sử dụng Services API (< 0,5 giây). |
Nếu bạn đã chọn một phương pháp thống kê không tương thích với máy chủ của mình, sẽ không có gì được ghi vào nhật ký giao dịch của Monitor. Kiểm tra tab Error log trong Configuration Assistant để xem các lỗi có thể xảy ra trong quá trình giám sát cơ sở dữ liệu.
Khoảng thời gian kiểm tra. Điều này xác định tần suất Monitor lấy thông tin giao dịch từ một cơ sở dữ liệu. 1 phút là khoảng thời gian tối thiểu. Bạn có thể đặt 1, 3, 5, 10, 20, 30 phút, hoặc thậm chí khoảng thời gian 1 giờ, nhưng khoảng thời gian cung cấp thông tin nhiều nhất là 1 hoặc 3 phút.
Sử dụng khoảng thời gian 1 phút, Monitor sẽ kiểm tra trạng thái giao dịch của cơ sở dữ liệu 1440 lần mỗi 24 giờ. Kích thước của tệp nhật ký sẽ là ~150 Kilobytes.
Thời gian bắt đầu và Thời gian kết thúc. Nếu không được đặt, Monitor sẽ lấy số liệu thống kê từ cơ sở dữ liệu được chỉ định trong suốt thời gian nó hoạt động. Nếu giới hạn thời gian được đặt, Monitor sẽ chỉ hoạt động trong khoảng thời gian được chỉ định.
Tên người dùng và Mật khẩu. Tên người dùng và mật khẩu cho tài khoản sẽ được sử dụng để giám sát trạng thái giao dịch của cơ sở dữ liệu. Bạn có thể sử dụng đăng nhập SYSDBA hoặc bất kỳ đăng nhập người dùng nào khác mà bạn muốn. Nếu sử dụng đăng nhập không phải SYSDBA, đối với các phương pháp Services API và Firebird API, không cần cấp bất kỳ đặc quyền bổ sung nào cho tài khoản người dùng đó. Bạn có thể tạo một người dùng như ‘TM’ và Monitor sẽ hoạt động thành công.
Đối với Bảng hệ thống tạm thời (IB V7.1, V7.5, V2007), đăng nhập người dùng phải có quyền truy cập đọc trên các bảng TMP$TRANSACTIONS và TMP$DATABASES. Nếu bạn sử dụng Xác thực người dùng nhúng trong cơ sở dữ liệu InterBase V7.5/V2007 của mình, bạn cần tạo một đăng nhập và cấp các quyền truy cập đó cho cơ sở dữ liệu đó một cách rõ ràng.
Nút Test Server Connection.

Cho phép kiểm tra máy chủ được chỉ định để tìm phương pháp giám sát giao dịch tốt nhất. Bạn cũng có thể sử dụng nút này để kiểm tra xem phương pháp đã chọn có hoạt động cho máy chủ được chỉ định hay không.
Visualizer có thể xem thông tin giao dịch được thu thập bởi Monitor. Thư mục cơ sở cho các tệp .tmd được lấy từ các thiết lập của Configuration Assistant.

Ở phía bên trái, bạn có thể thấy danh sách các tệp thống kê. Theo mặc định, Viewer sẽ xem thư mục Log nằm trong thư mục cài đặt gốc. Bạn có thể thay đổi thư mục này bằng Configuration Assistant hoặc mở thư mục mong muốn qua tùy chọn menu của Viewer.
Nhấp vào tệp thống kê - nó sẽ được hiển thị ngay lập tức trên biểu đồ. Bạn có thể kiểm tra nhiều tệp thống kê cùng lúc bằng cách giữ phím Ctrl hoặc Shift và nhấp vào các tệp thống kê:

Ở góc dưới bên trái, bạn có thể bật/tắt các đường biểu đồ khác nhau (Next, Oldest…). Ví dụ: nếu bạn muốn xem động thái giao dịch, hãy bật Next dynamic - nó sẽ hiển thị có bao nhiêu giao dịch mới được bắt đầu giữa các lần đọc IBTM từ cơ sở dữ liệu:

Ở phía phải, trái, trên và dưới của biểu đồ có các đường đặc biệt mà bạn có thể kéo (bằng chuột) để kiểm tra thời điểm một sự kiện xảy ra và giá trị của nó. Hãy nhìn vào đường thẳng đứng màu xanh ở giữa biểu đồ và đường ngang màu nâu. Khi bạn di chuyển các đường này, các nhãn tương ứng sẽ thay đổi - đường thẳng đứng cho phép bạn chỉ đến một thời điểm cụ thể, đường ngang cho phép bạn chỉ đến số giao dịch cụ thể:

Bạn cũng có thể phóng to hoặc thu nhỏ khoảng thời gian theo chiều ngang, chiều dọc hoặc cả hai hướng. Để đưa biểu đồ về trạng thái ban đầu, hãy nhấn nút Reset Zoom (hoặc thu nhỏ bằng chuột theo hướng ngược lại).

Quan trọng! Nếu dữ liệu thống kê IBTM được thu thập bằng phương thức truy cập Firebird hoặc InterBase 7.x, bạn có thể xem số lượng giao dịch đang hoạt động thực tế.

Biểu đồ này cho thấy vào ngày 10 tháng 11 năm 2005, có từ 65 đến 105 giao dịch đang hoạt động, được mở bởi các ứng dụng. Và có thể thấy rằng trong giờ nghỉ trưa (từ 13:00 đến 14:00) vẫn có khoảng 80 giao dịch đang hoạt động. Điều này có nghĩa là:
- người dùng không đóng ứng dụng khi họ đi ăn trưa
- các ứng dụng có giao dịch đang mở và hoạt động
Sử dụng thông tin này, bạn có thể đưa ra quyết định về những gì có thể sai trong cách hoạt động của các ứng dụng. Điều này sẽ phụ thuộc vào số lượng giao dịch được quản lý trực tiếp bởi các ứng dụng.
Có ba nút thay đổi chế độ xem biểu đồ:
Relative (oldest). Được tính bằng cách trừ giao dịch Oldest hoặc Oldest snapshot (giá trị nào thấp hơn) khỏi số giao dịch Next và Oldest Active. Cho phép bạn thấy khoảng cách của các giao dịch bán hoạt động bằng cách nhìn vào chú giải ở phía bên trái của biểu đồ. Đây là ví dụ về biểu đồ trước đó với nút Relative được bật:

AutoMin. Theo mặc định, khi bạn mở bất kỳ tệp thống kê IBTM nào, số giao dịch thấp nhất sẽ tự động được coi là “0”. Thông thường, đây sẽ là giao dịch Oldest (đáng quan tâm) hoặc Oldest Snapshot.

Abs. Cho phép bạn xem luồng số giao dịch và sự khác biệt đối với các số giao dịch lớn. Trong các hình ảnh trước đó, số giao dịch thấp nhất là khoảng 7 triệu, khiến khó hiểu được sự khác biệt là gì, ví dụ như giữa các giao dịch Oldest và Next. Ở đây chúng ta có thể thấy rằng, đối với các thống kê này, chênh lệch dữ liệu không quá 18000 giao dịch.

Nếu bạn muốn có lời giải thích chuyên nghiệp về hành vi giao dịch cho cơ sở dữ liệu của mình, bạn có thể đặt dịch vụ hỗ trợ kỹ thuật của chúng tôi. Vui lòng đọc thêm về dịch vụ của chúng tôi tại đây.
Cũng xin vui lòng liên hệ với chúng tôi nếu có bất kỳ câu hỏi nào qua email [email protected].