Мониторинг базы данных. Database Monitoring.
1. Инструмент Database Monitoring предназначен для мониторинга активности клиентов при работе с выбранной базой данных. После подключения к нужной нам БД, необходимо выбрать раздел Services\Database Monitoring (см. рис 1)
(Рис. 1 - Database Monitoring)
2. По умолчанию в левой части окна, отображается в виде иерархии, структура элементов, выбрав одну из которых можно получить информацию о БД (Database):
- информацию о подключенных пользователях (Attachments)
- информацию о транзакциях которые выполняются к БД (Transactions)
- информацию о запросах к БД (Statements).
(см. рис 2)
(Рис. 2 - Структура Database Monitor)
3. В ветке Database отображена информация о базе данных, например дата создания, размер страниц и т.д. (см. рис. 3):
(Рис. 3 - Ветка Database)
4. В ветке Attachments отображена информация о подключенных пользователях, например какой процесс подключен к базе, с какого ip-адреса осуществляется подключение, по какому протоколу выполняется соединение с базой и т.д. Можно отключить необходимое соединение выделив его и нажав кнопку "Shutdown attachment". Если необходимо отключить всех пользователей кроме текущего соединения (current connection), можно воспользоваться скриптом:
DELETE FROM MON$ATTACHMENTS
WHERE MON$ATTACHMENT_ID <> CURRENT_CONNECTION
(Рис. 4 - Ветка Attachments)
5. В ветке Transactions отображена информация о всех транзакциях в базе данных. Транзакция- это последовательность операций, выполняемых в логическом порядке пользователем, либо программой, которая работает с БД. Основные концепции транзакции описываются аббревиатурой ACID - Atomicity, Consistency, Isolation, Durability (Атомарность, Согласованность, Изолированность, Долговечность).
- Атомарность (Atomicity) гарантирует, что любая транзакция будет зафиксирована только целиком (полностью). Если одна из операций в последовательности не будет выполнена, то вся транзакция будет отменена. Тут вводится понятие “отката” (rollback). Т.е. внутри последовательности будут происходить определённые изменения, но по итогу все они будут отменены (“откачены”).
- Согласованность (Consistency) означает, что любая завершённая транзакция (транзакция, которая достигла завершения транзакции – end of transaction) фиксирует только допустимые результаты.
- Изолированность (Isolation) подразумевает, что каждая транзакция должна быть изолирована от других, т.е. её результат не должен зависеть от выполнения других параллельных транзакций. На практике, изолированность крайне труднодостижимая вещь, поэтому здесь вводится понятие “уровни изолированности” (транзакция изолируется не полностью).
- Долговечность (Durability) - Эта концепция гарантирует, что если мы получили подтверждение о выполнении транзакции, то изменения, вызванные этой транзакцией не должны быть отменены из-за сбоя системы (например, отключение электропитания).
5.1. Управление транзакциями.
Для управления транзакциями используются следующие команды:
- COMMIT
Сохраняет изменения
- ROLLBACK
Откатывает (отменяет) изменения
- SAVEPOINT
Создаёт точку к которой группа транзакций может откатиться
- SET TRANSACTION
Размещает имя транзакции.
Как мы видим на рис. 5, в ветке Transactions доступны операции Commit, Rollback и Shutdown attachment (разрывает соединение с БД у инициатора транзакции).
(Рис. 5 - Ветка Transactions)
6. Ветка Statements отображает информацию о запросах к БД. Запрос (query) – это средство выбора необходимой информации из базы данных.
В таблице стоит обратить внимание на такие поля как:
- ATTACHMENT_ID (инициатор запроса к БД)
- STATEMENT_TEXT (Текст запроса)
С запросами можно выполнять следующие операции:
- COMMIT
Сохраняет изменения
- ROLLBACK
Откатывает (отменяет) изменения
- CANCEL STATEMENT
Отменяет запрос без отката изменений.
- SHUTDOWN ATTACHMENTS
Разрывает соединение с БД у инициатора запроса.
7. Руководство по языку SQL СУБД Firebird 2.5 можно найти здесь:
- https://www.firebirdsql.org/file/documentation/reference_manuals/Firebird_Language_Reference_RUS.pdf
- http://www.ibase.ru/files/firebird/langref25rus/index.html