Alert Log Dosyası Okuma-Ekleme-Sorgulama
Alert log dosyası bildiğiniz gibi instance’la ilgili hataların, uyarıların, önemli değişikliklerin saklandığı log dosyasıdır.Bir dba log dosyasını günlük olarak incelemelidir.Bu dosya işletim sistemi üzerinde metin editörleriyle açılıp okunabilir, ama sql üzerinden sorgulamak daha pratik olabiliyor..Oluşturacağımız external table üzerinden alert log dosyamıza erişip içeriğini sql sorgumuzla listeleyeceğiz.İsim formatı alert_
Alert log dosyasının bulunduğu dizini aşağıdaki sorgu ile bulabiliriz:
Alert log dosyası nerede?
SELECT VALUE FROM V$PARAMETER WHERE NAME LIKE '%background_dump_dest%';
/oracle/app/oracle/diag/rdbms/orcl/orcl/trace
ya da
SQL> show parameter background
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
background_core_dump string partial
background_dump_dest string /oracle/app/oracle/diag/rdbms/orcl/orcl/trace
Alert log dosyamızın bulunduğu dizine bir directory oluşturalım.
CREATE DIRECTORY log_dir AS '/oracle/app/oracle/diag/rdbms/orcl/orcl/trace';
DBA rolüne bu directory için okuma,yazma izni verelim.
Yetkiyi aslında DBA rolüne sahip kullanıcılara vermiş olduk.
GRANT READ,WRITE ON DIRECTORY log_dir TO DBA;
External tablomuzu oluşturalım.
CREATE TABLE alert_log
(txt_line varchar2(512))
organization external
(type ORACLE_LOADER
default directory log_dir
access parameters (records delimited by newline
fields
(txt_line char(512)))
location ('alert_orcl.log'));
Tablomuzu create ettikten sonra sorgulama yapabiliriz.
SELECT * FROM ALERT_LOG;
TXT_LINE
Thu Jan 16 13:56:43 2013
OER 7451 in Load Indicator : Error Code = OSD-04500: illegal option specified
Sorgumuzu biraz daha düzenlersek ve son 50 satırı görmek istersek;
SELECT ROWNUM LINE_NO,TXT_LINE
FROM (SELECT ROWNUM RN, TXT_LINE FROM ALERT_LOG)
WHERE RN BETWEEN
(SELECT MAX(RN) - 50 FROM (SELECT ROWNUM RN FROM ALERT_LOG)) AND
(SELECT MAX(RN) FROM (SELECT ROWNUM RN FROM ALERT_LOG));
LINE_NO TXT_LINE
1 Thu Jan 16 17:01:21 201316
2 OER 7451 in Load Indicator : Error Code = OSD-04500: illegal option specified
Log dosyasına metin eklemek:
Alert log dosyasına kendi notlarınızı eklemek isterseniz aşağıdaki gibi ekleyebilirsiniz.
BEGIN
Dbms_system.ksdwrt(1,'Upgrade_Oncesi Restore Point oluşturuldu, Ömer'||SYSDATE);
END;
Flush buffer işlemi
BEGIN
Dbms_system.ksdfls;
END;
External table ile ilgili daha detaylı bilgiye bu makaleden ulaşabilirsiniz.