Saturday, July 18, 2009

ORA-16714 Dataguard broker sensitive to "alter database"

If you are using Dataguard Broker you need to be very careful about parameter changes in the spfile, or "alter system set" commands. Dataguard broker will go into a warning state and will refuse to switchover if it detects any inconsistency between the spfile and the running database. Make sure dgmgrl "show configuration" returns "SUCCESS" to confirm all is good.

DGMGRL> show configuration

Enabled: YES
Protection Mode: MaxPerformance
Fast-Start Failover: DISABLED
pd01cfd - Physical standby database
pl01cfd - Primary database

Current status for "PROD_CFD":

If it returns WARNING then you need to check the Dataguard Broker logfile in bdump/drc$ORACLE_SID.log directory - e.g /oralogs/pd01cfd1/bdump/drcpd01cfd1.log

For example Oracle Support asked me to set LOG_ARCHIVE_TRACE=891 to diagnose switchover issues. I set this using an "alter system" command, which caused Dataguard Broker to go into WARNING and also refuse to switchover.

# From the log :-

DG 2009-07-18-08:43:16 1000 2 692526578 DMON: CTL_GET_STATUS operation completed
DG 2009-07-18-08:45:15 0 2 0 RSM Warning: Property 'LogArchiveTrace' has inconsistent values:METADATA='0', SPFILE='0', DATABASE='891'
DG 2009-07-18-08:45:15 0 2 0 RSM0: HEALTH CHECK WARNING: ORA-16714: the value of property LogArchiveTrace is inconsistent with the database setting

I restarted the database to fix this, but it would also have been possible to run "alter system set LOG_ARCHIVE_TRACE=0