作为dba,在查看Oracle alert日志文件时可能没有可用的终端登陆,也可能用终端登陆比较麻烦,使用oracle 的外部表技术可以以在数据库中查看alert日志,同时,使用外部表的预处理技术,可以对alert日志进行过滤,避免alert日志过大时访问很慢,例如读取最近的400行。具体步骤如下:
1以sysdba身份登陆数据库 在数据库中创建目录
create directory exec_dir as '\home\oracle\shell'
2 在/home/oracle/shell目录下创建读取Oracle alert log的脚本,命名为read_alert.sh,读取最后400行内容如下:
tail -400 /$ORACLE_BASE/diag/rdbms/dbname/instancename/trace/alertinstancename.log
3 创建脚本以后,赋予执行权限
chmod +x read_alert.sh
4 创建外部表,使用预处理选项运行上面创建的脚本
create table t_alertlog
(
alertlog varchar2(255)
)
organization external
(
type oracle_loader
default directory exec_dir
access parameters
(
records delimited by newline
preprocessor exec_dir:'read_alert.bsh'
)
location
(
exec_dir:'read_alert.bsh'
)
)
/
5 查询创建的外部表,可以看到最近的400行日志了
select * from t_alertlog