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:

introduzca la descripción de la imagen aquí

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

Referencia:



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow