您的位置:首页 > 其它

10g: Datafile Corruption possible from CREATE

2004-11-22 17:32 447 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: