1、把数据库切换到逻辑备数据库的角色。
SQL>ALTERDATABASECOMMITTOSWITCHOVERTOLOGICALSTANDBY;
2、停止远程的归档操作。
SQL>ALTERSYSTEMSETLOG_ARCHIVE_DEST_STATE_2=DEFERSCOPE=BOTH;
3、把其中的一个备库切换到主库的角色。
SQL>ALTERDATABASECOMMITTOSWITCHOVERTOPRIMARY;
4、打开[1] 远程归档操作。
SQL>ALTERSYSTEMSETLOG_ARCHIVE_DEST_STATE_2=ENABLESCOPE=BOTH;
5、在新的备库上创建到主数据库的连接。
创建连接
SQL>EXECUTEDBMS_LOGSTDBY.GUARD_BYPASS_ON;
SQL>CREATEDATABASELINKlocation1
2>CONNECTTOuser-nameIDENTIFIEDBYpasswordUSING'location1';
SQL>EXECUTEDBMS_LOGSTDBY.GUARD_BYPASS_OFF;
测试数据库连接
SQL>SELECT*FROMDBA_LOGSTDBY_PARAMETERS@location1;
6、打开SQL应用在新的备库上。
SQL>ALTERDATABASESTARTLOGICALSTANDBYAPPLYNEWPRIMARYlocation1;
7、主库上做日杂归档操作,并测试角色切换成功。
SQL>ALTERSYSTEMARCHIVELOGSTART;
SQL>ALTERSYSTEMSWITCHLOGFILE;
如果DATAGUARD的主数据库不能够启动那么有必要把备库启动起来,暂时或者永久代替主库!
SQL>ALTERDATABASESTOPLOGICALSTANDBYAPPLY;
SQL>ALTERDATABASEACTIVATELOGICALSTANDBYDATABASE;
然后做数据库的恢复或者其他响应的操作或者是角色转换如上!
如果DATAGUARD的主数据库的归档日志由于不确定不可以预测的原因使的归档日志不能够传到备库上!那么就需要手工添加注册到备库上!