Oracle advertises Far Sync as a solution for “Zero Data Loss at any distance”. This is because the primary sends its redo stream synchronously to the Far Sync, which relays it to the remote physical standby.
There are many reasons why Far Sync is an optimal solution for this use case, but that’s not the topic of this post 🙂
Some customers ask: Can I configure Far Sync to receive the redo stream asynchronously?
Although a direct standby receiving asynchronously would be a better idea, Far Sync can receive asynchronously as well.
And one reason might be to send asynchronously to one Far Sync member that redistributes locally to many standbys.
It is very simple to achieve: just changing the RedoRoutes property on the primary.
1 |
RedoRoutes = '(LOCAL : cdgsima_farsync1 ASYNC)' |
This will work seamlessly. The v$dataguard_process will show the async transport process:
1 2 |
NAME PID TYP ACTION CLIENT_PID CLIENT_ROLE GROUP# RESETLOG_ID THREAD# SEQUENCE# BLOCK# TT02 440 KSV async ORL multi 0 none 2 1098480879 1 146 456 |
What about Fast-Start Failover?
Up to and including 19c, ASYNC transport to Far Sync will not work with Fast-Start Failover (FSFO).
ASYNC redo transport mandates Maximum Performance protection mode, and FSFO supports that in conjunction with Far Sync only starting with 21c.
Before 21c, trying to enable FSFO with a Far Sync will fail with:
1 |
effective redo transport mode is incompatible with the configuration protection mode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
DGMGRL> show fast_start failover Fast-Start Failover: Disabled Protection Mode: MaxPerformance Lag Limit: 30 seconds Threshold: 30 seconds Active Target: (none) Potential Targets: "cdgsima_lhr1bm" cdgsima_lhr1bm invalid - effective redo transport mode is incompatible with the configuration protection mode Observer: (none) Shutdown Primary: TRUE Auto-reinstate: TRUE Observer Reconnect: (none) 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) |
So if you want FSFO with Far Sync in 19c, it has to be MaxAvailability (and SYNC redo transport to the FarSync).
If you don’t need FSFO, as we have seen, there is no problem. The only protection mode that will not work with Far Sync is Maximum Protection:
If FSFO is required, and you want Maximum Performance before 21c, or Maximum Protection, you have to remove Far Sync from the redo route.
—
Ludovico