Podręcznik użytkownika monitora transakcji IBTransaction
Dmitry Kuzmenko, 08-cze-2008
IBSurgeon Transaction Monitor (IBTM) to pakiet oprogramowania zaprojektowany do monitorowania, przeglądania i analizowania dynamicznych transakcji w bazach danych InterBase i Firebird.
Spis treści
Podręcznik użytkownika IBSurgeon Transaction Monitor. {C}{C}{C}{C}1{C}{C}{C}{C}{C}{C}{C}{C}{C}
Co znajduje się w środku?. {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}
Co jest rejestrowane?. {C}{C}{C}{C}2{C}{C}{C}{C}{C}{C}{C}{C}{C}
Asystent konfiguracji{C}{C}{C}{C}3{C}{C}{C}{C}{C}{C}{C}{C}{C}
Korzystanie z Asystenta konfiguracji{C}{C}{C}{C}4{C}{C}{C}{C}{C}{C}{C}{C}{C}
Zarządzanie usługą Monitora. {C}{C}{C}{C}4{C}{C}{C}{C}{C}{C}{C}{C}{C}
Konfigurowanie serwerów. {C}{C}{C}{C}4{C}{C}{C}{C}{C}{C}{C}{C}{C}
Konfigurowanie baz danych. {C}{C}{C}{C}5{C}{C}{C}{C}{C}{C}{C}{C}{C}
Wizualizator{C}{C}{C}{C}8{C}{C}{C}{C}{C}{C}{C}{C}{C}
Typy widoków wykresów. {C}{C}{C}{C}13{C}{C}{C}{C}{C}{C}{C}{C}{C}
Wsparcie techniczne{C}{C}{C}{C}16{C}{C}{C}{C}{C}{C}{C}{C}{C}
Pakiet IBTM zawiera trzy główne moduły:
- Monitor - Mały program oparty na usłudze Win32 do monitorowania i rejestrowania stanów transakcji z jednej lub więcej baz danych.
- Asystent konfiguracji - Służy do konfigurowania ustawień Monitora i Wizualizatora.
- Wizualizator - Przeznaczony do przeglądania i analizowania informacji rejestrowanych przez Monitora.
Monitor to mały program oparty na usłudze Win32 (ibtm.exe), który działa na systemach Windows NT, 2000, XP oraz Windows Server 2003 i 2008 (zarówno 32, jak i 64-bitowych). Podczas uruchamiania Monitor odczytuje ustawienia (ustawione przez Asystenta konfiguracji) i monitoruje określoną bazę danych. Podczas monitorowania łączy się z bazą danych co minutę (zalecany domyślny interwał) i odczytuje stan transakcji.
Jeśli InterBase lub Firebird działa w systemie Windows, Monitor można zainstalować na serwerze, na którym znajduje się baza danych. W przypadku serwerów z systemem Linux można go zainstalować na dowolnym komputerze z systemem Windows mającym dostęp sieciowy do serwera InterBase lub Firebird. Monitor można zainstalować na następujące sposoby:
- Korzystając z Asystenta konfiguracji
- Z okna wiersza poleceń
Ważne! Przed rozpoczęciem instalacji Monitora należy upewnić się, że jesteś zalogowany do systemu Windows z uprawnieniami administratora. Monitor zostanie zainstalowany jako usługa z automatycznym uruchamianiem na koncie użytkownika Localsystem.
Ponieważ Monitor tylko okresowo łączy się z bazą danych i zapisuje zebrane informacje do zwykłego pliku dziennika tekstowego, nie ma potrzeby stosowania żadnych dodatkowych reguł. Jeśli jednak chcesz zabezpieczyć konfigurację Monitora i dane logowania do bazy danych, musisz zmienić ustawienia usługi Monitora oraz dostęp do jego katalogu (i dziennika) zgodnie z potrzebami, za pomocą Panelu sterowania usługami systemu Windows.
Parametry konfiguracji Monitora zostaną omówione w Asystencie konfiguracji.
Monitor okresowo sprawdza stronę nagłówkową bazy danych, a następnie zapisuje informacje o transakcjach bazy danych do dziennika w następujący sposób:
- Czas rejestrowania
- Numer najstarszej transakcji
- Numer najstarszej transakcji snapshot
- Numer najstarszej aktywnej transakcji
- Numer następnej transakcji
- Liczba aktywnych transakcji (zależy od wersji serwera)
Informacje te są przechowywane w pliku dziennika i mogą być następnie przeglądane i analizowane za pomocą Wizualizatora. Korzystając z wizualnych informacji o stanie transakcji, możesz zrozumieć, jak długo Twoje aplikacje utrzymują otwarte transakcje, ile równoczesnych transakcji jest uruchomionych, jak długo działają transakcje snapshot, kiedy jest najbardziej intensywny czas rozpoczynania transakcji przez aplikacje itp.
Uwaga: Monitor rejestruje informacje o stanie transakcji w lokalnym pliku dziennika. Nie wysyła tych ani żadnych innych informacji przez sieć.
Asystent konfiguracji (ibtmconfig.exe) służy do ustawiania parametrów konfiguracyjnych Monitora i Wizualizatora. Zapisuje parametry konfiguracyjne w pliku ibtm.ini.
! W systemach Windows Vista lub Windows 7 należy uruchomić Asystenta konfiguracji z uprawnieniami administracyjnymi (kliknięcie prawym przyciskiem myszy), w przeciwnym razie nie będzie on w stanie zarządzać usługą IBTM (błąd 5, odmowa dostępu).
Wskazówka! IBTM nie używa rejestru do przechowywania parametrów konfiguracyjnych, więc możesz przygotować konfigurację na jednym komputerze, a następnie przenieść plik ibtm.ini na inny komputer, na którym zainstalowany jest Monitor (usługa Monitora musi zostać ponownie uruchomiona, aby odczytać nową konfigurację).
Monitor i Asystent konfiguracji są umieszczane przez instalator IBTM w tym samym katalogu, tak aby Monitor i Asystent konfiguracji korzystały z tego samego pliku konfiguracyjnego (ibtm.ini).

