Kita bisa mengetahui kapan database shutdown dan kapan database startup, biasanya dengan melihat di alert log. Lebih detail tentang alert log saya bahas di Maintenance Log dan Trace File. Namun kita perlu usaha ekstra untuk membaca alert log. Untuk mempermudahnya, kita bisa membuat trigger yang mencatat setiap aktivitas (startup dan shutdown) ke tabel history.
Catatan: Untuk melakukan ini, gunakanan user yang punya privilege DBA (misalnya SYS atau SYSTEM).
Langkah pertama, siapkan tabel untuk mencatat history startup dan shutdown.
create table tbl_database_activity (waktu DATE,keterangan varchar2(8)) tablespace users;
Selanjutnya buat Trigger yang dijalankan sebelum database shutdown. Penting: Shutdown abort tidak akan dicatat oleh trigger ini.
CREATE OR REPLACE TRIGGER proc_database_shutdown BEFORE SHUTDOWN ON DATABASE BEGIN insert into tbl_database_activity values(sysdate,'SHUTDOWN'); END; /
Yang berikut ini trigger sesudah database startup
CREATE OR REPLACE TRIGGER proc_database_startup AFTER STARTUP ON DATABASE BEGIN insert into tbl_database_activity values(sysdate,'STARTUP'); END; /
Untuk melihat history startup dan shutdown, tinggal query ke tabel tbl_database_activity
SQL> select to_char(waktu,'dd-Mon-yy hh24:mi:ss'), keterangan from system.tbl_database_activity order by waktu; TO_CHAR(WAKTU,'DD- KETERANG ------------------ -------- 07-Aug-08 09:43:38 SHUTDOWN 07-Aug-08 09:44:44 STARTUP 07-Aug-08 10:05:24 STARTUP
Dalam contoh di atas, lihat hasil di baris ketiga, kok STARTUP padahal sebelumnya sudah STARTUP. Itu artinya, pastinya sebelum ini dilakukan shutdown abort atau database mati karena accident (misal listrik mati atau hardware rusak).

Post a Comment