We're here to help!

Non-logged Transactions Cause Corruption of Standby Datafiles

Follow
Problem Description

Dbvisit on standby fails almost every day with an error message:

20130619 09:38:12 main::cmn_cat-> Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
20130619 09:38:12 main::cmn_cat-> ORA-00283: recovery session canceled due to errors
20130619 09:38:12 main::cmn_cat-> ORA-00600: internal error code, arguments: [3020], [3], [975], [12583887], [], [], [], [], [], [], [], []
20130619 09:38:12 main::cmn_cat-> ORA-10567: Redo is inconsistent with data block (file# 3, block# 975, file offset is 7987200 bytes)
20130619 09:38:12 main::cmn_cat-> ORA-10564: tablespace UNDOTBS1
20130619 09:38:12 main::cmn_cat-> ORA-01110: data file 3: '+DATA/prd/datafile/undotbs1.258.806234847'
20130619 09:38:12 main::cmn_cat-> ORA-10560: block type 'KTU UNDO BLOCK'

We refresh the standby by using Dbvisit SYNC functionality, but the next day we get a similar error again.

Solution

FORCE LOGGING is not enabled in the primary database, or some no logging operations have been performed. As a result some operations have not been recorded in redo logs and not transferred to the standby which resulted in inconsistency of the standby database.

Check if FORCE LOGGING is enabled in the primary database:

SQL> select force_logging from v$database;

If not, enable it:

SQL> alter database force logging;

You can run the Synchronize Standby Database(SSD) option to bring the standby database in sync with primary. The SSD option should be used based on the version of standby you are running.  Refer user guide.

Anna MacNaughtan June 21, 2013 17:12

Have more questions? Submit a request

Comments