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
Total 2 Votes:
0
2