SWITCHOVER主库出现LOG SWITCH GAP和RESOLVABLE GAP解决一例

本文详细记录了一次在执行SWITCHOVER操作后,Oracle数据库出现LOG SWITCH GAP和RESOLVABLE GAP的问题及解决过程,涉及Data Guard (DG)环境,讨论了故障切换(FAILOVER)后的日志同步问题,并提供了有效的解决策略。
摘要由CSDN通过智能技术生成
今天做switchover,环境是11.2.0.3+OEL5.7,开始时主备库状态都是正常的,符合直接切换条件:
主库:
SQL> select open_mode,database_role,switchover_status from v$database;


OPEN_MODE            DATABASE_ROLE    SWITCHOVER_STATUS
-------------------- ---------------- --------------------
READ WRITE           PRIMARY          TO STANDBY


备库:
SQL> select open_mode,database_role,switchover_status from v$database;


OPEN_MODE            DATABASE_ROLE    SWITCHOVER_STATUS
-------------------- ---------------- --------------------
READ ONLY WITH APPLY PHYSICAL STANDBY NOT ALLOWED


主库直接进行swichover:
SQL> alter database commit to switchover to physical standby;
alter database commit to switchover to physical standby
*
ERROR at line 1:
ORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connected




SQL> select open_mode,database_role,switchover_status from v$database;


OPEN_MODE            DATABASE_ROLE    SWITCHOVER_STATUS
-------------------- ---------------- --------------------
READ WRITE           PRIMARY          LOG SWITCH GAP


提示有日志切换GAP,于是直接重启主库:
SQL> startup force
ORACLE instance started.


Total System Global Area  413372416 bytes
Fixed Size                  2228904 bytes
Variable Size             322964824 bytes
Database Buffers           83886080 bytes
Redo Buffers                4292608 bytes
Database mounted.
Database opened.
SQL> select open_mode,database_role,switchover_status from v$database;


OPEN_MODE            DATABASE_ROLE    SWITCHOVER_STATUS
-------------------- ---------------- --------------------
READ WRITE           PRIMARY          RESOLVABLE GAP


状态由LOG SWITCH GAP变成了RESOLVABLE GAP,从字面理解是主备库之间存在GAP,于是执行:


SQL> ALTER SYSTEM FLUSH REDO TO ora11dg2;


SQL> select open_mode,database_role,switchover_status from v$database;


OPEN_MODE            DATABASE_ROLE    SWITCHOVER_STATUS
--------
switchover 是一个用于在多个数据库实例之间进行切换的命令。它通常用于高可用性环境中,比如在主从复制架构中进行主备切换。 在使用 switchover 命令之前,你需要确保你的数据库环境已经正确地进行了设置和配置。具体的步骤可以根据你使用的数据库软件而有所不同。 一般来说,switchover 的步骤如下: 1. 首先,你需要登录到管理节点或者主数据库实例所在的服务器上。 2. 确保备数据库实例已经正确地配置和同步了主数据库的数据。你可以通过查询备数据库的状态来确认。 3. 在管理节点或者主数据库实例上执行 switchover 命令。具体的命令可能因数据库软件而异,比如对于 Oracle 数据库来说,可以使用 "ALTER DATABASE COMMIT TO SWITCHOVER TO STANDBY" 命令。 4. 执行 switchover 命令后,数据库实例会进行切换。主数据库会变为备数据库,而备数据库会变为主数据库。这个过程可能需要一些时间,具体时间取决于数据库的大小和网络延迟。 5. 切换完成后,你可以再次查询数据库的状态来确认切换是否成功。 需要注意的是,在进行 switchover 操作之前,建议先备份数据库并进行测试,以确保数据的完整性和可用性。 请注意,这里给出的是一般的步骤和思路,具体的操作和命令可能因数据库软件和版本而有所不同。在使用 switchover 命令之前,建议仔细阅读相关的文档和手册,以确保正确理解和操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值