在进行DATA GUARD的物理STANDBY切换前需要注意:
确认主库和从库间网络连接通畅;确认没有活动的会话连接在数据库中;PRIMARY数据库处于打开的状态,STANDBY数据库处于MOUNT状态;确保STANDBY数据库处于ARCHIVELOG模式;如果设置了REDO应用的延迟,那么将这个设置去掉;确保配置了主库和从库的初始化参数,使得切换完成后,DATA GUARD机制可以顺利的运行。确认当前数据库只有当前会话连接:
set pages 100 linesize 1000;select SWITCHOVER_STATUS from v$database;select count(*) from v$session where username is not null;若有多于一个会话则:
select sid,serial# from v$session where username is not null;select userenv('sid') from dual;alter system kill session 'sid,serial#';主库切换并重启至mount状态
alter database commit to switchover to physical standby;shutdown immeidate;startup mount;登陆备库将其转换成primary库
set pages 100 lines 1000;select SWITCHOVER_STATUS from v$database;若switchover_status的值为to primary则可以开始standby to primary
alter database commit to switchover to primary;alter database open;standby to primary过程已经完成,回到原主库启动STANDBY开始接收并恢复主库的日志
alter database recover managed standby database disconnect from session;switchover完成,检查下归档是否正常传输
检查日志最大序号是否一致,在主备库上检查归档序号是否一致alter system switch logfile;select sequence#,name,applied from v$archived_log order by sequence#;查看是否有错误信息
select dest_id,status,destination,error from v$archive_dest;查看状态
select status,type,database_mode,destination,db_unique_name,recovery_mode from v$archive_dest_status;查看镜像日志
select timestamp,message from v$dataguard_status;查看进程是否都已启动(ARCH、MRP0、RFS)
select process,status,thread#,sequence#,client_pid from v$managed_standby;