NOTE: Starting from 19c, be aware that standby can automatically perform flashback in response to similar operation on primary. Refer:
Automatic Flashback of a Mounted Standby After a Primary RESETLOGS Operation
Automatically replicates restore points from a primary database to the standby database Conditions:-
- COMPATIBLE initialization parameter for both the primary database and the standby database is set to 19.0.0 or higher
- Primary database is open
- A restore point that is created on a primary database when the primary is in mount mode is not replicated. This restriction is because the restore point information is replicated though the redo.
CREATE GUARANTEED RESTORE POINT
1. Stop redo transport and redo apply
a)If broker is not configured:
On primary database:
SQL> alter system set log_archive_dest_state_n='defer'; =====>>>>>replace n with the corresponding number for remote destinations
On standby database:
SQL> alter database recover managed standby database cancel;
b)If broker is in place:
DGMGRL> edit database chicago set state = 'TRANSPORT-OFF';
DGMGRL> edit database boston set state = 'APPLY-OFF';
2. Set GRP in standby database
On standby database:
SQL> CREATE RESTORE POINT grp_dg GUARANTEE FLASHBACK DATABASE;
3. Set GRP in primary database
On primary database:
SQL> CREATE RESTORE POINT grp_dg GUARANTEE FLASHBACK DATABASE;
4. Enable redo transport and redo apply
a)If broker is not configured:
On primary database:
SQL> alter system set log_archive_dest_state_n='enable'; =====>>>>>replace n with the corresponding number for remote destinations
On standby database:
SQL> alter database recover managed standby database using current logfile disconnect;
b)If broker is in place:
DGMGRL> edit database chicago set state = 'TRANSPORT-ON';
DGMGRL> edit database boston set state = 'APPLY-ON';
FLASHBACK DATABASE TO GUARANTEED RESTORE POINT
1. Stop redo transport and redo apply
a)If broker is not configured:
On primary database:
SQL> alter system set log_archive_dest_state_n='defer'; =====>>>>>replace n with the corresponding number for remote destinations
On standby database:
SQL> alter database recover managed standby database cancel;
b)If broker is in place:
DGMGRL> edit database chicago set state = 'TRANSPORT-OFF';
DGMGRL> edit database boston set state = 'APPLY-OFF';
2. Shutdown Primary Database and start one instance in mount stage
3. Flashback primary database to restore point
On primary database:
SQL> flashback database to RESTORE POINT grp_dg;
SQL> alter database open resetlogs;
4. Shutdown Standby database and start one instance in mount stage
5. Flashback standby database
On standby database:
SQL> flashback database to RESTORE POINT grp_dg;
6. Enable redo transport and redo apply
a)If broker is not configured:
On primary database:
SQL> alter system set log_archive_dest_state_n='enable'; =====>>>>>replace n with the corresponding number for remote destinations
On standby database:
SQL> alter database recover managed standby database using current logfile disconnect;
b)If broker is in place:
DGMGRL> edit database chicago set state = 'TRANSPORT-ON';
DGMGRL> edit database boston set state = 'APPLY-ON';
7. If Active Data Guard licence is used, open read only the standby database
DROP GUARANTEED RESTORE POINT
1. Stop redo transport and redo apply
a)If broker is not configured:
On primary database:
SQL> alter system set log_archive_dest_state_n='defer'; =====>>>>>replace n with the corresponding number for remote destinations
On standby database:
SQL> alter database recover managed standby database cancel;
b)If broker is in place:
DGMGRL> edit database chicago set state = 'TRANSPORT-OFF';
DGMGRL> edit database boston set state = 'APPLY-OFF';
2. Drop GRP in primary database
On primary database:
SQL> drop RESTORE POINT grp_dg;
3. Drop GRP in standby database
Ensure the standby database is in mount stage and drop GRP:
SQL> drop restore point grp_dg;
If Active Data Guard licence is used, open read only the standby database after dropping the GRP
4. Enable redo transport and redo apply
a)If broker is not configured:
On primary database:
SQL> alter system set log_archive_dest_state_n='enable'; =====>>>>>replace n with the corresponding number for remote destinations
On standby database:
SQL> alter database recover managed standby database using current logfile disconnect;
b)If broker is in place:
DGMGRL> edit database chicago set state = 'TRANSPORT-ON';
DGMGRL> edit database boston set state = 'APPLY-ON';
https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/managing-oracle-data-guard-physical-standby-databases.html#GUID-252097AC-3070-43B6-88D8-919AE27F97AD