Create ControlFile Can Corrupt DataFile Headers this alert described The Issue Reported in bugs 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 Caurtion 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 the this is online
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 The Create ControlFileWill Corrupt The DataFile Headers Through The Header Resilvering
Writes. bying 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 itssue a create controlfile1 disable Oracle Based
Resilvering Before Issuing the Command.
(How to disable it depends on the lvm being used)
If you have alleady corrupted the datafile headers thrupted the data
To Follow IS:
1. RESTORE A DATABASE Backup from Before The "Create ControlFile"
Command That Caused The Corruption
2. Disable Oracle Based Resilver
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 for 3514615 the bug for the problem described in this Note
Keyword
Alertinfo