切换是计划内事件,计划外是故障转移
1)切换前准备
将Primary端和Standby端的实例都减小到1。
确保Primary上已没有活动会话:
SWITCHOVER_STATUS
----------------------------------------
TO STANDBY
如果是结果是SESSIONS ACTIVE,说明还有会话连接,检查:
关停这些会话。
确认Standby是否与Primary同步:
分两种情况:
a. 如果是最高可用或最大保护:
DB_UNIQUE_NAME PROTECTION_MODE SYNCHRONIZATION_STATUS SYN
--------------- -------------------- ---------------------- ---
NONE MAXIMUM PERFORMANCE CHECK CONFIGURATION NO
matrix_dr0 MAXIMUM AVAILABILITY OK YES
NONE MAXIMUM PERFORMANCE CHECK CONFIGURATION NO
NONE MAXIMUM PERFORMANCE CHECK CONFIGURATION NO
NONE MAXIMUM PERFORMANCE CHECK CONFIGURATION NO
NONE MAXIMUM PERFORMANCE CHECK CONFIGURATION NO
NONE MAXIMUM PERFORMANCE CHECK CONFIGURATION NO
NONE MAXIMUM PERFORMANCE CHECK CONFIGURATION NO
NONE MAXIMUM PERFORMANCE CHECK CONFIGURATION NO
NONE MAXIMUM PERFORMANCE CHECK CONFIGURATION NO
10 rows selected.
b. 如果是最高性能
在Primary,查看当前日志序列号
THREAD# SEQUENCE# STATUS
---------- ---------- --------------------------------
1 265 INACTIVE
1 266 CURRENT
1 264 INACTIVE
在Standby,查看RFS的序列号。如果和Primary一致,则表明同步。
CLIENT_PROCESS PROCESS SEQUENCE# STATUS
---------------- ------------------ ---------- ------------------------
ARCH ARCH 0 CONNECTED
ARCH ARCH 0 CONNECTED
ARCH ARCH 0 CONNECTED
ARCH ARCH 265 CLOSING
N/A MRP0 266 APPLYING_LOG
ARCH RFS 0 IDLE
UNKNOWN RFS 0 IDLE
LGWR RFS 266 IDLE
2)tail -f 查看alert log
3) 执行切换
在Primary
到这里,原来的Primary已经转换为Standby。接下来要将原来的Standby转换为Primary。
在原来的Standby端,正在等待转换为Primary(TO PRIMARY)
SWITCHOVER_STATUS
----------------------------------------
TO PRIMARY
接下来在原备用库上运行命令,完成备用到主数据库的切换:
4)后续
打开新Primary数据库
新的Standby数据库启用Redo Apply
完成。
1)切换前准备
将Primary端和Standby端的实例都减小到1。
确保Primary上已没有活动会话:
点击(此处)折叠或打开
- SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
----------------------------------------
TO STANDBY
点击(此处)折叠或打开
- SELECT PROGRAM, TYPE FROM V$SESSION WHERE TYPE='USER';
确认Standby是否与Primary同步:
分两种情况:
a. 如果是最高可用或最大保护:
点击(此处)折叠或打开
-
SELECT DB_UNIQUE_NAME, PROTECTION_MODE, SYNCHRONIZATION_STATUS,
- SYNCHRONIZED FROM V$ARCHIVE_DEST_STATUS;
DB_UNIQUE_NAME PROTECTION_MODE SYNCHRONIZATION_STATUS SYN
--------------- -------------------- ---------------------- ---
NONE MAXIMUM PERFORMANCE CHECK CONFIGURATION NO
matrix_dr0 MAXIMUM AVAILABILITY OK YES
NONE MAXIMUM PERFORMANCE CHECK CONFIGURATION NO
NONE MAXIMUM PERFORMANCE CHECK CONFIGURATION NO
NONE MAXIMUM PERFORMANCE CHECK CONFIGURATION NO
NONE MAXIMUM PERFORMANCE CHECK CONFIGURATION NO
NONE MAXIMUM PERFORMANCE CHECK CONFIGURATION NO
NONE MAXIMUM PERFORMANCE CHECK CONFIGURATION NO
NONE MAXIMUM PERFORMANCE CHECK CONFIGURATION NO
NONE MAXIMUM PERFORMANCE CHECK CONFIGURATION NO
10 rows selected.
在Primary,查看当前日志序列号
点击(此处)折叠或打开
- SELECT THREAD#,SEQUENCE#,STATUS FROM V$LOG;
THREAD# SEQUENCE# STATUS
---------- ---------- --------------------------------
1 265 INACTIVE
1 266 CURRENT
1 264 INACTIVE
点击(此处)折叠或打开
- SELECT CLIENT_PROCESS,PROCESS,SEQUENCE#,STATUS FROM V$MANAGED_STANDBY;
CLIENT_PROCESS PROCESS SEQUENCE# STATUS
---------------- ------------------ ---------- ------------------------
ARCH ARCH 0 CONNECTED
ARCH ARCH 0 CONNECTED
ARCH ARCH 0 CONNECTED
ARCH ARCH 265 CLOSING
N/A MRP0 266 APPLYING_LOG
ARCH RFS 0 IDLE
UNKNOWN RFS 0 IDLE
LGWR RFS 266 IDLE
3) 执行切换
在Primary
点击(此处)折叠或打开
-
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY
- WITH SESSION SHUTDOWN;
在原来的Standby端,正在等待转换为Primary(TO PRIMARY)
点击(此处)折叠或打开
- SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
----------------------------------------
TO PRIMARY
点击(此处)折叠或打开
-
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY
- WITH SESSION SHUTDOWN;
4)后续
打开新Primary数据库
点击(此处)折叠或打开
- ALTER DATABASE OPEN;
点击(此处)折叠或打开
-
SQL> SHUTDOWN IMMEDIATE
-
SQL> STARTUP MOUNT
- SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22621861/viewspace-1381304/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22621861/viewspace-1381304/