Enabling Oracle Fast Start Failover (FSFO)

Assumptions:-

At least 2 databases (1 primary 1 physical standby) already exist in a Dataguard configuration
A separate server exists with either Oracle database software or client software installed but no running database instances that are part of the Dataguard configuration. This will be used to run the Observer process to monitor FSFO
The databases in the Dataguard configuration have flashback logging enabled.

 

Set LogXptMode property to SYNC for all databases in the Dataguard Configuration
================================================================================
$ dgmgrl sys/password

Edit the LogXptMode property (repeat for all databases):-

DGMGRL> edit database UNIQUEDB1 set property LogXptMode=’SYNC’;

Set FastStartFailover property for the 2 databases involved in FSOF
===================================================================
e.g. DB1 is current primary database, DB2 is Fast Start Failover Target

DGMGRL> edit database UNIQUEDB1 set property FastStartFailover Target=’UNIQUEDB2’
DGMGRL> edit database UNIQUEDB2 set property FastStartFailoverTarget=’UNIUQUEDB1’

Upgrade protection mode to MaxAvailability
==========================================
DGMGRL> edit configuration set protection mode as maxavailability

Enable Fast Start Failover
==========================
DGMGRL> enable fast_start failover;

Start Observer
==============
Logon to the server from where the observer process will be run as the Oracle software owner.
Issue the following command from the Operating System prompt:-

$ nohup dgmgrl –logfile observer.log sys/@DB1 “START OBSERVER FILE=$ORACLE_HOME/dbs/DB1.dat’” &

This will start the observer process and the process will write output to a logfile called ‘observer.log’ which should be found in the same directory from where the above command was issued.

Multiple observers can be started from the same server by connecting to the appropriate DG configurations and starting the observer process with a unique filename, e.g:-

$ nohup dgmgrl –logfile /home/oracle/drmdm.log  sys/@DB1 “START OBSERVER FILE=’$ORACLE_HOME/dbs/name1.dat’” &
$ nohup dgmgrl –logfile /home/oracle/drmdcg.log sys/@DB3 “START OBSERVER FILE=’$ORACLE_HOME/dbs/name2.dat’” &
$ nohup dgmgrl –logfile /home/oracle/drosb.log  sys/@DB5 “START OBSERVER FILE=’$ORACLE_HOME/dbs/name3.dat’” &
$ nohup dgmgrl –logfile /home/oracle/drimas.log sys/@DB7 “START OBSERVER FILE=’$ORACLE_HOME/dbs/name4.dat’” &

To verify FSFO
==============
DGMGRL> show fast_start failover;  
or
DGMGRL> show configuration verbose

also

$ ps -ef|grep oracle  <== run this from O/S prompt on the server where the observer processes are running