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 的命令会关闭所有的实例。
分类:
数据库(Oracle)
标签:
DataGurad
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)