1. 获取数据库基本信息
SELECT name,
db_unique_name,
open_mode,
database_role
FROM v$database;
检查数据库的角色信息,区分主库(primary)和备库(physical standby)。
2. 停主库实例
shutdown immediate
此步骤需要停primary数据库所有节点实例。
3. 启一个主库实例至mount状态
startup mount
将主库任意一个节点启至mount状态即可。
4. 主库创建还原点
create restore point befor_open_dg guarantee flashback database;
在启至mount状态的主库节点上创建还原点。
5. 将mount状态的主库实例切成open状态
alter database open;
用此命令将mount状态的主库实例切至open状态。
6. 切两三次日志
alter system switch logfile;
将此命令执行两三次,切两三次日志,注意观察主备库日志状态。
7. 检查主库切换状态
SELECT switchover_status
FROM v$database;
若查询结果为to standby,则主库可执行下一步的切换操作。
8. 主库切成备库
alter database commit to switchover to standby with session shutdown;
注意观察日志!
9. 检查备库切换状态
SELECT switchover_status
FROM v$database;
若查询结果为to primary,则备库可执行下一步的切换操作。
10. 备库切成主库
alter database commit to switchover to primary with session shutdown;
11. 将备库(已切成主库)所有实例启至open
alter database open;
注意检查备库(已切成主库)的监听等状态。
12. 删除主库(已切成备库)上的还原点
drop restore point befor_open_dg;
13. 将主库(已切成备库)所有实例启至open
alter database open;
或者
startup
对于mount状态的主库(已切成备库)用第一条命令,对于之前shutdown的主库(已切成备库)用第二条命令拉起来,确保所有实例都被拉起来了。
14. 在主库(已切成备库)任一节点实例启mrp进程
alter database recover managed standby database using current logfile disconnect from session;
拉起mrp进城后注意检查日志传输及应用状态。
网友评论