Asystent konfiguracji pomaga w:
- Zarządzaniu usługą Monitora - instalacja, odinstalowanie, uruchamianie, zatrzymywanie, wstrzymywanie i ponowne uruchamianie.
- Określaniu serwerów InterBase lub Firebird, które mają bazy danych wymagające monitorowania
- Określaniu baz danych oraz opcji monitorowania/harmonogramu dla konkretnej bazy danych

Po uruchomieniu Asystent konfiguracji określa stan usługi Monitora w systemie.
Instalowanie Monitora - jeśli usługa Monitora nie jest zainstalowana, w lewym górnym rogu w etykiecie stanu IBTM zobaczysz komunikat „nie zainstalowano”. Aby zainstalować Monitora, naciśnij przycisk Instaluj po prawej stronie okna. Należy pamiętać, że usługa Monitora będzie używać wartości pola wyboru Typ uruchamiania (automatyczny lub ręczny). Jeśli instalacja usługi Monitora powiedzie się, zobaczysz zmianę stanu IBTM na „zatrzymany”, a przycisk „Uruchom usługę” zostanie włączony.
Należy ponownie uruchomić usługę Monitora za każdym razem, gdy zmienisz jakiekolwiek parametry konfiguracji bazy danych.
IBTM używa protokołu połączenia TCP/IP do uzyskiwania dostępu do baz danych w celu monitorowania. Jeśli więc zainstalowałeś Monitora na tym samym komputerze, na którym znajduje się serwer, musisz dodać serwer jako localhost lub nazwę hosta serwera. Po wykonaniu tej czynności będziesz mógł dodać bazy danych, które będą monitorowane na tym serwerze.
W tej wersji IBTM można monitorować tylko jedną bazę danych na raz. Do jednoczesnego monitorowania jednej lub więcej baz danych wymagane są dodatkowe licencje. Skontaktuj się z nami w celu uzyskania szczegółów ( www.ibphoenix.com).
Można jednak skonfigurować kilka serwerów i baz danych oraz przełączać się między nimi, aby wybrać bazę danych do monitorowania (aktywna baza danych będzie wyróżniona pogrubieniem). Z dodatkowymi licencjami będziesz mógł monitorować kilka baz danych jednocześnie.
Użyj przycisków Dodaj serwer i Dodaj bazę danych po lewej stronie listy Baz danych.
Każdy rekord bazy danych można skonfigurować za pomocą następujących parametrów:
Metoda pobierania statystyk. Zależy to od wersji serwera i obsługuje różne możliwości. Każda metoda jest opisana wraz z jej zaletami i wadami:
| Services API | Firebird API | Tabele TMP$ | |
| InterBase 4.x/5.x | Nie | Nie | Nie |
| InterBase 6.0 Classic | Nie | Nie | Nie |
| Firebird Classic - 1.0, 1.5.0, 1.5.1, 1.5.2 |
Nie | Tak | Nie |
| InterBase 6.x SuperServer | Tak | Nie | Nie |
| InterBase 7.x/2007 | Tak | Nie | Tak |
| Firebird Classic i SuperServer: 1.5.3, 1.5.4 /2.0 | Tak | Tak | Nie |
Różnice między Services API, Firebird API i tabelami TMP$:
| Metoda | Zalety | Wady |
| Services API Publiczne API wprowadzone w InterBase 6.0 SuperServer |
- Uniwersalna metoda, działa ze wszystkimi wersjami InterBase i Firebird - Nie wpływa na następną transakcję |
- Nie ma możliwości ustalenia rzeczywistej liczby aktywnych transakcji - Może pokazywać nieaktualne informacje, jeśli serwer rzadko zapisuje stronę nagłówkową bazy danych na dysk (InterBase V7.1/V7.5) |
| Firebird API Firebird od V1.0 ma rozszerzone parametry dla wywołania isc_database_info, które umożliwiają zwracanie informacji o stanie transakcji. |
Umożliwia uzyskanie informacji o liczbie aktywnych transakcji (nie więcej niż 4676 aktywnych transakcji) | - Nie jest obsługiwane przez żadną wersję InterBase - Wewnętrznie zwiększa numer następnej transakcji. Monitor będzie zwiększać numer następnej transakcji o +1 za każdym razem, gdy połączy się z bazą danych. Jeśli w tym czasie nie ma żadnej aktywności transakcyjnej w bazie danych, numery najstarszej aktywnej, najstarszej snapshot i najstarszej transakcji pozostaną niezmienione. Jeśli w bazie danych nie ma żadnej aktywności, Monitor sam zwiększy numer następnej transakcji o +1440 w ciągu 24 godzin, jeśli jest skonfigurowany do sprawdzania bazy danych co (1) minutę. (Samo Firebird API nie ma tego efektu. Opisane zachowanie jest specyficzne dla metody isc_database_info) |
| Tabele TMP$ Wprowadzone w InterBase 7.0 w celu umożliwienia monitorowania stanu serwera |
- Umożliwia pobieranie rzeczywistego stanu transakcji z InterBase V7.x/V2007, w tym liczby aktywnych transakcji. - Aby uzyskać informacje o stanie transakcji, Monitor uruchamia transakcję z parametrami read_only read_committed rec_version. Taka transakcja nie jest traktowana jako aktywna do celów rozliczania transakcji i nie wpływa na wydajność serwera ani bazy danych. |
- Obsługiwane tylko przez InterBase V7.0/V7.1/V7.5/V2007 - Podobnie jak w przypadku Firebird API zwiększa numer następnej transakcji, ponieważ odczyt danych z tabel TMP$ musi odbywać się w ramach transakcji. - Czas dostępu jest nieco dłuższy niż w przypadku korzystania z Services API (< 0,5 sekundy). |
Jeśli wybrałeś metodę statystyk niezgodną z Twoim serwerem, nic nie zostanie zapisane w dzienniku transakcji Monitora. Sprawdź kartę Dziennik błędów w Asystencie konfiguracji, aby zobaczyć błędy, które mogą wystąpić podczas monitorowania bazy danych.
Interwał sprawdzania. Określa, jak często Monitor pobiera informacje o transakcjach z bazy danych. Minimalny interwał to 1 minuta. Możesz ustawić interwał 1, 3, 5, 10, 20, 30 minut, a nawet 1 godzinę, ale najbardziej informacyjny interwał to 1 lub 3 minuty.
Przy interwale 1-minutowym Monitor będzie sprawdzać stan transakcji bazy danych 1440 razy na każde 24 godziny. Rozmiar pliku dziennika wyniesie ~150 kilobajtów.
Czas rozpoczęcia i czas zakończenia. Jeśli nie są ustawione, Monitor będzie pobierać statystyki z określonej bazy danych przez cały czas swojej pracy. Jeśli limit czasu jest ustawiony, Monitor będzie działać tylko przez określony okres czasu.
Nazwa użytkownika i hasło. Nazwa użytkownika i hasło dla konta, które będzie używane do monitorowania stanu transakcji bazy danych. Możesz użyć loginu SYSDBA lub dowolnego innego loginu użytkownika. Jeśli używany jest login inny niż SYSDBA, dla metod Services API i Firebird API nie jest konieczne przyznawanie żadnych dodatkowych uprawnień dla tego konta użytkownika. Możesz utworzyć użytkownika takiego jak „TM”, a Monitor będzie działać poprawnie.
Dla tymczasowych tabel systemowych (IB V7.1, V7.5, V2007) login użytkownika musi mieć prawa dostępu do odczytu do tabel TMP$TRANSACTIONS i TMP$DATABASES. Jeśli używasz wbudowanego uwierzytelniania użytkowników w bazie danych InterBase V7.5/V2007, musisz jawnie utworzyć login i przyznać te prawa dostępu dla tej bazy danych.
Przycisk Testuj połączenie z serwerem.

