oracle dg主备切换

本文详细介绍了Oracle数据库的主备切换过程,包括查看库状态、用户主动切换和故障切换。在主备切换中,涉及了数据库角色的转变、会话断开、数据库状态检查以及重启等步骤。在故障切换时,模拟主库宕机,并通过备库进行切换以确保业务连续性。整个过程旨在确保数据库系统的稳定性和高可用性。
摘要由CSDN通过智能技术生成

oracle dg主备切换

出现主备切换一般两种原因,一是做主、备库维护,需要用户手动去切换,而是主库发生了故障,需要强行去切换。

1.查看库状态

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 该主数据库可以转换为备用数据库

2.switch:用户主动切换;

2.1:查看主库状态

select database_role, switchover_status from v$database;

如果是to standby:
alter database commit to switchover to physical standby;

其他:(等待会话断开,也可以主动去kill掉这些会话)
alter database commit to switchover to physical standby with session shutdown;

2.2:重启主库(现在是备库身份了)

shutdown immediate;
startup nomount;
alter database mount standby database;
alter database open read only;
alter database recover managed standby database using current logfile disconnect;

2.3:查看备库状态(原本是NOT ALLOWED,主库改备库后,会自动变成TO PRIMARY)

select database_role, switchover_status from v$database;

如果是to primary:
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

其他:(等待会话断开,也可以主动去kill掉这些会话)
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;

2.4:重启备库(现在是主库身份了)

shutdown immediate;
startup;

3.failover:主库出现故障,强行切换(备库操作,主库坏了)

3.1:模拟主库宕掉

shutdown abort;

3.2:备库停止日志应用

alter database recover managed standby database cancel;

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

3.3:查看备库状态

//此时应该是TO PRIMARY
select switchover_status from v$database;

3.4:备库切换到主库

alter database commit to switchover to primary with session shutdown;


//这里如果存在gap,会报ORA-16139,需要强制切换
alter database activate physical standby database;

3.5:开启新主库

alter database open;

//查看新主库状态
select open_mode,database_role,switchover_status from v$database;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值