oracle10 ora 01578,一例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_TYPETABLESPACE_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错误。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值