firebird
Monitoraggio
Ricerca…
Osservazioni
Con Firebird 2.1 e database con ODS 11.1 (e versioni successive) Firebird introduce la capacità di monitorare l'attività lato server all'interno di un determinato database.
Il monitoraggio completo del database è disponibile per SYSDBA e il proprietario del database. Gli utenti normali sono limitati alle informazioni sui loro stessi allegati - altri allegati sono invisibili a loro.
Tabelle di monitoraggio disponibili da Firebird 2.1 e ODS 11.1:
- MON $ DATABASE (database collegato)
- MON $ ATTACHMENTS (allegati collegati)
- MON $ TRANSAZIONI (transazioni avviate)
- MON $ DICHIARAZIONI (dichiarazioni preparate)
- MON $ CALL_STACK (richiama lo stack di richieste PSQL attive)
- MON $ IO_STATS (statistiche I / O)
- MON $ RECORD_STATS (statistiche a livello di record)
Riferimento: Note sulla versione di Firebird 2.1
Con Firebird 2.5 e database con ODS 11.2 (e successivi) Firebird aggiunge le seguenti nuove tabelle di monitoraggio
- MON $ MEMORY_USAGE (utilizzo della memoria corrente)
- MON $ CONTEXT_VARIABLES (variabili di contesto conosciute)
Riferimento: Note di rilascio di Firebird 2.5
Ottieni informazioni sugli allegati nel database connesso
Informazioni sulle connessioni al database
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)
risultati:
Esempi più specifici
Informazioni sui client connessi.
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
Recupera PID di tutti i processi del server che caricano la CPU al momento (interessante con un'architettura server classica)
SELECT
MON$SERVER_PID
FROM
MON$ATTACHMENTS
WHERE
MON$STATE = 1
Recupera le informazioni sugli utenti connessi, sulle workstation e sulle applicazioni client
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