逻辑数据库的角色切换
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的主数据库的归档日志由于不确定不可以预测的原因使的归档日志不能够传到备库上!那么就需要手工添加注册到备库上!
确定丢失的归档日志
SQL>COLUMNFILE_NAMEFORMATa55;
SQL>SELECTTHREAD#,SEQUENCE#,FILE_NAMEFROMDBA_LOGSTDBY_LOGL
2>WHERENEXT_CHANGE#NOTIN
3>(SELECTFIRST_CHANGE#FROMDBA_LOGSTDBY_LOGWHEREL.THREAD#=THREAD#)
4>ORDERBYTHREAD#,SEQUENCE#;
THREAD#SEQUENCE#FILE_NAME
16/disk1/oracle/dbs/log-1292880008_6.arc
110/disk1/oracle/dbs/log-1292880008_10.arc
拷贝丢失的2归档日志到备库上
拷贝文件
注册不完整的归档日志
SQL>ALTERDATABASEREGISTERLOGICALLOGFILE
2>'/disk1/oracle/dbs/log-1292880008_7.arc';
Databasealtered.
SQL>ALTERDATABASEREGISTERLOGICALLOGFILE
2>'/disk1/oracle/dbs/log-1292880008_11.arc';
Databasealtered.
常用的查询语句1、查询数据库的角色。
Selectdatabase_rolefromv$database;
2、确定重做日志是否应用到备库上。
Selectapplied_scn,newest_scnfromdba_logstdby_progress;
3、确认重做数据的注册。
SELECTSEQUENCE#,FIRST_TIME,NEXT_TIME,DICT_BEGIN,DICT_ENDFROMDBA_LOGSTDBY_LOGORDERBYSEQUENCE#;
4、确认重做数据的应用。
SELECTNAME,VALUEFROMV$LOGSTDBY_STATSWHERENAME='coordinatorstate';5,dataguard访问模式selectguard_statusfromv$database;
其他管理在逻辑备库上运行DDL语句SQL>ALTERDATABASESTOPLOGICALSTANDBYAPPLY;Databasealtered.SQL>EXECUTEDBMS_LOGSTDBY.GUARD_BYPASS_ON;PL/SQLproceduresuccessfullycompleted.SQL>ALTERTABLESCOTT.EMPADDCONSTRAINTEMPIDUNIQUE(EMPNO);Tablealtered.SQL>EXECUTEDBMS_LOGSTDBY.GUARD_BYPASS_OFF;PL/SQLproceduresuccessfullycompleted.SQL>ALTERDATABASESTARTLOGICALSTANDBYAPPLY;Databasealtered.2:在逻辑数据库上添加数据文件在主数据库上执行数据文件的添加或者修改的操作时候,如果备库上根本没有响应的路径或者没有符合的空间剩余,备库上的执行操作就会失败SQL>selectevent,status_code,statusfromdba_logstdby_events;SQL>EXECUTEDBMS_LOGSTDBY.GUARD_BYPASS。