Oracle-switchover转换DG角色

switchover 切换过程

primary库进行switchover切换

运行切换条件检查(12.1+)

ALTER DATABASE SWITCHOVER TO <standby db_unique_name> VERIFY;

检查主库状态信息

主库switchover_status显示 "TO STANDBY",即表示主库此时可以切换为备库

set lines 168 pages 99
col name for a18
col db_unique_name for a18
col open_mode for a24
col log_mode for a12
col database_role for a20
col host_name for a20
col flashback_on for a16
col switchover_status for a28

select name,db_unique_name,open_mode,log_mode,database_role,(select HOST_NAME from v$instance) HOST_NAME,flashback_on,switchover_status from v$database;

手动运行switchover切换

-- alter database commit to switchover to physical standby with session shutdown; 
   alter database commit to switchover to standby with session shutdown;

此时,数据库关闭

启动数据库

startup;

检查数据库状态

set lines 168 pages 99
col name for a18
col db_unique_name for a18
col open_mode for a24
col log_mode for a12
col database_role for a20
col host_name for a20
col flashback_on for a16
col switchover_status for a28

select name,db_unique_name,open_mode,log_mode,database_role,(select HOST_NAME from v$instance) HOST_NAME,flashback_on,switchover_status from v$database;

此时,数据库以PHYSICAL STANDBY角色运行

standby库进行switchover切换

检查当前数据库信息

set lines 168 pages 99
col name for a18
col db_unique_name for a18
col open_mode for a24
col log_mode for a12
col database_role for a20
col host_name for a20
col flashback_on for a16
col switchover_status for a28

select name,db_unique_name,open_mode,log_mode,database_role,(select HOST_NAME from v$instance) HOST_NAME,flashback_on,switchover_status from v$database;

确认SWITCHOVER_STATUS 状态为:TO PRIMARY

手动执行切换

 alter database commit to switchover to primary with session shutdown;

检查数据库状态信息

set lines 168 pages 99
col name for a18
col db_unique_name for a18
col open_mode for a24
col log_mode for a12
col database_role for a20
col host_name for a20
col flashback_on for a16
col switchover_status for a28

select name,db_unique_name,open_mode,log_mode,database_role,(select HOST_NAME from v$instance) HOST_NAME,flashback_on,switchover_status from v$database;

打开数据库

alter database open;

新备库(即原主库)开始日志应用

 alter database recover managed standby database using current logfile disconnect from session;

检查DG状态

SELECT CLIENT_PROCESS, PROCESS, THREAD#, SEQUENCE#, STATUS 
FROM V$MANAGED_STANDBY 
WHERE CLIENT_PROCESS='LGWR' OR PROCESS='MRP0';

注意事项

  • alter database commit to switchover to physical standby with session shutdown; 等待数据库挂掉(only shutdown abort)后再启动到mount
  • 在 RAC 环境不需要关闭其他的实例,执行 Switchover 的命令会关闭所有的实例
posted @   KuBee  阅读(160)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示

目录导航