一般认为ORA-1578是 数据块物理坏块/损坏的一种,不同于逻辑损坏/坏块,其错误信息如下:
如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!
诗檀软件专业数据库修复团队
服务热线 : 13764045638 QQ号:47079569 邮箱:service@parnassusdata.com
[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. |