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

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有无坏块。
  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值