Контакты Поиск
27.07.2017 13:17
OlegON
 
Потребовалось журналировать процесс включения и выключения БД в самой БД для быстрого доступа к этим данным (напомню, в алерте по этому поводу пишется более, чем достаточно).

Сделать очень просто с помощью соответствующих триггеров.
Создаем саму табличку
SQL код:
create table sys.ok_audit (event varchar(20),when date); 
Триггер на выключение базы
SQL код:
CREATE OR REPLACE TRIGGER ok_shutdown_audit
BEFORE SHUTDOWN ON DATABASE
BEGIN
INSERT INTO sys
.ok_audit VALUES (ora_sysevent,SYSDATE);
END;

Триггер на ее включение
SQL код:
CREATE OR REPLACE TRIGGER ok_startup_audit
AFTER STARTUP ON DATABASE
BEGIN
INSERT INTO sys
.ok_audit VALUES (ora_sysevent,SYSDATE);
END;

Пример содержимого
Код:
SQL> select * from sys.ok_audit;

EVENT                WHEN
-------------------- -------------------
STARTUP              27.07.2017 13:10:16
SHUTDOWN             27.07.2017 13:11:13
STARTUP              27.07.2017 13:11:30
STARTUP              27.07.2017 13:16:41
После запуска в 13:11, я базу убил. Время убийства, понятное дело, зафиксировать можно только по косвенным признакам.

Пользователи оптимизатора могут не заморачиваться, у них эта табличка скоро появится сама.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.