欢迎来到福编程网,本站提供各种互联网专业知识!
您的位置:网站首页 > 数据库 > Oracle

教你怎样用Oracle方便地查看报警日志错误

发布时间:2014-08-12 作者:投稿hebedich 来源:转载
由于报警日志文件很大,而每天都应该查看报警日志(查看有无“ORA-”,Error”,“Failed”等出错信息),故想找到一种比较便捷的方法,查看当天报警日志都有哪些错误。

在网上查了几天的资料,尝试综合清除告警日志内容及建外部表的方式来解决这一问题。

一:备份并清除告警日志内容

将每天的告警日志备份好,然后进行清除。

1:备份报警日志

在$ORACLE_HOME/SID/bdump/ 目录下,

按日期备份alert_ORACLE_你的实例名.LOG这个文件,如:alert_ORACLE_orcl_201408111639_bak.LOG。

2:清除日志内容

打开报警日志文件,用true > 文件名 可清除掉里面的内容

具体示例:

假如,我现在第一次进行该设置,我先把现有的告警日志进行备份,如:

--备份文件名称:今天16点24分前的告警日志信息

代码
  1. [oracle@rac2 bdump]$ cp alert_orcl2.log alert_orcl2_before_201408111624_bak.log

-清空报警日志

代码
  1. [oracle@rac2 bdump]$ true > alert_orcl2.log

现在告警日志是空的。

切换下归档日志,检查报警日志里是否出现了新内容:

代码
  1. SQL> alter system switch logfile;
  2. System altered.

则现在alert_orcl2.log记录的是2014年8月11日16点24分后至你下次对报警日志进行备份,截取前的信息。

二:建外部表查看报警日志错误

如果已建立了一个用户,并赋相应的权限,所以直接建立目录对象并建立外部表就可以了。

1.建立目录对象

代码
  1. SQL> conn test / 123

    Connected.

  2. SQL> create directory bdump as '/oracle/u01/app/oracle/admin/db2/bdump';
  3. Directory created.

2.建立外部表

代码
  1. SQL> create table alert_log(
  2. text varchar2(400)
  3. )organization external
  4. (type oracle_loader
  5. default directory bdump
  6. access parameters
  7. (records delimited by newline
  8. )location('alert_db2.log')
  9. );

3.测试首先查看能否查到alert_db2.log的内容

代码
  1. SQL> select * from alert_log where rownum < 10;
  2. TEXT
  3. --------------------------------------------------------------------------------
  4. Thu Jun 11 00:51:46 2009
  5. Starting ORACLE instance (normal)
  6. Cannot determine all dependent dynamic libraries for /proc/self/exe
  7. Unable to find dynamic library libocr10.so in search paths
  8. RPATH = /ade/aime1_build2101/oracle/has/lib/:/ade/aime1_build2101/oracle/lib/:/a
  9. de/aime1_build2101/oracle/has/lib/:
  10. LD_LIBRARY_PATH is not set!
  11. The default library directories are /lib and /usr/lib
  12. Unable to find dynamic library libocrb10.so in search paths
  13. Unable to find dynamic library libocrutl10.so in search paths
  14. 9 rows selected.

测试成功

然后我们测试查报警信息'ORA-%'

代码
  1. SQL> select * from alert_log where text like 'ORA-%';
  2. TEXT
  3. --------------------------------------------------------------------------------
  4. ORA-00202: control file: '/oracle/u01/app/oracle/product/10.2.0/db2/dbs/cntrldb2
  5. .dbf'
  6. ORA-27037: unable to obtain file status
  7. ORA-205 signalled during: ALTER DATABASE MOUNT...
  8. ORA-00301: error in adding log file '/home/oracle/oracle/oradata/testdb/redo01.l
  9. og' - file cannot be created
  10. ORA-27040: file create error
  11. ORA-1501 signalled during: CREATE DATABASE db2
  12. ORA-00200: control file could not be created
  13. TEXT
  14. --------------------------------------------------------------------------------
  15. ORA-00202: control file: '/oracle/u01/app/oracle/product/10.2.0/db2/dbs/cntrldb2
  16. .dbf'
  17. ORA-27038: created file already exists
  18. ORA-1501 signalled during: CREATE DATABASE db2
  19. ORA-00200: control file could not be created
  20. ORA-00202: control file: '/oracle/u01/app/oracle/product/10.2.0/db2/dbs/cntrldb2
  21. .dbf'
  22. ORA-27038: created file already exists
  23. ORA-1501 signalled during: CREATE DATABASE db2

--假如,你的报警日志文件只包含今天的信息(可以通过备份并清除告警日志内容实现),则通过外部表可以查到当天产生了哪些错误。

相关推荐

返回顶部