Umożliwia sprawdzenie określonego serwera pod kątem najlepszej metody monitorowania transakcji. Możesz również użyć tego przycisku, aby sprawdzić, czy wybrana metoda działa dla określonego serwera.
Wizualizator może przeglądać informacje o transakcjach zebrane przez Monitora. Katalog bazowy dla plików .tmd jest pobierany z ustawień Asystenta konfiguracji.

Po lewej stronie widzisz listę plików statystyk. Domyślnie Viewer przegląda folder Log, który znajduje się w głównym folderze instalacji. Możesz zmienić ten folder za pomocą Kreatora konfiguracji lub otworzyć wymagany folder za pomocą opcji menu Viewer.
Kliknij na plik statystyk - zostanie on natychmiast wyświetlony na wykresie. Możesz sprawdzać wiele statystyk jednocześnie, przytrzymując klawisz Ctrl lub Shift i klikając na pliki statystyk:

W lewym dolnym rogu możesz włączać i wyłączać różne linie wykresu (Next, Oldest…). Na przykład, jeśli chcesz zobaczyć dynamikę transakcji, włącz opcję Next dynamic - pokaże ona, ile nowych transakcji zostało rozpoczętych między odczytami IBTM z bazy danych:

Po prawej, lewej, górnej i dolnej stronie wykresu znajdują się specjalne linie, które możesz przeciągać (za pomocą myszy), aby sprawdzić, kiedy wystąpiło zdarzenie i jaką ma wartość. Zwróć uwagę na pionową niebieską linię na środku wykresu oraz na brązową poziomą linię. Gdy przesuwasz te linie, odpowiednie etykiety się zmieniają - linie pionowe pozwalają wskazać konkretny czas, a linie poziome - konkretne numery transakcji:

