1.检查主、备convert参数
show parameter db_file_name_convert
show parameter log_file_name_convert
核对主备库DB_NAME、DB_UNIQUE_NAME,并设置:
alter system set db_file_name_convert='+DATADG/{备库DB_UNIQUE_NAME}','+DATA/{DB_NAME}' scope=both sid='*';
alter system set log_file_name_convert='+DATADG/{备库DB_UNIQUE_NAME}','+DATA/{DB_NAME}' scope=both sid='*';
2.检查数据库状态
select name,open_mode,protection_mode,database_role,switchover_status from database;
注意:switchover_status为TO STANDBY表示可以切换到备库
3.检查备库同步状态
select process,status from v$managed_standby;
select name,value from v$dataguard_stats;
注意:MRPO状态为APPLYING_LOG transport_lag和apply_lag为0
4.停掉集群中其中一个节点,主备库只保留一个节点
su - grid
crsctl stat res -t
srvctl stop instance -d [集群1] -i [节点2];
或登录主库节点2 shut immediate
srvctl stop instance -d [集群2] -i [节点2];
或登录备库节点2,shut immediate
5.切换前主库verify检查
alter database switchover to [Standby_db_unique_name] VERIFY;
6.主库切换到备库
alter database switchover to [Standby_db_unique_name];
7.通过数据库日志查看过程
set lines 2000 long 2000 pagesize 2000
select * from v$diag_info;
8.查看集群状态
su - grid
crsctl stat res -t
9.将新主库从mount状态打开,查看集群状态
alter database open;
select name,open_mode,protection_mode,database_role,switchover_status from v$database;
su - grid
crsctl stat res -t
10.将新备库从mount切换到read only
startup mount
alter database open read only;
alter database recover managed standby database using current logfile disconnect;
select name,open_mode,protection_mode,database_role,switchover_status from v$database;
11.开启集群剩下节点
(新备库) srvctl start instance -d [集群1] -i [节点2];
或登录新备库2节点 ,startup
(新主库) srvctl start instance -d [集群2] -i [节点2];
或登录新主库2节点 ,startup
12.查看集群状态
su - grid
crsctl stat res -t
13.检查新备库同步状态
su - oracle
sqlplus / as sysdba
select process,status from v$managed_standby;
select name,value from v$dataguard_stats;
注意:MRPO状态为APPLYING_LOG transport_lag和apply_lag为0