千家信息网

如何解决oracle11gR2 DataGuard switchover切换的两个错误状态

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家分享的是有关如何解决oracle11gR2 DataGuard switchover切换的两个错误状态的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在公司的测
千家信息网最后更新 2026年11月01日如何解决oracle11gR2 DataGuard switchover切换的两个错误状态

这篇文章给大家分享的是有关如何解决oracle11gR2 DataGuard switchover切换的两个错误状态的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

在公司的测试环境搭建了一套oracle11gR2 DataGuard,用来预生产测试。在Data Guard中分为两种冗余切换,一种是switchover无损切换,一种是failover丢弃切换。

所谓switchover是针对failover而言的,它是一种无损切换,切换的过程中不会丢失数据。 可以平滑的使主备互换并且2个库都可以正常使用。 切换过程:主库->切换->备库->检查状态->原备库->切换->主库->再检查状态

应用场合:主库因性能或其他原因需要调整升级,这时可以切换后用新主库对外提供服务。

关于DG的搭建过程这里就不详述了,下面就切换过程中出现的两个错误状态进行分析和解决。

一、SWITCHOVER LATENT状态

在备库上查询数据库角色和状态

SYS@standby> select database_role,switchover_status,open_mode from v$database;

DATABASE_ROLE SWITCHOVER_STATUS OPEN_MODE

---------------- -------------------- --------------------

PHYSICAL STANDBY SWITCHOVER LATENT READ ONLY

发现是switchover latent而不是to primary

这个问题是说切换处于pending模式,没有完成无法回到主库。当你查看ALERT日志时,也没有发现什么报错,是不是要继续等下去呢?其实不需要等待,出现这个问题的原因就是日志没有归档,所以备库与主库不一致,需要恢复。当备库恢复到和主库一致后,状态就会成为to_primary

验证一下这个问题是不是上面所说的原因,你可以继续在备库上执行下面这句

sys@standby> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;

ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN

*

ERROR at line 1:

ORA-16139: media recovery required

这里提示需要介质恢复。

根据以上的分析和定位,我们要解决这个问题,需要在备库上切断应用,启用日志同步

SYS@standby> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

Database altered.

SYS@standby> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS

--------------------

TO PRIMARY

显示为TO PRIMARY,这时看状态就正常了。

SYS@standby> alter database commit to switchover to primary with session shutdown;

Database altered.

SYS@standby> select database_role,switchover_status,open_mode from v$database;

DATABASE_ROLE SWITCHOVER_STATUS OPEN_MODE

---------------- -------------------- --------------------

PRIMARY NOT ALLOWED MOUNTED

打开数据库

sys@standby>alter database open;

切换一下日志

sys@standby> alter system switch logfile ;

System altered.

再检查一下日志的状态

SYS@standby> select sequence#,standby_dest,archived,applied,status from v$archived_log;

SEQUENCE# STA ARC APPLIED S

---------- --- --- --------- -

4 NO YES YES A

5 NO YES YES A

6 NO YES YES A

7 NO YES YES A

8 NO YES YES A

9 NO YES YES A

10 NO YES YES A

11 NO YES YES A

11 NO YES YES A

10 NO YES YES A

12 NO YES YES A

发现都是YES,说明已经同步了。

二、FAILED DESTINATION状态

当备库切换为主库后,发现切换状态为FAILED DESTINATION

SYS@primary> select database_role,switchover_status,open_mode from v$database;

DATABASE_ROLE SWITCHOVER_STATUS OPEN_MODE

---------------- -------------------- --------------------

PRIMARY FAILED DESTINATION READ WRITE

发现是FAILED DESTINATION而不是to standby

这个问题说明主库连接备库有问题,可以具体查看一下ALERT日志,看看是怎么回事

Error 12541 received logging on to the standby

Check whether the listener is up and running.

Errors in file /u01/app/oracle/diag/rdbms/primary/primary/trace/primary_arc2_2546.trc:

ORA-12541: TNS:no listener

PING[ARC2]: Heartbeat failed to connect to standby 'standby'. Error is 12541.

这里说明备库的监听有问题,重启备库监听,再查状态就变成to standby了

SYS@primary> select database_role,switchover_status,open_mode from v$database;

DATABASE_ROLE SWITCHOVER_STATUS OPEN_MODE

---------------- -------------------- --------------------

PRIMARY TO STANDBY READ WRITE

当然导致FAILED DESTINATION的原因会有很多,比如log_archive_dest_2 参数的属性值还有口令文件的配置出错或者权限问题等。

总之出了问题,面对问题分析问题就对了,从中你可以学到很多。

附Switchover_Status值的含义

NOT ALLOWED

当前的数据库不是带有备用数据库的主数据库

PREPARING DICTIONARY

该逻辑备用数据库正在向一个主数据库和其他备用数据库发送它的重做数据,以便为切换做准备

PREPARING SWITCHOVER

接受用于切换的重做数据时,逻辑备用配置会使用它

RECOVERY NEEDED

备用数据库还没有接收到切换请求

SESSIONS ACTIVE

在主数据库中存在活动的SQL会话;在继续执行之前必须断开这些会话

SWITCHOVER PENDING

适用于那些已收到主数据库切换请求但是还没有处理该请求的备用数据库

SWITCHOVER LATENT

切换没有完成并返回到主数据库

TO LOGICAL STANDBY

主数据库已经收到了来自逻辑备用数据库的完整的字典

TO PRIMARY

该备用数据库可以转换为主数据库

TO STANDBY

该主数据库可以转换为备用数据库

感谢各位的阅读!关于"如何解决oracle11gR2 DataGuard switchover切换的两个错误状态"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

数据 切换 数据库 状态 问题 备用 日志 原因 过程 两个 错误 逻辑 分析 检查 一致 内容 更多 篇文章 同步 应用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州大一互联网络科技有限公司 互联网的科技 互联网最新的科技 鸠鸠互联网科技 互联网科技未来 致聘互联网科技 上海喔噻互联网科技 电子科技大学互联网 科技互联网创业计划书 互联网科技大会案例 镁科技互联网资讯平台 互联网科技公司需要的职位 洛阳昕诺飞互联网科技有限公司 乌鲁木齐新华智原互联网科技学校 互联网金融科技名词解释 国大互联网教育科技有限公司薪资 互联网科技融合创新 新氧科技和美国互联网有关系吗 江苏互联网智能科技产品出厂价 科技信息时代互联网发展 互联网科技金融公司 万易互联网科技 苏州互联网科技贷款公司 互联网教育科技公司vipkid 迪庆互联网科技招生 四川慕妮娅互联网科技有限公司 互联网金融科技公司的优势 有人说阿里系是互联网科技企业 马化腾互联网科技教学 恒生科技互联网指数十大成分股
0