Możesz również powiększać lub pomniejszać przedział w poziomie, w pionie lub w obu kierunkach. Aby przywrócić wykres do stanu początkowego, naciśnij przycisk Reset Zoom (lub powiększaj myszą w przeciwnym kierunku).

Ważne! Jeśli dane statystyk IBTM zostały zebrane przy użyciu metod dostępu Firebird lub InterBase 7.x, możesz zobaczyć rzeczywistą liczbę aktywnych transakcji.

Ten wykres pokazuje, że 10 listopada 2005 roku było od 65 do 105 aktywnych transakcji otwartych przez aplikacje. Widać również, że w porze lunchu (od 13:00 do 14:00) nadal było około 80 aktywnych transakcji. Oznacza to, że:
- użytkownicy nie zamykają aplikacji, gdy idą na lunch
- aplikacje mają otwarte i aktywne transakcje
Korzystając z tych informacji, możesz podejmować decyzje dotyczące tego, co może być nie tak w sposobie działania aplikacji. Będzie to zależeć od tego, ile transakcji jest bezpośrednio zarządzanych przez aplikacje.
Istnieją trzy przyciski zmieniające widok wykresu:
Relative (oldest). Obliczane przez odjęcie transakcji Oldest lub Oldest snapshot (którakolwiek jest niższa) od numerów transakcji Next i Oldest Active. Pozwala zobaczyć lukę półaktywnych transakcji, patrząc na legendę po lewej stronie wykresu. Oto przykład poprzedniego wykresu z włączonym przyciskiem Relative:

AutoMin. Domyślnie, gdy otwierasz dowolny plik statystyk IBTM, najniższy numer transakcji jest automatycznie traktowany jako „0”. Zwykle będzie to najstarsza (interesująca) transakcja lub najstarszy snapshot.

Abs. Pozwala zobaczyć przepływ numerów transakcji oraz różnicę dla dużych numerów transakcji. Na poprzednich obrazach najniższy numer transakcji wynosił około 7 milionów, co utrudniało zrozumienie, jaka jest różnica, na przykład, między transakcjami Oldest i Next. Tutaj widzimy, że dla tych statystyk różnica danych nie przekraczała 18000 transakcji.

Jeśli chcesz uzyskać profesjonalne wyjaśnienie zachowania transakcji dla swojej bazy danych, prawdopodobnie zamówisz nasze wsparcie techniczne. Przeczytaj więcej o naszych usługach tutaj.
Zachęcamy również do kontaktu z nami w przypadku jakichkolwiek pytań za pośrednictwem poczty e-mail: [email protected].