Потребовалось журналировать процесс включения и выключения БД в самой БД для быстрого доступа к этим данным (напомню, в алерте по этому поводу пишется более, чем достаточно).
Сделать очень просто с помощью соответствующих триггеров.
Создаем саму табличку
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, я базу убил. Время убийства, понятное дело, зафиксировать можно только по косвенным признакам.
Пользователи оптимизатора могут не заморачиваться, у них эта табличка скоро появится сама.