您的位置:首页 > 其它

【翻译自mos文章】OGG add Supplemental Logging 时失败,报错为 块损坏(Block Corruption)

2015-02-25 18:48 483 查看
OGG add Supplemental Logging 时失败,报错为 块损坏(Block Corruption)

来源于:

Add Supplemental Logging Fails Due To Block Corruption (文档 ID 1468322.1)

适用于:

Oracle Server - Enterprise Edition - Version 10.2.0.5 to 12cBETA1 [Release 10.2 to 12.1]

Information in this document applies to any platform.

症状:

在GoldenGate环境中,GoldenGate是基于 supplemental logging的。

突然你发现 supplemental logging 没有设置,然后你尝试开启 supplemental logging,但是失败了,报错如下:

SQL> alter database add supplemental log data;

 ERROR at line 1:
 ORA-01578: ORACLE data block corrupted (file # 234, block #3760863)
 ORA-01110: data file 1257:'+CRMDB01/oradata/prdcrmdb/loy119.dbf'



变化:

控制文件被重建过



原因:

当你重建控制文件时,supplemental logging 被设置为默认值,即:none

尝试手工enable supplemental logging 时,oracle会检查有无active transaction,

oracle 会等待这些active transaction完成,同时,oracle也会检查涉及到的objects

如果被active transaction涉及到的objects 有坏块(corruption),那么add supplemental logging 会失败。



解决方案:

无论什么时候,当你需要重新创建控制文件时,你需要在控制文件创建脚本中加入下面一行:

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

当你手工add supplemental logging,并且 active transaction涉及到的objects有坏块时,add supplemental logging 会报错:ora-1578

你必须首先解决掉坏块,然后再add the supplemental logging.

注意:从该篇mos文档中,我体会到了该mos文章的潜在作用:

1.找到了一种检查坏块(block corrupt)的方法,虽然该方法有点歪门邪道。

该方法的使用场景有限:

A. 用OGG(做alter database add supplemental log data时)
     B. 有active transaction
     C. active transaction中涉及到的object 有损坏。
     以上ABC三点必须同时满足,才能检查出坏块(corruption)

2.在客户现场实施OGG时,有可能会遇到此种情况,那么有些人可能说:你看看,OGG把Oracle 数据库弄出坏块(block corrupt)来了。

此时,可以搬出本mos文章救驾---OGG不会让Oracle 数据库出现坏块,相反:OGG的 alter database add supplemental log data会检查 active transaction 涉及到的object有无坏块。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