10g: Datafile Corruption possible from CREATE

CREATE CONTROLFILE can Corrupt Datafile Headers This alert described the issue reported in  bug 3514615 .


Versions Affected

  This affects Oracle Server version 10.1.0.2 only .


Platforms Affected

  GENERIC , all platforms are affected .


Description

  Issuing a CREATE CONTROLFILE command in Oracle 10.1.0.2 when
  COMPATIBLE is set lower than 10.0.0 can cause corruption to datafile
  headers only if the installation uses Oracle based resilvering.


Likelihood of Occurrence

  This problem can only occur if all of the following are true:

  • The datafiles are at version 9.2 (or lower) compatibility.
        (ie: The files are from a backup or shutdown where they were
         last written to by an instance with COMPATIBLE < 10.0.0)

  • Oracle based resilvering is in use

  • A CREATE CONTROLFILE command is issued

  Oracle resilvering can be enabled for files which are created
  on top of an LVM (Logical Volume Manager).  How Oracle resilvering
  is enabled depends on the LVM in use.
  eg: On Veritas volumes Oracle resilvering is enabled by
      setting
volcvm_smartsync to 1 in /etc/system .
      (Setting it to 0 disables Oracle resilvering). 



  Oracle resilvering can also be enabled for ASM files but as
  this feature needs COMPATIBLE >= 10.0.0 then this is only
  possible in this (obscure) scenario:
    If a database which was last written to with COMPATIBLE < 10.0
    is restored using RMAN into ASM (Automatic Storage Management)
    disks which have redundancy enabled (See the REDUNDANCY column
    in V$ASM_FILE to check this) then this gives Oracle 9.2 compatible
    files in an ASM environment. Creating a controlfile even with
    COMPATIBLE=10.0.0 or higher will lead to the corruption described
    in this alert.




Possible Symptoms

  If Oracle is used for datafile resilvering then the create controlfile
  will corrupt the datafile headers through the header resilvering
  writes. When trying to perform a subsequent "open resetlogs", Oracle will
  detect the header corruptions and the OPEN will fail with errors
  similar to this:

    ERROR at line 1:
    ORA-01122: database file 1 failed verification check
    ORA-01110: data file 1: ' .../db1/t_db1.f'
    ORA-26102: relative file # in file header is 0 rather than 1 for file 1



Workaround

  If you need to issue a CREATE CONTROLFILE then disable Oracle based
  resilvering before issuing the command. (how to disable it depends
  on the LVM being used)


  If you have already corrupted the datafile headers then the procedure
  to follow is:
    1. Restore a database backup from before the "create controlfile"
command that caused the corruption
    2. Disable Oracle based resilvering
    3. Issue the "CREATE CONTROLFILE" command to recreate the controlfile
    4. Perform media recovery (as required)
    5. Open the database resetlogs
    6. Shutdown
    7. Re-enabled Oracle resilvering if required


Patches

  This problem is fixed in the 10.1.0.3 Patch Set.


References

   bug  3514615  The bug for the problem described in this note

Keyword
  
  ALERTINFO
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值