当前状态是dg1为主库,备库为dg2先检查主备库状态:dg1SQLselectname,database_role,OPEN_MODE,SWITCHOVER_STATUSfromv$database;DATABASE_ROLEOPEN_MODESWITCHO
当前状态是dg1为主库,备库为dg2
先检查主备库状态:
dg1
SQL> select name,database_role,OPEN_MODE,SWITCHOVER_STATUS from v$database;DATABASE_ROLE OPEN_MODE SWITCHOVER_STATUS—————- ———- ——————–PRIMARYREAD WRITE SESSIONS ACTIVE
dg2
SQL> select database_role,OPEN_MODE,SWITCHOVER_STATUS from v$database;DATABASE_ROLE OPEN_MODE SWITCHOVER_STATUS—————- ———- ——————–
PHYSICAL STANDBY MOUNTED NOT ALLOWED
现在dg1(当前主库)上操作以下步骤:
SQL> alter database commit to switchover to physical standby with session shutdown;Database altered.SQL> shutdown immediate;ORA-01507: database not mountedORACLE instance shut down.SQL> startup mount;ORACLE instance started.Total System Global Area 390070272 bytesFixed Size2021024 bytesVariable Size150997344 bytesDatabase Buffers234881024 bytesRedo Buffers2170880 bytesDatabase mounted.SQL> select switchover_status from v$database;SWITCHOVER_STATUS——————–TO PRIMARY
现在dg2(当前备库)上操作以下步骤:
SQL> select name,database_role,OPEN_MODE,SWITCHOVER_STATUS from v$database;NAMEDATABASE_ROLE OPEN_MODE SWITCHOVER_STATUS——— —————- ———- ——————–ORCLDB PHYSICAL STANDBY MOUNTED TO PRIMARYSQL> select switchover_status from v$database;SWITCHOVER_STATUS——————–TO PRIMARYSQL> alter database commit to switchover to primary;Database altered.SQL> alter database open;Database altered.SQL> select name,database_role,OPEN_MODE,SWITCHOVER_STATUS from v$database;NAMEDATABASE_ROLE OPEN_MODE SWITCHOVER_STATUS——— —————- ———- ——————–ORCLDB PRIMARYREAD WRITE SESSIONS ACTIVE
以上的操作已经完成了主备的切换,现在dg2为主库,dg1为备库,接下来我们在现在的主库dg2上做几次日志变化,,看dg1能否同步过来。
dg1上看已经归档的日志:
SQL> select registrar,creator thread#,sequence#,first_change#,next_change# from v$archived_log;REGISTR THREAD# SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#——- ——- ———- ————- ————FGRD FGRD29586174586196dg2上经过几次日志切换,SQL> select * from v$log;GROUP# THREAD# SEQUENCE#BYTES MEMBERS ARC STATUSFIRST_CHANGE# FIRST_TIM———- ———- ———- ———- ———- — —————- ————- ———1136 524288001 NO CURRENT586469 05-JAN-142134 524288001 YES INACTIVE586464 05-JAN-143135 524288001 YES INACTIVE586467 05-JAN-14
可以看出现在日志已经到了36,那么我们在dg1上应用日志,应该会应用到日志35;
以下操作验证:
SQL> alter database recover managed standby database disconnect from session;Database altered.SQL> select registrar,creator thread#,sequence#,first_change#,next_change# from v$archived_log;REGISTR THREAD# SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#——- ——- ———- ————- ————RFSARCH34586464586467RFSARCH35586467586469
以上的主备切换过程就已经顺利进行完成。
本文出自 “阿布” 博客,请务必保留此出处