firebird
Monitorowanie
Szukaj…
Uwagi
W Firebird 2.1 i bazach danych z ODS 11.1 (i nowszymi ) Firebird wprowadza możliwość monitorowania aktywności po stronie serwera w obrębie konkretnej bazy danych.
Pełne monitorowanie bazy danych jest dostępne dla SYSDBA i właściciela bazy danych. Zwykli użytkownicy są ograniczeni do informacji tylko o swoich załącznikach - inne załączniki są dla nich niewidoczne.
Dostępne tabele monitorowania od Firebird 2.1 i ODS 11.1:
- MON $ DATABASE (podłączona baza danych)
- MON $ ZAŁĄCZNIKI (podłączone załączniki)
- TRANSAKCJE MON $ (rozpoczęte transakcje)
- OŚWIADCZENIA MON $ (wyciągi przygotowane)
- MON $ CALL_STACK (stos wywołań aktywnych żądań PSQL)
- MON $ IO_STATS (statystyki I / O)
- MON $ RECORD_STATS (statystyki na poziomie rekordu)
Odniesienie: Informacje o wersji Firebird 2.1
W przypadku Firebird 2.5 i baz danych z ODS 11.2 (i nowszymi ) Firebird dodaje następujące nowe tabele monitorów
- MON $ MEMORY_USAGE (bieżące użycie pamięci)
- MON $ CONTEXT_VARIABLES (znane zmienne kontekstowe)
Odniesienie: Informacje o wersji Firebird 2.5
Uzyskaj informacje o załącznikach w podłączonej bazie danych
Informacje o połączeniach z bazą danych
SELECT
a.mon$attachment_id as Attachment_ID,
a.mon$server_pid as Server_PID,
case a.mon$state
when 1 then 'active'
when 0 then 'idle'
end as State,
a.mon$attachment_name as Database_Name,
a.mon$user as User_Name,
a.mon$role as Role_Name,
a.mon$remote_protocol as Remote_Protocol,
a.mon$remote_address as Remote_Address,
a.mon$remote_pid as Remote_PID,
cs.rdb$character_set_name as Connection_Character_Set,
a.mon$timestamp as Established_At,
case a.mon$garbage_collection
when 1 then 'allowed'
when 0 then 'not allowed'
end as Garbage_Collection,
a.mon$remote_process as Remote_Process,
a.mon$stat_id as Statistics_ID
FROM
mon$attachments a, rdb$character_sets cs
where
(a.mon$character_set_id = cs.rdb$character_set_id)
Wyniki:
Bardziej szczegółowe przykłady
Informacje o połączonych klientach.
SELECT
a.mon$remote_protocol as Remote_Protocol,
a.mon$remote_address as Remote_Address,
a.mon$remote_pid as Remote_PID,
a.mon$timestamp as Established_At,
a.mon$remote_process as Remote_Process
FROM
mon$attachments a
Pobierz PID wszystkich procesów serwera ładujących procesor w tej chwili (ciekawe z klasyczną architekturą serwera)
SELECT
MON$SERVER_PID
FROM
MON$ATTACHMENTS
WHERE
MON$STATE = 1
Pobierz informacje o podłączonych użytkownikach, stacjach roboczych i aplikacjach klienckich
SELECT
mon$attachment_name as Database_Name,
mon$user as User_Name,
mon$role as Role_Name,
mon$remote_process as Client_Application,
mon$remote_address as Client_IP,
mon$remote_pid as Client_Application_PID
FROM
mon$attachments