oracle報警日志是一個非常重要的日志,其有兩種實現方法:
1、通過全局表來實現,這種方法有一種缺點,就是在關閉數據庫后或者數據庫宕機后就不能在使用了
2、通過外部表來實現,這種方法避免了方法一種的情況。特此以方法二為例進行解析。
創建外部表的過程,
查看日志路徑,
--創建目錄,此目錄是日志存放的目錄,oracle在linux和windows系統下有所差別,linux下是$ORACLE_home/sid下,創建目錄是為了引用目錄里的日志文件
create or replace directory bdump as 'c:\app\administrator\diag\rdbms\orcl\orcl\trace';
--創建外部表,用來存放日志信息
create table alert_logs
(
text varchar2(2000)
)
organization external
(
type oracle_loader --載入日志信息
default directory bdump --日志導入的目錄
access parameters
(
records delimited by newline fields --每條記錄分隔標志為每一個新行
reject rows with all null fields --去掉所有空行
)
location
(
'alert_orcl.log' --裝在日志到alert_orcl.log文件,alert_后面必須是實例名才行
)
)
reject limit unlimited;
select * from alert_logs where text like 'ORA-'||'%';
3、擴展,常見錯誤
ORA-29913: 執行 ODCIEXTTABLEOPEN 調出時出錯
ORA-29400: 數據插件錯誤KUP-00554: error encountered while parsing access
原因可能如下:
a、日志路徑寫錯了 b、日志名字寫錯了 location
(
'alert_orcl.log'
)