oracle报警日志是一个非常重要的日志,其有两种实现方法:
1、通过全局表来实现,这种方法有一种缺点,就是在关闭数据库后或者数据库宕机后就不能在使用了
2、通过外部表来实现,这种方法避免了方法一种的情况。特此以方法二为例进行解析。
创建外部表的过程,
查看日志路径,
--创建目录,此目录是日志存放的目录,oracle在linux和windows系统下有所差别,linux下是$ORACLE_home/sid下,创建目录是为了引用目录里的日志文件
create or replace directory bdump as 'c:appadministratordiag dbmsorclorcl race';
--创建外部表,用来存放日志信息
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'
)