当前位置: 首页 > Oracle, oracle 11g > 正文

一例ORA-01578、ORA-01110错误

在检查一个客户数据库告警日志的时候,发现大量的ORA-1578错误,这个错误通常和坏块有关,错误信息如下:

Tue Oct 25 14:31:54 2016
ORA-1578 encountered when generating server alert SMG-4121
Tue Oct 25 14:36:54 2016
DDE: Problem Key 'ORA 1578' was completely flood controlled (0x6)
Further messages for this problem key will be suppressed for up to 10 minutes
ORA-1578 encountered when generating server alert SMG-4121

大量联系的这个错误,并没有提示是具体的原因,一直向前查看告警日志,发现ORA-0158和ORA-01110错误,这才是错误的真正原因。

Sun Oct 23 08:30:01 2016
Errors in file /opt/oracle/diag/rdbms/yiliao/YILIAO/trace/YILIAO_mmon_2517.trc  (incident=139835):
ORA-01578: ORACLE data block corrupted (file # 2, block # 3548)
ORA-01110: data file 2: '/opt/oracle/oradata/YILIAO/sysaux01.dbf'
Errors in file /opt/oracle/diag/rdbms/yiliao/YILIAO/trace/YILIAO_mmon_2517.trc  (incident=139836):
ORA-01578: ORACLE data block corrupted (file # 2, block # 3548)
ORA-01110: data file 2: '/opt/oracle/oradata/YILIAO/sysaux01.dbf'
ORA-1578 encountered when generating server alert SMG-4121

错误提示,第二号数据文件的第3548号数据块损坏,而且损坏的是SYSAUX辅助表空间的数据块,辅助表空间损坏或者数据文件丢失,通常并不会影响数据库的正常运行,但最好还是处理一下。以下是解决思路和方法。

首先,需要查询到,损坏的数据块上存放的是哪个对象,是索引还是表,索引重建即可解决,表相对麻烦,不幸的是,损坏的数据块,存放的是WRI$_ALERT_OUTSTANDING表的数据。

SQL> SELECT OWNER, SEGMENT_NAME, SEGMENT_TYPE, TABLESPACE_NAME, A.PARTITION_NAME
     FROM DBA_EXTENTS A
     WHERE FILE_ID = 2
     AND 3548 BETWEEN BLOCK_ID AND BLOCK_ID + BLOCKS - 1;

OWNER   SEGMENT_NAME            SEGMENT_TYPE	TABLESPACE_NAME   PARTITION_NAME
------  ----------------------  -------------  ---------------   --------------
SYS     WRI$_ALERT_OUTSTANDING  TABLE          SYSAUX

WRI$_ALERT_OUTSTANDING表存放的是一些数据库的错误信息,通常不会有太多的数据量,经查看,这张表并没有数据。

SQL> select count(*) from WRI$_ALERT_OUTSTANDING;

  COUNT(*)
----------
	 0

很幸运,这张表没有数据,解决起来就简单多了,最起码重建表的方法即可解决,我使用的是TRUNCATE该表的方法,解决的这个问题,TRUNCATE表,会对表分配的段进行重新初始化操作,刚好可以解决这个问题。

SQL> truncate table WRI$_ALERT_OUTSTANDING;                     

Table truncated.

TRUNCATE该表后,通过一天的观察,再未遇到ORA-01578错误。

本文固定链接: http://www.dbdream.com.cn/2016/10/%e4%b8%80%e4%be%8bora-01578%e3%80%81ora-01110%e9%94%99%e8%af%af/ | 信春哥,系统稳,闭眼上线不回滚!

该日志由 dbdream 于2016年10月26日发表在 Oracle, oracle 11g 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 一例ORA-01578、ORA-01110错误 | 信春哥,系统稳,闭眼上线不回滚!
关键字: , ,

一例ORA-01578、ORA-01110错误:等您坐沙发呢!

发表评论

快捷键:Ctrl+Enter