In this guide, we’re going to highlight some of the possible causes that can cause the ora-01578 error, and then suggest some potential fixes that you can try to fix the problem.
Quick and Easy PC Repair
A database block is corrupted whenever its contents differ from what the Oracle database expects to find. Failure to prevent or fix blocking crimes can corrupt the database and potentially lead to the loss of important business data.
I will explain exactly how to resolve the error “ORACLE-01578: ORACLE Info & Fact Block (file # string, obstruct # string)”.
ORA-01578: Corrupted ORACLE obstacle data (line # file, line # coins)
Cause: The displayed block data was corrupted, in most cases due to software errors.Action: Try to improve the segment containing the specified area. This may mean that the sector will be deleted and recreated. If the file is also available, please report the inconvenience it contains to your ORACLE representative.
Oracle Block Corruption
How do I fix a corrupted block in Oracle?
Create a user in addition to giving the user access to the person’s database.Identify the damaged data file processing block.Find a spending room.Reformat the first bad block.Check where the damaged blocks were usually repaired.
Immediately after that, check if the block file is corrupted or not in the script.
What is Oracle logical corruption?
The logical corruption is almost certainly a reasonable checksum block, but its contents are corrupted; B. row closed by non-existent transaction, used space does not match block size, bad avsp, etc. Logical corruption can cause ORA-600, mainly depending on corrupted content on shutdown.
SQL> select * from v $ database_block_corruption; FILE # BLOCK # BLOCKS CORRUPTION_CHANGE # CORRUPTIO CON_ID---------- ---------- ---------- ------ - ------- ----- - ---- 7 2241925 128 0 DAMAGED 0 137 3464833 more than one hundred 4 DAMAGED 0 93 4156032 1. 1.4648E + 11 DAMAGED 0 ninety three 4156033 one hundred and twenty seven 9 DAMAGED 0 92 20737 one hundred twenty seven 0 DAMAGED 0 93 3393024 128 0 DAMAGED 0 137 831872 128 0 DAMAGED 0 137 2277888 128 two DAMAGED 0---------- ---------- ---------- ------ - ------- ----- - ---- 137 3596416 128 0 DAMAGED 0 137 3464833 127 0 DAMAGED 0 95 4156033 more than 100 1 DAMAGED 0 92 20737 more than one hundred 1 DAMAGED 0
Use the database check utility to find out which blocks are affected.
[ [secure email] ~] $ dbv file = + DATA / MSDB / datafile / test01.dbf DBVERIFY: Version 188.8.131.52.0 - Production Jul 22 12:49:19, 2016 Copyright (c) 1982, 2014, Oracle and / or its subsidiaries. All legal disclaimers. DBVERIFY check - load: FILE = + DATA / MSDB / datafile / test01.dbfPage 131 is damagedDB related to bad block: 0x01400083 (file 7, block 2241925)During dbv, a completely zero block worked: DBVERIFY - check completed Total number of pages studied: 640Total pages processed (data): 4Total number of failed pages (data): 0Total pages processed (index): 0Total Failed Pages (Index): 0Total pages processed (others): 130General coNumber of processed pages (seg): 0Total number of failed pages (seg): 0Total number of blank pages: 505Total number of pages marked as damaged: 1Total number of secondary inputs: 0Total number of encrypted pages: 0SCN top block: 2631270 (0.2631270)
RMAN Backup> make sure the database is logically checked;
You can find out that this block can be segmented (include table, index) right after it.
To fix the corruption, you can recreate the table from Dataguard when you are idle.
If the crime is in the index segment, your organization can delete and recreate it.
If you have recent backups (full backup and archived log), you can restore backups as follows and then restore the associated data file.
RMAN> Modify database data file '+ DATA / MSDB / datafile / test01.dbf' offline;RMAN> restore data file 7;RMAN> restore data file 7;RMAN> Set up database data file '+ DATA / MSDB / datafile / test01.dbf' online;
BMR (Block Media Recovery) Method
Or you can use some kind of BMR (Block Media Recovery) method to recover the corresponding blocks that are being received as files.
BLOCK. DATA FILE RESTORATION 137 BLOCK. DATA FILE 3464832;blockrecover 137 prevent 3844717; exclude DATAFILE 38 1490618;
You can restore a linked block when backing up to disk or tape as follows.
You can repair any physically damaged blocks saved in the view with the using command.
RMAN> RESTORE DAMAGE LIST;
To avoid block corruption, you must set the after parameter to FULL.
db_block_checking string string FALSETYPICAL db_block_checksumSQL> change system setp db_block_checking = FULL scope = both sid = '*';The system has changed.SQL> change system preset db_block_checksum = FULL sid = '*';System volume = both changed.
If these directives are COMPLETED as shown below, After Database prevents block corruption.
SQL> Show db_block_check parameterNAME TYPE VALUE---------------------- ---------- --- --------------- -------------------------db_block_checking-String FULLdb_block_checksum string FULLSQL>
Data 12 Step Advisor is also used to recover bad blocks using the block media recovery (BMR) method. You can read and apply the following post and find out what a data recovery advisor is and how you can benefit from it.
Recover RMAN Data in Oracle Tutorial
If everyone wants to learn Oracle Database to become a beginner, read the articles below.
How to resolve ORA 01578?
Cause: The specified data block was defective, mainly due to software errors. Action: Try restructuringLoad a segment consisting of the specified block. This may require deleting and re-creating the segment. If there is a trace submission, please report any errors it contains to your ORACLE representative.
Oracle Tutorial Oracle | Database Tutorials for Beginners (Junior Oracle Database Administrator)
Error in file /u01/app/oracle/diag/rdbms/MSDB/MSDB/trace/MSDB_j000_33284.ORACLE trc(Incident = 663845):ora-01578: data section corrupted (file # 7, block number 2241925)ORA-01110: Data file 7: '+ DATATEST / MSDB / DATAFILE / default_tbs.298.Data 1031185857'ora-26040: engine block was loaded with NOLOGGING o Enjoy a faster