The existing data guard setup is as follows.
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 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)It 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.
DGMGRL> remove database db10; Error: ORA-16691: cannot remove a configuration member that is specified in a RedoRoutes property Failed.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.
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 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: 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)Similarly 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.
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