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

Enabling Lost Write Detection

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.

2.89 DB_LOST_WRITE_PROTECT

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.

71 ORA-00000 to ORA-00877

ORA-00752: recovery detected a lost write of a data block