Oracle DG主备切换

主备库切换原因

1. switch:用户主动切换;

2. failover:主库出现故障,强行切换;

switch 切换过程:先主库再备库
主库

v$database Switchover_Status 值的含义

NOT ALLOWED 当前的数据库不是带有备用数据库的主数据库
PREPARING DICTIONARY 该逻辑备用数据库正在向一个主数据库和其他备用数据库发送它的重做数据,以便为切换做准备
PREPARING SWITCHOVER 接受用于切换的重做数据时,逻辑备用配置会使用它
RECOVERY NEEDED 备用数据库还没有接收到切换请求
SESSIONS ACTIVE 在主数据库中存在活动的SQL会话;在继续执行之前必须断开这些会话
SWITCHOVER PENDING 适用于那些已收到主数据库切换请求但是还没有处理该请求的备用数据库
SWITCHOVER LATENT 切换没有完成并返回到主数据库
TO LOGICAL STANDBY 主数据库已经收到了来自逻辑备用数据库的完整的字典
TO PRIMARY 该备用数据库可以转换为主数据库
TO STANDBY 该主数据库可以转换为备用数据库


1. 查看 switchover_status:
select database_role, switchover_status from v$database;

如果switchover_status为:to standby 则:

alter database commit to switchover to physical standby;

否则用:

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

2. 重启数据库:

shutdown immediate;
startup nomount;

3. 以备库mount

alter database mount standby database;

备库

1. 应用redo:alter database recover managed standby database disconnect from session;

2. 查看switchover_status:select database_role, switchover_status from v$database;

如果switchover_status为:to primary 则:ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY

否则用:ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;

3. 重启数据库

shutdown immediate;

startup;

 


failover 主备库切换

1.停止日志应用
alter database recover managed standby database cancel;

2. 关闭standby日志传输
alter database recover managed standby database finish force;

3. 切换到primary
alter database commit to switchover to primary with session shutdown;

做这一步的时候,若存在gap,则会报ORA-16139:Switchover: Media recovery required - standby not in limbo 错误。

做测试的时候,若先起主库再起备库,且未等待备库相关日志传输完毕,就会出现这个问题。此时需要强制切换
alter database activate physical standby database;

4. 重启数据库到open状态

 alter database open;

 

--原文地址:https://www.modb.pro/db/46562?xzs

posted @   钱若梨花落  阅读(799)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示