Analysis and Solution of Oracle Frequent Error Codes (2)
The article is derived from the Century Easy Network
ORA-01578: Oracle Data Block Corrupted (File # Num, Block # NUM)
Cause: When the Oracle accesses a block, due to the I / O error of the hardware; 2, the I / O error or buffer problem of the operating system; 3, memory or PAGING
Question; 4, Oracle attempts to access a unformatted system block failed; 5, one of the above cases of data file partially overflow caused a logic bad block or
Physical bad blocks, will report an error of ORA-01578.
Solution: Since Oracle is only reported when accessing a problematic data file, the error time may be late than the actual error, such as
ORA-01578 Error Information When prompted data bad blocks point to user's own data files, use the following methods to solve:
If there is an index with the bad blocks that are isolated from the SQL statement, just rebuild the index.
SQL> SELECT OWNER, Segment_name, segment_type from dba_extents where file_id =
Block_id blocks-1; (
If the bad block appears on the table, use the following statement to analyze whether it is a permanent bad block (it is recommended to execute more than one or two, which helps identify data bad blocks is permanent (hard disk
Physical bad blocks) or randomness (memory or hardware errors):
SQL> Analyze Table
After executing this command, the following results may occur:
ORA-01578: There is the same parameter as the original error message, for permanent physical or logic bad blocks; there are different parameters with the original error message, may be with memory,
Page Space and I / O devices are related.
If the user has the latest backup of this table, it is preferable to use this backup to restore this table, or use Event 10231 to take out the data other than the bad block:
<1>. Turn off the database first
<2> Edit INIT
Event = "10231 Trace Name Context Forever, Level 10"
<3> .startup Restrict
<4>. Create a temporary table: SQL> CREATE TABLE ERRORTEMP AS SELECT * FROM ERROR; (Error is a bad table name)
<5>. Remove the Event from the init
<6> .Rename bad table, temporary table rename into a bad table name
<7>. Create INDEX on the table, etc.
If ORA-01578 error message prompts data bad block points to data dictionary or return, you should contact Oracle, discuss one with Oracle.
Good solution.
The solution here is just a common kind, some more specific solutions can check the Oracle's troubleshooting manual, there is 浞 and
Using the RowID method to take out the method of data other than the bad block, it will not be introduced here.
The corresponding English is as follows:
Cause: THE GIVEN DATA BLOCK WAS CORRUPTED, PROBABLY DUE TO PROGRARUPTED: TRY TO RESTORE The Segment Containing The Given Data Block, this May Involve Dropping The Segment
And recreating it, if there is a trace file, report the message recorded in it to customer support.
ORA-01628: Max # of Extents Num Reached for Rollback Segment Num
Cause: This error is usually a rollback segment and a table space that has reached the limit of the maxextents parameter setting. What should I pay attention to this maxExtents?
It is the hardware limit of the returning segment or table space, and the hardware limit depends on the value of the db_block_size parameter specified in the init.ora file during the database creation.
Workaround: Use SQL Commands ALTER TABLESPACE ... Storage (maxExtents xxxx) to increase maxExtents, where "xxxx" value must be greater than
The value referred to in the error message, but does not greater than the value of Largest MaxExtent, if the Largest MaxExtent Value has reached, the solution is solved
Is recreated a larger range size, use the Export tool with options compress = y, if the table space is available, first give a table
Series, change its name with alter tablespace tablespace_name, then load the table back database.
View its error, if you appear on the rollback segment or index, you must delete it and rebuild, if you appear in temporary table space, modify temporary table empty
This problem can be solved between storefields.
An error example is as follows:
ORA-1628: Max # Extents 50 Reached for Rollback Segment RBS_1
The corresponding English is as follows:
Cause: An Attempt Was Made to Extendy Has Reached Its Maximum Size Or Space
COULD NOT BE Allocated in The Data Dictionary to Contain The Definition of The Object.
Action: if Possible, Increase The Value of Either The maxExtents or Pctincrease Initialization Parameters OR
Find The Data Dictionary Table Lacking Space And Alter The Storage Parameters, As Described in The Oracle8
Server administrator's guide.