Loading....

One of the new Data Guard Broker features introduced in Oracle 12c Release 2 was the ability to set multiple Fast Start Failover (FSFO) targets with the broker determining which was the ideal Data Guard standby database to perform a failover operation to.

This was configured via the property FastStartFailoverTarget.

In this example we have two standby databases available as FSFO targets and we shutdown first one of the standby databases and then the primary database as well to simulate a scenario which will trigger a FSFO.

 ORIGINAL DATA GUARD CONFIGURATION

 oradb1 - PRIMARY DATABASE
 oradb1_sb - STANDBY DATABASE
 clouddb - STANDBY DATABASE
 
 ########################### FAST START FAILOVER CONFIGURED WITH MULTIPLE TARGETS #################################

DGMGRL> edit database oradb1 set property FastStartFailoverTarget='oradb1_sb,clouddb';
 Property "faststartfailovertarget" updated

 DGMGRL> edit database oradb1_sb set property FastStartFailoverTarget='oradb1,clouddb';
 Property "faststartfailovertarget" updated

 DGMGRL> edit database clouddb set property FastStartFailoverTarget='oradb1,oradb1_sb';
 Property "faststartfailovertarget" updated

 DGMGRL> show fast_start failover 
 Fast-Start Failover: Enabled in Zero Data Loss Mode
 Protection Mode:    MaxAvailability
   Lag Limit:          0 seconds
 Threshold:          30 seconds
   Active Target:      oradb1_sb
   Potential Targets:  "oradb1_sb,clouddb"
     oradb1_sb  valid
     clouddb    valid
   Observer:           rac01
   Shutdown Primary:   TRUE
   Auto-reinstate:     TRUE
   Observer Reconnect: 30 seconds
   Observer Override:  FALSE
 Configurable Failover Conditions
   Health Conditions:
     Corrupted Controlfile          YES
     Corrupted Dictionary           YES
     Inaccessible Logfile            NO
     Stuck Archiver                  NO
     Datafile Write Errors          YES
 Oracle Error Conditions:
     (none)

 ########################### ONLY MASTER OBSERVER RUNNING ON PRIMARY DATABASE DATA CENTRE #################################

 DGMGRL> show observer
 Configuration - oradb1_dg
 Primary:            oradb1
   Active Target:      oradb1_sb
 Observer "rac01" - Master
 Host Name:                    rac01.localdomain
   Last Ping to Primary:         1 second ago
   Last Ping to Target:          3 seconds ago

 ########################### SHUTDOWN STANDBY DATABASE ORADB1_SB  ################################# 

 [oracle@rac02 ~]$ echo $ORACLE_SID
 oradb1sb
 [oracle@rac02 ~]$ sqlplus sys as sysdba
 SQL*Plus: Release 19.0.0.0.0 - Production on Wed Jun 17 14:39:21 2020
 Version 19.6.0.0.0
 Copyright (c) 1982, 2019, Oracle.  All rights reserved.
 Enter password: 
 Connected to:
 Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
 Version 19.6.0.0.0
 SQL> shutdown abort 
 ORACLE instance shut down.

 ########################### DATA GUARD BROKER CONFIGURATION SHOWS ERRORS #################################

 DGMGRL> show configuration
 Configuration - oradb1_dg
 Protection Mode: MaxAvailability
   Members:
   oradb1    - Primary database
     Error: ORA-16778: redo transport error for one or more members
 clouddb   - (*) Physical standby database  oradb1_sb - Physical standby database    Error: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
 Fast-Start Failover: Enabled in Zero Data Loss Mode
 Configuration Status:
 ERROR   (status updated 37 seconds ago)

 ########################### SHUTDOWN THE PRIMARY DATABASE TO TRIGGER FSFO #################################

 [oracle@rac01 ~]$ sqlplus sys as sysdba
 SQL*Plus: Release 19.0.0.0.0 - Production on Wed Jun 17 14:46:26 2020
 Version 19.6.0.0.0
 Copyright (c) 1982, 2019, Oracle.  All rights reserved.
 Enter password: 
 Connected to:
 Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
 Version 19.6.0.0.0
 SQL> shutdown abort 
 ORACLE instance shut down.
 SQL> 

 ########################### FSFO PERFORMED TO AVAILABLE TARGET STANDBY DATABASE CLOUDDB #################################

 …
 …
 2020-06-17T14:46:32.915557+08:00
  rfs (PID:17048): Possible network disconnect with primary database
 2020-06-17T14:46:32.916306+08:00
  rfs (PID:17105): Possible network disconnect with primary database
 2020-06-17T14:47:05.429546+08:00
 Attempting Fast-Start Failover because the threshold of 30 seconds has elapsed.
 2020-06-17T14:47:05.469366+08:00
 Beginning zero data loss Fast-Start Failover to database clouddb.
 …
 …
 2020-06-17T14:47:10.734905+08:00
 ALTER DATABASE FAILOVER TO clouddb
 …
 …
 RSM0 (PID:22848): Database role cleared from PHYSICAL STANDBY [kcvs.c:1030]
 Switchover: Complete - Database mounted as primary
 TMI: kcv_commit_to_so_to_primary Switchover from physical END 2020-06-17 14:47:21.153522
 TMI: dbsdrv failover to target END 2020-06-17 14:47:21.153679
 Failover completed with No-Data-Loss.
 Completed: ALTER DATABASE FAILOVER TO clouddb

 ########################### CLOUDDB IS NEW PRIMARY DATABASE WITH MULTIPLE TARGET STANDBY DATABASES #################################

 DGMGRL> show configuration;
 Configuration - oradb1_dg
 Protection Mode: MaxAvailability
   Members:
   clouddb   - Primary database
     oradb1    - (*) Physical standby database 
     oradb1_sb - Physical standby database 
 Fast-Start Failover: Enabled in Zero Data Loss Mode
 Configuration Status:
 SUCCESS   (status updated 33 seconds ago)
 DGMGRL> show fast_start failover 
 Fast-Start Failover: Enabled in Zero Data Loss Mode
 Protection Mode:    MaxAvailability
   Lag Limit:          0 seconds
 Threshold:          30 seconds
   Active Target:      oradb1
   Potential Targets:  "oradb1,oradb1_sb"
     oradb1     valid
     oradb1_sb  valid
   Observer:           rac01
   Shutdown Primary:   TRUE
   Auto-reinstate:     TRUE
   Observer Reconnect: 30 seconds
   Observer Override:  FALSE
 Configurable Failover Conditions
   Health Conditions:
     Corrupted Controlfile          YES
     Corrupted Dictionary           YES
     Inaccessible Logfile            NO
     Stuck Archiver                  NO
     Datafile Write Errors          YES
 Oracle Error Conditions:
     (none)
Please follow and like us:

Last Update: June 18, 2020  

June 18, 2020 107 Gavin Soorma
Total 0 Votes:
0

Tell us how can we improve this post?

+ = Verify Human or Spambot ?

Add A Knowledge Base Question !

You will receive an email when your question will be answered.

+ = Verify Human or Spambot ?

, , , , , ,

Leave a Comment

Your email address will not be published. Required fields are marked *

*
*

Social media & sharing icons powered by UltimatelySocial
Back To Top

Add A Knowledge Base Question !

You will receive an email when your question will be answered.

+ = Verify Human or Spambot ?