By Mouhamadou Diaw
Oracle 19C is now available on premise. There are lot of new features. One for the Data Guard Broker is that now we can dynamically change the fast-start failover target to a specified member in the list without disabling the fast-start failover.
I have tested this new feature and is describing this in this blog
I am using 3 servers with Oracle Linux
The Data Guard is already built and the broker is already configured
To enable the fast-start failover there are some requirements. Note that flashback database must be enabled for both databases.
First we put the the transport to SYNC for 3 databases
| 1 2 3 4 5 6 | DGMGRL> edit database'DB19C_SITE1'setproperty LogXptMode='SYNC';Property "logxptmode"updatedDGMGRL> edit database'DB19C_SITE2'setproperty LogXptMode='SYNC';Property "logxptmode"updatedDGMGRL> edit database'DB19C_SITE3'setproperty LogXptMode='SYNC';Property "logxptmode"updated | 
After we change the protection to Maxavailability
| 1 2 | DGMGRL>  EDIT CONFIGURATION SETPROTECTION MODE ASMaxAvailability;Succeeded. | 
Then we set the fast-start failover target for both databases
| 1 2 | DGMGRL> enable fast_start failover;Enabled inZero Data Loss Mode. | 
Below the status of the configuration. And we can see that DB19C_SITE2 is the target for the fast-start failover
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | DGMGRL> show configurationConfiguration - db19c  Protection Mode: MaxAvailability  Members:  DB19C_SITE1 - Primarydatabase    DB19C_SITE2 - (*) Physical standby database    DB19C_SITE3 - Physical standby databaseFast-Start Failover: Enabled inZero Data Loss ModeConfiguration Status:SUCCESS   (status updated 55 seconds ago)DGMGRL> | 
The status of the observer will also show as the active target
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | DGMGRL> show observerConfiguration - db19c  Primary:            DB19C_SITE1  Active Target:      DB19C_SITE2Observer "standserver2"- Master  Host Name:                    standserver2  LastPing toPrimary:         2 seconds ago  LastPing toTarget:          4 seconds agoDGMGRL> | 
For example let’s say we want to switchover to DB19C_SITE3
| 1 2 3 4 5 6 7 | DGMGRL> switchover to'DB19C_SITE3';Performing switchover NOW, please wait...Error: ORA-16655: specified standby databasenotthe currentfast-start failover target standbyFailed.Unable toswitchover, primarydatabaseisstill "DB19C_SITE1"DGMGRL> | 
As we can see we cannot because the first fast-start failover target is DB19C_SITE2. We have to change it to DB19C_SITE3
To dynamiccaly do this change , we use the command SET FAST_START FAILOVER TARGET.
| 1 2 3 4 | DGMGRL> SETFAST_START FAILOVER TARGET TO'DB19C_SITE3';Waiting forFast-Start Failover target tochange to"DB19C_SITE3"...Succeeded.DGMGRL> | 
We can query the broker to verify the change
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | DGMGRL> show configurationConfiguration - db19c  Protection Mode: MaxAvailability  Members:  DB19C_SITE1 - Primarydatabase    DB19C_SITE3 - (*) Physical standby database    DB19C_SITE2 - Physical standby databaseFast-Start Failover: Enabled inZero Data Loss ModeConfiguration Status:SUCCESS   (status updated 22 seconds ago)DGMGRL> | 
And then now I can switchover to DB19C_SITE3
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | DGMGRL> switchover to'DB19C_SITE3';Performing switchover NOW, please wait...New primarydatabase"DB19C_SITE3"isopening...Operation requires start up ofinstance "DB19C"ondatabase"DB19C_SITE1"Starting instance "DB19C"...Connected toan idle instance.ORACLE instance started.Connected to"DB19C_SITE1"Databasemounted.Databaseopened.Connected to"DB19C_SITE1"Switchover succeeded, new primaryis"DB19C_SITE3"DGMGRL> | 
And the new status of the configuration
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | DGMGRL> show configurationConfiguration - db19c  Protection Mode: MaxAvailability  Members:  DB19C_SITE3 - Primarydatabase    DB19C_SITE1 - (*) Physical standby database    DB19C_SITE2 - Physical standby databaseFast-Start Failover: Enabled inZero Data Loss ModeConfiguration Status:SUCCESS   (status updated 51 seconds ago)DGMGRL> | 
![Thumbnail [60x60]](https://www.dbi-services.com/blog/wp-content/uploads/2022/12/oracle-square.png) 
							![Thumbnail [90x90]](https://www.dbi-services.com/blog/wp-content/uploads/2023/05/AEA_web_min.jpg) 
							
							![Thumbnail [90x90]](https://www.dbi-services.com/blog/wp-content/uploads/2022/08/STH_web-min-scaled.jpg) 
							
							![Thumbnail [90x90]](https://www.dbi-services.com/blog/wp-content/uploads/2022/08/MOP_web-min-scaled.jpg)