There is an earlier post which shows how to remove a standby database from a data guard configuration when redo routes are not used. This post shows steps for removing standby databases when redo routes are in use.
The existing data guard setup is as follows.
Therefore before the standby databases are removed update the redoroutes of the databases that will remain in the data guard, by removing any references to those standby databsaes that are being removed. One exmaple redoroute update for above data guard configuration is given below.
Once all the redo routes are updated the data guard configuratoin may show error state while it revalidate, however, the error state could be ignored and could proceed with the removal of the standby databases.
Execute remove far_sync to remove the far sync instance.
Related Post
Removing a Standby Database From a Data Guard Configuration
The existing data guard setup is as follows.
DGMGRL> show configurationIt was decided to remove standby databases db7-db10 and far sync instance fs2 from the data guard configuration. Simply running the remove database command will result in an error due to references in the redoroutes for the standby databases that are being removed.
Configuration - db_dg
Protection Mode: MaxAvailability
Members:
db2 - Primary database
db1 - Physical standby database
db3 - Physical standby database
db4 - Physical standby database (receiving current redo)
fs1 - Far sync instance
db5 - Physical standby database
db6 - Physical standby database
db7 - Physical standby database
db8 - Physical standby database
db9 - Physical standby database
db10 - Physical standby database
Members Not Receiving Redo:
fs2 - Far sync instance (alternate of fs1)
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 57 seconds ago)
DGMGRL> remove database db10;If the redoroute property of the databases that will remain the data guard configuration is to be checked then references to databases being removed could be found.
Error: ORA-16691: cannot remove a configuration member that is specified in a RedoRoutes property
Failed.
DGMGRL> show database db2 redoroutes
RedoRoutes = '(LOCAL : ( db1 SYNC), ( db3 SYNC PRIORITY=1, db4 SYNC PRIORITY=2),( fs1 SYNC PRIORITY=1, fs2 SYNC PRIORITY=2, db5 ASYNC, db6 ASYNC, db7 ASYNC, db8 ASYNC, db9 ASYNC, db10 ASYNC))'
Therefore before the standby databases are removed update the redoroutes of the databases that will remain in the data guard, by removing any references to those standby databsaes that are being removed. One exmaple redoroute update for above data guard configuration is given below.
edit database db1 set property redoroutes='(LOCAL : ( db2 SYNC), ( db3 SYNC PRIORITY=1, db4 SYNC PRIORITY=2),( fs1 SYNC PRIORITY=1, fs2 SYNC PRIORITY=2, db5 ASYNC, db6 ASYNC))( db3 : db2 ASYNC)( db4 : db2 ASYNC)';
Once all the redo routes are updated the data guard configuratoin may show error state while it revalidate, however, the error state could be ignored and could proceed with the removal of the standby databases.
DGMGRL> show configurationSimilarly once all references to far sync instance (fs2) is removed from existing redoroutes that too could be removed from the data guard configuraiton. Redo route update without any reference to fs2 on one of the databases is given below.
Configuration - db_dg
Protection Mode: MaxAvailability
Members:
db2 - Primary database
db1 - Physical standby database
db3 - Physical standby database
db4 - Physical standby database (receiving current redo)
fs1 - Far sync instance
db5 - Physical standby database
db6 - Physical standby database
Members Not Receiving Redo:
db7 - Physical standby database
Error: ORA-16810: multiple errors or warnings detected for the member
db8 - Physical standby database
Error: ORA-16810: multiple errors or warnings detected for the member
db9 - Physical standby database
Error: ORA-16810: multiple errors or warnings detected for the member
db10 - Physical standby database
Error: ORA-16810: multiple errors or warnings detected for the member
fs2 - Far sync instance (alternate of fs1)
Fast-Start Failover: Disabled
Configuration Status:
ERROR (status updated 71 seconds ago)
DGMGRL> remove database db10;
Removed database " db10" from the configuration
DGMGRL> remove database db9;
Removed database " db9" from the configuration
DGMGRL> remove database db8;
Removed database " db8" from the configuration
DGMGRL> remove database db7
Removed database " db7" from the configuration
DGMGRL> show configuration
Configuration - db_dg
Protection Mode: MaxAvailability
Members:
db2 - Primary database
db1 - Physical standby database
db3 - Physical standby database
db4 - Physical standby database (receiving current redo)
fs1 - Far sync instance
db5 - Physical standby database
db6 - Physical standby database
Members Not Receiving Redo:
fs2 - Far sync instance (alternate of fs1)
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 54 seconds ago)
edit database db1 set property redoroutes='(LOCAL : ( db2 SYNC), ( db3 SYNC PRIORITY=1, db4 SYNC PRIORITY=2),( fs1 SYNC PRIORITY=1, db5 ASYNC, db6 ASYNC))( db3 : db2 ASYNC)( db4 : db2 ASYNC)';
Execute remove far_sync to remove the far sync instance.
DGMGRL> remove far_sync fs2;
Removed far sync instance " fs2" from the configuration
DGMGRL> show configuration
Configuration - db_dg
Protection Mode: MaxAvailability
Members:
db2 - Primary database
db1 - Physical standby database
db3 - Physical standby database
db4 - Physical standby database (receiving current redo)
fs1 - Far sync instance
db5 - Physical standby database
db6 - Physical standby database
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 64 seconds ago)
Related Post
Removing a Standby Database From a Data Guard Configuration