By Mouhamadou Diaw

With Oracle 12.1 the one requirement to configure Fast-start Failover is to ensure the broker configuration is operating in either Maximum Availability mode or Maximum Performance mode.
With 12.2 Fast-Start Failover can be now configured with the Maximum Protection
Below our broker configuration

DGMGRL> show configuration;
Configuration - ORCL_DR
Protection Mode: MaxPerformance
Members:
ORCL_SITE - Primary database
ORCL_SITE1 - Physical standby database
ORCL_SITE2 - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS (status updated 48 seconds ago)

Let’s configure the maximum protection mode.
We first have to update some database properties.

DGMGRL> edit database 'ORCL_SITE1' set property LogXptMode='SYNC';
Property "logxptmode" updated
DGMGRL> edit database 'ORCL_SITE' set property LogXptMode='SYNC';
Property "logxptmode" updated
DGMGRL> edit database 'ORCL_SITE2' set property LogXptMode='SYNC';
Property "logxptmode" updated

After we have to enable the Maximum Availability before enabling the Maximum protection

DGMGRL> edit configuration set protection mode as maxavailability;
Succeeded.
DGMGRL> edit configuration set protection mode as maxprotection;
Succeeded.
DGMGRL>

And now let’s enable Fast-Start failover

DGMGRL> enable fast_start failover;
Error: ORA-16693: requirements not met for enabling fast-start failover
Failed.
DGMGRL>

Oh what happens?
Remember before enabling Fast-Start Failover we have to enable flashback for databases and also to set the database property FastStartFailoverTarget
Let’s enable flashback for databases
For the Primary

SQL> alter database flashback on;
Database altered.

For Standby databases

DGMGRL> edit database 'ORCL_SITE1' set state='APPLY-OFF';
Succeeded.
SQL> alter database flashback on;
Database altered.
SQL>
DGMGRL> edit database 'ORCL_SITE1' set state='APPLY-ON';
Succeeded.
DGMGRL>


DGMGRL> edit database 'ORCL_SITE2' set state='APPLY-OFF';
Succeeded.
DGMGRL>
SQL> alter database flashback on;
Database altered.
DGMGRL> edit database 'ORCL_SITE2' set state='APPLY-ON';
Succeeded.
DGMGRL>

Let’s set FastStartFailoverTarget property for the primary database

DGMGRL> edit database 'ORCL_SITE' set property FastStartFailoverTarget='ORCL_SITE2';
Property "faststartfailovertarget" updated

And then now we can enable the Fast-Start Failover with the maximum protection

DGMGRL> enable fast_start failover;
Enabled.
DGMGRL>

Checking after our configuration. The observer must be started, otherwise you will get warning about observer

DGMGRL> show configuration;
Configuration - ORCL_DR
Protection Mode: MaxProtection
Members:
ORCL_SITE - Primary database
ORCL_SITE2 - (*) Physical standby database
ORCL_SITE1 - Physical standby database
Fast-Start Failover: ENABLED
Configuration Status:
SUCCESS (status updated 1 second ago)
DGMGRL>

Just note that At least 2 standby databases must be available, otherwise the mode will be retrograded to MAXPERFORMANCE after Failover