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:

wprowadź opis zdjęcia tutaj

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

Odniesienie:



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow