11.2.0.4 on Oracle Linux 5.8 physical standbyswitchover
1 开启追踪Primary 以及Standby的alert日志
2 在主库查看是否日志都已经apply
select log.ARCHIVED,log.APPLIED
fromv$archived_log log
wheredest_id = 2
andsequence# = (select max(sequence#)
from v$archived_log l
wherel.resetlogs_change# =
(selectresetlogs_change# from v$database)
and dest_id = 1);
3 检查主库的转换状态
SELECTSWITCHOVER_STATUS FROM V$DATABASE;
TO STANDBY或者 SESSIONSACTIVE时表示primary可以转成standby;
Switchover_status为standby时,直接下指令:
Aletr database commit to switchover to physicalstandby
Switchover_status为SESSIONSACTIVE,检查哪些user session还在连接
SELECT SID, PROCESS, PROGRAM FROM V$SESSION
WHERE TYPE = 'USER'
AND SID <> (SELECT DISTINCT SID FROMV$MYSTAT);
或者下以下指令:
Aletr database commit to switchover to physicalstandby with session shutdown
4 shutdown and mount the former primarydatabase
Shutdown abort
Startup mount
5 确定standby database可以转成primary
SELECT SWITCHOVER_STATUSFROM V$DATABASE;
如果返回to primary或者sessions active都可以转成primary
6 将standby转成primary
Alter database commit to switchover to primarywith session shutdown
7开启新的primary
Alter database open;
8 开启redo log apply
Alter database recover managed standby databaseusing current logfile disconnect;
9 观察能否正常applya日志
在primary siwtch logfile,再查看standby alert日志是否正常apply redo log