During access to the databse, ORACLE errors occur:
ORA1578 ORACLE data block corrupted (file # %s, block # %s) and/or
ORA600 internal error code, arguments: [3339] [...] [...]
ORA-600 with argument 3339 means that the system determined, during read of a block from disk, that the ORACLE block address stored in the block header (displayed as 2nd. argument in parentheses in the error message) is not identical to the address Oracle expects to find, i. e. the actual adress of the block (3rd. argument in the error message)
Possible causes:
- due to an application software error (single task environments only)
or database software error the block adress was overwritten in
memory the last time the block was loaded, and then saved to disk
- operating system error
- memory error
- disk/controller error (e. g. due to disk error block was zero'ed
out during the last write)
Find out whether the data or the index of the involved table is affected. If the index is affected, it usually suffices to recreate the index:
1. Structure export of the table
2. drop index
3. Structure import. If the data of a table is affected, a recovery
is usually required (see notes on term "Recovery").
In any case, you should always check for disk errors first. If the error occurs repeatedly, set the following parameters in the init
event="10210 trace name context forever, level 10:10211 trace name
context forever, level 10"
This causes additional checks to be performed in memory before a block is written to disk - this will detect the case where a block address is overwritten in memory. If the error occurs, the block is written to a trace file, together with an error message. These trace files may help to debug the problem. The trace files are generally located in directory $ORACLE_HOME/saptrace/usertrace or $ORACLE_HOME/saptrace/background.
Key word: ORA600
No comments:
Post a Comment