Поиск…


замечания

С Firebird 2.1 и базами данных с ODS 11.1 (и выше) Firebird вводит возможность отслеживать активность на стороне сервера в конкретной базе данных.

Полный контроль базы данных доступен для SYSDBA и владельца базы данных. Обычные пользователи ограничены только информацией об их собственных вложениях - другие вложения невидимы для них.

Доступные таблицы мониторинга с Firebird 2.1 и ODS 11.1:

  • MON $ DATABASE (подключенная база данных)
  • MON $ ATTACHMENTS (подключенные вложения)
  • MON $ TRANSACTIONS (начатые транзакции)
  • ЗАКОНЫ MON $ (подготовленные заявления)
  • MON $ CALL_STACK (стек вызовов активных запросов PSQL)
  • MON $ IO_STATS (статистика ввода / вывода)
  • MON $ RECORD_STATS (статистика уровня записи)

Ссылка: Замечания по выпуску Firebird 2.1

С Firebird 2.5 и базами данных с ODS 11.2 (и выше) Firebird добавляет следующие новые таблицы мониторинга

  • MON $ MEMORY_USAGE (текущее использование памяти)
  • MON $ CONTEXT_VARIABLES (известные переменные контекста)

Ссылка: Замечания по выпуску Firebird 2.5

Получить информацию о вложениях в подключенной базе данных

Информация о подключениях к базе данных

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)

Результаты:

введите описание изображения здесь

Более конкретные примеры

Информация о подключенных клиентах.

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

Получить PID всех процессов сервера, загружающих CPU на данный момент (интересно с классической серверной архитектурой)

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

Получить информацию о подключенных пользователях, рабочих станциях и клиентских приложениях

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

Ссылка:



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow