Sök…


Anmärkningar

Med Firebird 2.1 och databaser med ODS 11.1 (och högre) introducerar Firebird möjligheten att övervaka aktiviteten på serversidan som sker i en viss databas.

Komplett databasövervakning är tillgänglig för SYSDBA och databasägaren. Vanliga användare är begränsade till informationen om sina egna bilagor - andra bilagor är osynliga för dem.

Tillgängliga övervakningstabeller sedan Firebird 2.1 och ODS 11.1:

  • MON $ DATABASE (ansluten databas)
  • MON $ ATTAGMENT (anslutna bilagor)
  • MON $ TRANSAKTIONER (påbörjade transaktioner)
  • MON $ UTSKRIFTER (utarbetade uttalanden)
  • MON $ CALL_STACK (samtalstack med aktiva PSQL-förfrågningar)
  • MON $ IO_STATS (I / O-statistik)
  • MON $ RECORD_STATS (rekordnivåstatistik)

Referens: Firebird 2.1 Release Notes

Med Firebird 2.5 och databaser med ODS 11.2 (och högre) lägger Firebird till följande nya skärmtabeller

  • MON $ MEMORY_USAGE (aktuell minnesanvändning)
  • MON $ CONTEXT_VARIABLES (kända kontextvariabler)

Referens: Firebird 2.5 Release Notes

Få information om bilagor i den anslutna databasen

Information om databasanslutningarna

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)

Resultat:

ange bildbeskrivning här

Mer specifika exempel

Information om anslutna klienter.

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

Hämta PID: er för alla serverprocesser som laddar CPU för tillfället (intressant med en klassisk serverarkitektur)

SELECT
   MON$SERVER_PID
FROM
   MON$ATTACHMENTS
WHERE
   MON$STATE = 1

Hämta information om anslutna användare, arbetsstationer och klientapplikationer

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

Referens:



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow