firebird
Vigilancia
Buscar..
Observaciones
Con Firebird 2.1 y las bases de datos con ODS 11.1 (y superior), Firebird presenta la capacidad de monitorear la actividad del lado del servidor dentro de una base de datos en particular.
La supervisión completa de la base de datos está disponible para SYSDBA y el propietario de la base de datos. Los usuarios regulares están restringidos a la información sobre sus propios archivos adjuntos solamente, otros archivos adjuntos son invisibles para ellos.
Tablas de monitoreo disponibles desde Firebird 2.1 y ODS 11.1:
- BASE DE DATOS MON $ (base de datos conectada)
- ACCESORIOS MON $ (adjuntos conectados)
- MON $ TRANSACCIONES (transacciones iniciadas)
- DECLARACIONES MON $ (declaraciones preparadas)
- MON $ CALL_STACK (pila de llamadas de solicitudes PSQL activas)
- MON $ IO_STATS (estadísticas de E / S)
- MON $ RECORD_STATS (estadísticas a nivel de registro)
Referencia: Notas de la versión de Firebird 2.1
Con Firebird 2.5 y bases de datos con ODS 11.2 (y superior), Firebird agrega las siguientes nuevas tablas de monitores
- MON $ MEMORY_USAGE (uso de memoria actual)
- MON $ CONTEXT_VARIABLES (variables de contexto conocidas)
Referencia: Notas de la versión de Firebird 2.5
Obtenga información sobre los archivos adjuntos en la base de datos conectada
Información sobre las conexiones de la base de datos.
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)
Resultados:
Ejemplos más específicos
Información sobre los clientes conectados.
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
Recupere los PID de todos los procesos del servidor que cargan la CPU en este momento (interesante con una arquitectura de servidor clásica)
SELECT
MON$SERVER_PID
FROM
MON$ATTACHMENTS
WHERE
MON$STATE = 1
Recupere información sobre los usuarios conectados, las estaciones de trabajo y las aplicaciones cliente.
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