【Oracle数据恢复】ORA-01578错误解析

一般认为ORA-1578是 数据块物理坏块/损坏的一种,不同于逻辑损坏/坏块,其错误信息如下:

 

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638   QQ号:47079569    邮箱:[email protected]

 

 

[oracle@oel8 dirdat]$ oerr ora 1578
01578, 00000, "ORACLE data block corrupted (file # %s, block # %s)"
// *Cause:  The data block indicated was corrupted, mostly due to software
//          errors.
// *Action: Try to restore the segment containing the block indicated. This
//          may involve dropping the segment and recreating it. If there
//          is a trace file, report the errors in it to your ORACLE
//          representative

这个1578一般 会伴随ORA-1110出现,一旦ORACLE读取到存在损坏的块就会报出:

SQL> select * from scott.emp;
select * from scott.emp
*
ERROR at line 1:
ORA-01578: ORACLE data block corrupted (file # 11, block # 34) 这里的FILE#是  RFN
ORA-01110: data file 6:'/home/oracle/corrclass.dbf'   这里的是AFN

 

 

断裂的数据块Fractured Block:

 

Corrupt block relative dba: 0x0380e573 (file 14, block 58739)
Fractured block found during buffer read
Data in bad block -
 type: 6 format: 2 rdba: 0x0380e573
 last change scn: 0x0288.8e5a2f78 seq: 0x1 flg: 0x04
 consistency value in tail: 0x00780601
 check value in block header: 0x8739, computed block checksum: 0x2f00
 spare1: 0x0, spare2: 0x0, spare3: 0x0
***
Reread of rdba: 0x0380e573 (file 14, block 58739) found same corrupted data

或者错误的校验和checksum

 

Corrupt block relative dba: 0x0380a58f (file 14, block 42383)
Bad check value found during buffer read
Data in bad block -
 type: 6 format: 2 rdba: 0x0380a58f
 last change scn: 0x0288.7784c5ee seq: 0x1 flg: 0x06
 consistency value in tail: 0xc5ee0601
 check value in block header: 0x68a7, computed block checksum: 0x2f00
 spare1: 0x0, spare2: 0x0, spare3: 0x0
***
Reread of rdba: 0x0380a58f (file 14, block 42383) found same corrupted data

 

或者错误的块头

 

Corrupt block relative dba: 0x0d805a89 (file 54, block 23177)
Bad header found during buffer read
Data in bad block -
 type: 6 format: 2 rdba: 0x0d805b08
 last change scn: 0x0692.86dc08e3 seq: 0x1 flg: 0x04
 consistency value in tail: 0x08e30601
 check value in block header: 0x2a6e, computed block checksum: 0x0
 spare1: 0x0, spare2: 0x0, spare3: 0x0
***
Reread of rdba: 0x0d805a89 (file 54, block 23177) found valid data

 

一些可能引起ORA-1578的BUG 列表如下:

如果自己搞不定可以找ASKMACLEAN专业数据库修复团队成员帮您恢复!

 

NB Bug Fixed Description
13804294 11.2.0.3.4, 11.2.0.3.BP07, 12.1.0.0 Internal errors, corruptions, using pipelined function whose rows raise exceptions
11707302 11.2.0.2.3, 11.2.0.2.BP06, 11.2.0.3, 12.1.0.0 Corruption from ASM crash during rebalance diskgroup. Misplaced Blocks
11659016 11.2.0.3, 12.1.0.0 ORA-1578 against recently create tablespace that once was encrypted
+ 10209232 11.1.0.7.7, 11.2.0.1.BP08, 11.2.0.2.1, 11.2.0.2.BP02, 11.2.0.2.GIBUNDLE01, 11.2.0.3, 12.1.0.0 ORA-1578 / ORA-600 [3020] Corruption. Misplaced Blocks and Lost Write in ASM
* 10205230 11.2.0.1.6, 11.2.0.1.BP09, 11.2.0.2.2, 11.2.0.2.BP04, 11.2.0.3, 12.1.0.0 ORA-600 / corruption possible during shutdown in RAC
9965568 12.1.0.0 Block dumps are not formatted if there is a chkval error
9965085 11.2.0.3, 12.1.0.0 ORA-1578 / ORA-8103 Temporary table block corruption / space wastage from PDML
9739664 11.2.0.2, 12.1.0.0 ORA-1578 / ORA-26040 MANUAL RECOVER marks block as corrupt NOLOGGING in even if LOGGING is enabled
+ 9724970 11.2.0.1.BP08, 11.2.0.2.2, 11.2.0.2.BP02, 11.2.0.3, 12.1.0.0 Block Corruption with PDML UPDATE. ORA_600 [4511] OERI[kdblkcheckerror] by block check
9407198 11.2.0.3, 12.1.0.0 “LOG ERRORS INTO” can cause ORA-600 [kcb***] or hang scenarios
* 9406607 11.2.0.1.3, 11.2.0.1.BP06, 11.2.0.2, 12.1.0.0 Corrupt blocks in 11.2 in table with unique key. OERI[kdBlkCheckError] by block check
* 8943287 11.2.0.2, 12.1.0.0 ORA-1578 corrupt block with AUTH SQL*Net strings
* 8898852 11.1.0.7.2, 11.2.0.1.1, 11.2.0.1.BP04, 11.2.0.2, 12.1.0.0 ORA-1578 Blocks misplaced in ASM when file created with compatible.asm < 11 and resized
8885304 11.2.0.2, 12.1.0.0 ORA-7445 [ktu_format_nr] during RMAN CONVERT or Corrupt fractured block of UNDO tablespace datafile
* 8768374 10.2.0.5, 11.1.0.7.8, 11.2.0.1.BP11, 11.2.0.2, 12.1.0.0 RFS in Standby with a wrong location for archived log corrupting/overwriting database files when max_connections > 1
8760225 11.2.0.2, 12.1.0.0 Auto Block Media Recovery reports ORA-1578 on first query
8731617 11.2.0.3, 12.1.0.0 ORA-1578 from DESCRIBE or CTAS even if table not accessed / ORA-959 from DBMS_STATS
8720802 10.2.0.5, 11.2.0.1.BP07, 11.2.0.2, 12.1.0.0 Add check for row piece pointing to itself (db_block_checking,dbv,rman,analyze)
8493978 11.2.0.2, 12.1.0.0 Reserve file descriptors for datafile access
P 12330911 12.1 EXADATA LSI firmware for lost writes
10025963 11.2.0.1.BP09, 11.2.0.2 Block corruption of LOB blocks with checksum value but block has checksum disabled
8714541 11.2.0.2 ORA-1578 Corrupt Block in ASM with 0xbadfda7a after ASM block repair due to disk read error when ASM mirror is used
13101288 ORA-600, corruption or check errors dropping a column in a OLTP compressed table
+ 8354682 11.2.0.1 ORA-1578 – Blocks can be misplaced in ASM when there is IO error and AU > 1MB
+ 8339404 10.2.0.5, 11.1.0.7.1, 11.2.0.1 ORA-1578 – Blocks can be misplaced in ASM during a REBALANCE
8227257 11.2.0.1 ORA-1578 corruption found after media recovery on encrypted datafile
7396077 10.2.0.5, 11.2.0.1 RMAN does not differentiate NOLOGGING corrupt blocks that produce ORA-1578/ORA-26040
6471351 10.2.0.5, 11.1.0.7, 11.2.0.1 ORA-1578 / ORA-26040 due to NOLOGGING after recovery despite of FORCE LOGGING
6674196 10.2.0.4, 10.2.0.5, 11.1.0.6 OERI / buffer cache corruption using ASM, OCFS or any ksfd client like ODM
5515492 10.2.0.3, 11.1.0.6 ORA-1578 corruption with Block Misplaced during ASM rebalance after IO error
5031712 10.2.0.4, 11.1.0.6 DBV enhanced to report NOLOGGING corrupt blocks with DBV-201 instead of DBV-200
+ 4724358 11.1.0.6 ORA-27045 ORA-1578 ORA-27047 corruption caused by DBMS_LDAP
4684074 10.2.0.2, 11.1.0.6 OERI:510 / block corruption (ORA-1578) with DB_BLOCK_CHECKING
4655520 9.2.0.8, 10.2.0.3, 11.1.0.6 Block corrupted during write not noticed
4411228 9.2.0.8, 10.2.0.3, 11.1.0.6 ORA-1578 Block misplaced with mixture of file system and RAW files
4344935 10.2.0.4, 11.1.0.6 OERI from DML on TEMPORARY TABLE after autonomous TRUNCATE
7381632 11.1.0.6 ORA-1578 Free corrupt blocks may not be reformatted when Flashback is enabled
8976928 10.2.0.5 ORA-1578 caused by a former free corrupt block and remains unformatted
8684999 10.2.0.5 ORA-1578 caused by a former free corrupt block and remains unformatted
+ 3544995 9.2.0.6, 10.1.0.3, 10.2.0.1 LOB segments with “CACHE READS” generate no REDO even with the logging option
+ 1281962 9.2.0.1 Media recovery after ORA-1578 on rollback can cause logical inconsistency
589855 7.3.3.6, 7.3.4.1 ORA:1578 or ORA:8103 selecting invalid ROWID
406863 7.3.3.4, 7.3.4.0, 8.0.3.0 ORA-1578 using PQ with heavy simultaneous INSERTS
P 707304 7.3.4.4 AIX: Resizing RAW datafile can corrupt a DB block
603502 7.3.4.3, 8.0.4.4, 8.0.5.0 Possible Corruption if a session with LOOPBACK DB Links aborts.

Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *