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




服务热线 : 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



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 列表如下:



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






Leave a Reply

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