Analysis and Solution of Oracle Frequent Error Codes (2)

xiaoxiao2021-03-06  40

Oracle Common Error Code Analysis and Solution (II) ORA-01578: Oracle Data Block Corrupted (File # Num, Block # NUM) Cause: When Oracle Accesss a block, due to 1, hardware I / O error; 2 I / O error or buffer problem of the operating system; 3, memory or paging problem; 4, Oracle tries to access a system block failed; 5, the data file part overflows one of the above cases of the above cases Logic bad blocks or physical disadvantages, the error will be reported to ORA-01578. Solution: Since Oracle is only wrong when accessing a problematic data file, the error time may be better than the actual error, if ORA-01578 error message prompt data bad block points to the user's own The data file is resolved by the following method: If there is an index with the bad blocks that are isolated from the SQL statement below, simply rebuild the index. SQL> SELECT OWNER, segment_name, segment_type from dba_extents where file_id = and Between Block_ID and block_id blocks-1; ( and ) The file number and block number of the bad blocks reported by ORA-01578 respectively) If the bad block appears on the table, first use the following statement Whether it is a permanent bad block (it is recommended to perform more than one or two, which helps identify data bad blocks is permanent (physical bad block on the hard disk) or random (memory or hardware error)): SQL> Analyze Table Validate Structure Cascade; After executing this command, the following results may occur: ORA-01578: With the same parameters as the original error message, for permanent physical or logic bad blocks; there are different error messages Parameters may be related to memory, Page Space, and I / O devices. If the user has the latest backup of this table, it is best to use this backup to restore this table, or use Event 10231 to remove the data other than the bad block: <1>. Turn off the database <2>. Edit INIT . ORA file, join: Event = "10231 Trace Name Context Forever, Level 10" <3>. Create a temporary table: SQL> CREATE TABLE ERRORTEMP AS SELECT * FROM ERROR; (Error is a watch table Name) <5>. Delete the Event from the init .RA file and restart the database <6> .rename bad table, put the temporary table rename into a bad table name <7>. Create the INDEX on the table, etc. If ORA-01578 error message is prompted that the data is bad block pointing to the data dictionary or a rollback segment, you should immediately contact Oracle, and discuss a good solution. The solution to this is just a relatively common, some more specific solutions can check the Oracle's troubleshooting manual, there is a method of using the RowID method to take out the data other than the bad block, this is not introduced.

转载请注明原文地址:https://www.9cbs.com/read-116367.html

New Post(0)