度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 1542|回复: 3
打印 上一主题 下一主题

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

[复制链接]

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
跳转到指定楼层
楼主
发表于 2020-7-15 14:09:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
由于报警日志文件很大,而每天都应该查看报警日志(查看有无“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
2
SQL> alter system switch logfile;
System altered.



则现在alert_orcl2.log记录的是2014年8月11日16点24分后至你下次对报警日志进行备份,截取前的信息。
二:建外部表查看报警日志错误
如果已建立了一个用户,并赋相应的权限,所以直接建立目录对象并建立外部表就可以了。
1.建立目录对象
?
1
2
3
SQL> conn test / 123<br>Connected.
SQL> create directory bdump as '/oracle/u01/app/oracle/admin/db2/bdump';
Directory created.



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



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



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

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



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


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
回复

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
沙发
发表于 2020-7-16 16:43:05 | 只看该作者
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
板凳
发表于 2020-7-16 16:43:11 | 只看该作者
回复 支持 反对

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
地板
发表于 2020-2-6 16:44:35 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-11-27 09:41 , Processed in 0.180734 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表