1、检验主数据库是执行切换的前提条件
(1)在主数据库上运行(RAC实例均运行)
ALTER SYSTEM ARCHIVE LOG CURRENT;
ALTER SYSTEM ARCHIVE LOG CURRENT;
ALTER SYSTEM ARCHIVE LOG CURRENT;
select THREAD#,sequence#,FIRST_TIME, NEXT_TIME from v$archived_log where DEST_ID=1 order by FIRST_TIME;
(2)在备数据库上运行
Set linesize 200
select THREAD#,SEQUENCE#,ARCHIVED,APPLIED ,FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG order by FIRST_TIME;
(3)核对1与2项输出结果,一致则关闭主、备数据库RAC中的一个实例(节点2关闭)
(4)在主数据库上运行(在此之前需要关闭所有数据库连接)
SELECT SWITCHOVER_STATUS FROM V$DATABASE;期望输出结果为:TO STANDBY或SESSION ACTIVE
(5)在备数据库上运行
SELECT SWITCHOVER_STATUS FROM V$DATABASE;期望输出结果为:NOT ALLOWED
2、在主数据库上发起切换
(1)在主数据库上发起切换。
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
(2)关闭主库实例,并重启:
startup nomount;
alter database mount standby database;
alter database add standby logfile THREAD 1 group 21 ‘+ASMVG1’ size 100m;
alter database add standby logfile THREAD 2 group 31 ‘+ASMVG1’ size 100m;
3、切换物理备数据库角色到主角色
(1)检验 物理备数据库的切换状态。
SELECT SWITCHOVER_STATUS FROM V$DATABASE;期望结果:TO_PRIMARY
(2)切换物理备数据库角色到主角色。
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
(3)打开物理备数据库
alter database open;
ALTER SYSTEM SET log_archive_dest_2=‘SERVICE=ccupdbpri1 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ccupdb’ SID=’*’;
alter system switch logfile;或者alter system archive log current;
4、确认备用库接收日志
新备库执行数据库追数据
(1)原主数据库启动到恢复模式
alter database open;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
(2)现主数据库
ALTER SYSTEM ARCHIVE LOG CURRENT;
(3)查看现备库日志是否应用