Oracle Database recovery: data corruption caused by storage faults

Source: Internet
Author: User

Link: http://www.eygle.com/archives/2010/12/fractured_controlfile_recovery.html

 

Recently, it helped users recover a database disaster caused by storage faults. The entire database capacity is 4 TB, and database faults are caused by damage to inspur storage devices and controllers.

From the startup information, the first error is the control file:

Read from controlfile member 'oradata/orcl/control01.ctl 'has found a fractured block (BLK #25, seq #1909664)
Read from controlfile member 'oradata/orcl/control02.ctl 'has found a fractured block (BLK #25, seq #1909664)
Read from controlfile member 'oradata/orcl/control03.ctl 'has found a fractured block (BLK #25, seq #1909664)

We can use DBV to check the damage of the control file. The size of the control file block is 16 KB. Check that the three control files are inconsistent:

DBV file = control01.ctl

Dbverify: Release 10.2.0.1.0-production on Thu Dec 2 21:40:27 2010

Copyright (c) 1982,200 5, Oracle. All rights reserved.

DBV-00103: specified blocksize (8192) differs from actual (16384)
[Oracle @ oradbserver orcl] $ DBV file = control01.ctl blocksize = 16384

Dbverify: Release 10.2.0.1.0-production on Thu Dec 2 21:40:44 2010

Copyright (c) 1982,200 5, Oracle. All rights reserved.

Dbverify-verification starting: file = control01.ctl
Page 19 is influx-most likely media upt
Corrupt block relative DBA: 0x00000013 (File 0, block 19)
Fractured block found during DBV:
Data in Bad Block:
Type: 21 format: 2 rdba: 0x00000013
Last change SCN: 0xffff. 001d238a seq: 0x1 flg: 0x04
Spare1: 0x0 spare2: 0x0 spare3: 0x0
Consistency value in tail: 0x23791501
Check value in block header: 0x6ad5
Computed block checksum: 0xf3

Page 25 is marked upt
Corrupt block relative DBA: 0x00000019 (File 0, Block 25)
Bad check value found during DBV:
Data in Bad Block:
Type: 21 format: 2 rdba: 0x00000019
Last change SCN: 0xffff. 001d2388 seq: 0x1 flg: 0x04
Spare1: 0x0 spare2: 0x0 spare3: 0x0
Consistency value in tail: 0x23881501
Check value in block header: 0xbe7a
Computed block checksum: 0x52d0

Page 27 is influx-most likely media upt
Invalid upt block relative DBA: 0x0000001b (File 0, Block 27)
Fractured block found during DBV:
Data in Bad Block:
Type: 21 format: 2 rdba: 0x0000001b
Last change SCN: 0xffff. 001d238b seq: 0x1 flg: 0x04
Spare1: 0x0 spare2: 0x0 spare3: 0x0
Consistency value in tail: 0x23501501
Check value in block header: 0x9663
Computed block checksum: 0x5fc4

Page 316 is influx-most likely media upt
Invalid upt block relative DBA: 0x0000013c (File 0, block 316)
Fractured block found during DBV:
Data in Bad Block:
Type: 21 format: 2 rdba: 0x0000013c
Last change SCN: 0xffff. 001d2393 seq: 0x1 flg: 0x04
Spare1: 0x0 spare2: 0x0 spare3: 0x0
Consistency value in tail: 0x23811501
Check value in block header: 0xc99d
Computed block checksum: 0x12

Dbverify-verification complete

Total pages examined: 662
Total pages processed (data): 0
Total pages failing (data): 0
Total pages processed (INDEX): 0
Total pages failing (INDEX): 0
Total pages processed (other): 319
Total pages processed (SEG): 0
Total pages failing (SEG): 0
Total pages empty: 339
Total pages marked upt: 4
Total pages influx: 3
Highest block SCN: 1909665 (65535.1909665)

Note that the control file also has consistency check.

However, I can still use the strings command to extract the file name from the corrupted control file and recreate the control file.

The rest is that the Undo tablespace is corrupted. This is not terrible. Force the database to start. The error 2662 is returned:

Errors in file/orcl/udump/orcl_ora_4792.trc:
ORA-00600: Internal error code, arguments: [2662], [1], [1574405318], [1], [1574541355], [8388617], [], []

Errors in file/orcl/udump/orcl_ora_4792.trc:
ORA-00600: Internal error code, arguments: [2662], [1], [1574405318], [1], [1574541355], [8388617], [], []

Here I set the _ minimum_giga_scn parameter to promote SCN.
_ Minimum_giga_scn = 1047

After the database is started, the following error occurs:

ORA-00604: Error occurred at recursive SQL Level 1
ORA-08102: index key not found, OBJ #239, file 1, block 1674 (2)
ORA-12012: Error on auto execute of Job 1
ORA-08102: index key not found, OBJ #239, file 1, block 1674 (2)

This is an index consistency problem. Find this object:

SQL> select object_name from dba_objects where object_id = 239;

Object_name
--------------------------------------------------------------------------------
I _job_next

Directly drop the reconstruction:

SQL> drop index I _job_next;

Index dropped.

SQL> Create index I _job_next on Job $ (next_date );

Index created.

To eliminate the error, see Metalink:1036858.6

 

 

Site-relatedArticle| Related articles

ORA-00600 4000 and 4194 error notes

A bug in ORA-07445 cold_qerfxarraymaxsize

ORA-600 17285 error with PL/SQL developer

Tracking ORA-01438 errors with errorstack

File Existence Check In ORA-01157-mount state

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.