ORA 600 3020 - cheeyoung/sqlplus-public GitHub Wiki
Example 1
ORA-600 [3020] [73] [24962] [1] [54551] [920197] [16]
73 | ||
24962 | ||
1 | thread # | |
54551 | log seq # | |
920197 | block # in the log file | |
16 | offset in the block |
ORA-600 [3020] in a physical standby database
Lost write detection is most effective when used with Data Guard. In this case, you set DB_LOST_WRITE_PROTECT in both primary and standby databases. When a standby database applies redo during managed recovery, it reads the corresponding blocks and compares the SCNs with the SCNs in the redo log. If the block SCN on the primary database is lower than on the standby database, then it detects a lost write on the primary database and throws an external error (ORA-752). If the SCN is higher, it detects a lost write on the standby database and throws an internal error (ORA-600 [3020]). In either case, the standby database writes the reason for the failure in the alert log and trace file.
Recovering From Lost-Write Errors on a Primary Database
During media recovery in an Oracle Data Guard configuration, a physical standby database can be used to detect lost-write data corruption errors on the primary database.
This is done by comparing SCNs of blocks stored in the redo log on the primary database to SCNs of blocks on the physical standby database. If the SCN of the block on the primary database is lower than the SCN on the standby database, then there was a lost-write error on the primary database.
In such a situation, if lost write detection (set with the DB_LOST_WRITE_PROTECT initialization parameter) is enabled at both the primary and standby, then a recovery attempt at the standby results in an ORA-752 error. If lost write detection is not enabled, then a recovery attempt results in an ORA-600 [3020] error. However, not all ORA-600 [3020] errors are due to lost writes at the primary. Therefore, before following the guidelines given in this section, work with your Oracle Support representative to determine whether the root cause for the ORA-600 [3020] error was indeed a lost write that occurred on the primary.
When the parameter is set to TYPICAL or FULL on the standby database or on the primary database during media recovery, the instance performs lost write detection.
ORA-00752: recovery detected a lost write of a data block