Configured two physical standby databases for primary database and also setting the RedoRoutes property between these databases.
Primary Database: orcldb
Physical Standby Database: orcldbs
Physical Standby Database: orcldbp
1. Check the configuration
DGMGRL> show configuration;
Configuration - dg_rac
Protection Mode: MaxPerformance
Members:
orcldb - Primary database
orcldbs - Physical standby database
orcldbp - Physical standby database (receiving current redo)
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS (status updated 35 seconds ago)
DGMGRL>
2. Check the RedoRoutes property
DGMGRL> show database orcldb redoroutes;
RedoRoutes = '(LOCAL : orcldbs SYNC)'
DGMGRL>
DGMGRL> show database orcldbs redoroutes;
RedoRoutes = '(LOCAL : orcldb SYNC, orcldbp SYNC)(orcldb : orcldbp ASYNC)(orcldbp : orcldb ASYNC)'
DGMGRL>
DGMGRL> show database orcldbp redoroutes;
RedoRoutes = '(LOCAL : orcldbs SYNC)'
DGMGRL>
3. Configured using following commands
DGMGRL>edit database orcldb set property redoroutes='(LOCAL : orcldbs SYNC)';
Property "redoroutes" updated
DGMGRL>edit database orcldbs set property redoroutes='(LOCAL : orcldb SYNC, orcldbp SYNC)(orcldb : orcldbp ASYNC)(orcldbp : orcldb ASYNC)';
Property "redoroutes" updated
DGMGRL>edit database orcldbp set property redoroutes='(LOCAL : orcldbs SYNC)';
Property "redoroutes" updated
While trying to convert one of the physical standby database to snapshot standby database getting the following error.
DGMGRL> convert database orcldbs to snapshot standby;
Converting database "orcldbs" to a Snapshot Standby database, please wait...
Error: ORA-16692: operation disallowed for a database or far sync instance that sends redo data
Failed.
Failed to convert database "orcldbs"
DGMGRL>
Cause: An attempt was made to delete, disable, or convert (physical standby database) a member that
has a non-empty value set for its RedoRoutes property.
Action: Reset the value of the RedoRoutes property for the member to be deleted, disabled, or
converted (physical standby database) to the empty string and then retry the operation.
4. Resetting RedoRoutes property for orcldbs database
DGMGRL> edit database orcldbs set property redoroutes='';
Property "redoroutes" updated
DGMGRL>
DGMGRL> show configuration;
Configuration - dg_rac
Protection Mode: MaxPerformance
Members:
orcldb - Primary database
orcldbs - Physical standby database
Members Not Receiving Redo:
orcldbp - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS (status updated 25 seconds ago)
DGMGRL>
5. Converted to Snapshot Standby Database
DGMGRL> convert database orcldbs to snapshot standby;
Converting database "orcldbs" to a Snapshot Standby database, please wait...
Database "orcldbs" converted successfully
DGMGRL>
6. Login to orcldbs database and check the database role
[oracle@standby ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Tue Jun 29 19:39:09 2021
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> select name,open_mode,database_role from v$database;
NAME OPEN_MODE DATABASE_ROLE
--------- -------------------- ----------------
ORCLDB READ WRITE SNAPSHOT STANDBY
SQL> exit
7. Converted back to physical standby database from snapshot standby database
DGMGRL> convert database orcldbs to physical standby;
Converting database "orcldbs" to a Physical Standby database, please wait...
Operation requires shut down of instance "orcldbs" on database "orcldbs"
Shutting down instance "orcldbs"...
Database closed.
Database dismounted.
ORACLE instance shut down.
Operation requires start up of instance "orcldbs" on database "orcldbs"
Starting instance "orcldbs"...
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORACLE instance started.
Database mounted.
Continuing to convert database "orcldbs" ...
Database "orcldbs" converted successfully
DGMGRL>
DGMGRL> edit database orcldbs set property redoroutes='(LOCAL : orcldb SYNC, orcldbp SYNC)(orcldb : orcldbp ASYNC)(orcldbp : orcldb ASYNC)';
Property "redoroutes" updated
DGMGRL>
DGMGRL> show configuration;
Configuration - dg_rac
Protection Mode: MaxPerformance
Members:
orcldb - Primary database
orcldbs - Physical standby database
orcldbp - Physical standby database (receiving current redo)
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS (status updated 7 seconds ago)
DGMGRL>
8. Login to orcldbs database and check the database role
[oracle@standby ~]$ . oraenv
ORACLE_SID = [orcldbs] ?
The Oracle base remains unchanged with value /u01/app/oracle
[oracle@standby ~]$
[oracle@standby ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Tue Jun 29 19:59:41 2021
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> select open_mode,database_role from v$database;
OPEN_MODE DATABASE_ROLE
------------------- ------------------------
READ ONLY WITH APPLY PHYSICAL STANDBY
SQL>