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' )