DG中备库为SWITCHOVER PENDING时是否能进行主备切换

     看到备库的 Switchover_Status为  SWITCHOVER PENDING,我不确定是否妨碍主备库切换。
随后查看了一些文章,大概说是由于断档导致,而且还不能进行正常切换,要恢复丢失了的归档日志到备库。
---收集了一些关于DG中主备库的 Switchover_Status:

NOT ALLOWED

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

PREPARING DICTIONARY

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

PREPARING SWITCHOVER

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

RECOVERY NEEDED

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

SESSIONS ACTIVE

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

SWITCHOVER PENDING

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

SWITCHOVER LATENT

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

TO LOGICAL STANDBY

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

TO PRIMARY

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

TO STANDBY

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

 
----引用出现过类似情况案例的博文:
---博主在进行切换过程中,已经把主库切换成备库后原备库的Switchover_Status为 SWITCHOVER PENDING:

SQL>alter database commit to switchover to physical standby with session shutdown;并且shutdown immediate;startup mount;

这时,在standby上查看switchover status

     SQL>select switchover_status from v$database;

     SWITCHOVER_STATUS

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

     SWITCHOVER PENDING

居然显示为pending!这说明这个standby已经接收到了primary传来的to primary的通知,但是还没有执行。

那么为什么没有执行呢?通过v$archived_log我们可以找到答案。

     SQL>select dest_id,sequence#,archived,applied from v$archived_log order by 1,2;

可以看到目前dest_id2也就是这个备库上有日志号为28log还没有apply,继续跟踪alert log,看到它说:

     ORA-00314: log 5 of thread 1,expedted sequence# 28 doesn't match 0

这里提示我们28这个日志不存在!去standbylog_archive_dest_1去找一找,果然没有找到28的日志。于是我们可以通过拷贝,并注册:

     $cp primary/1_28_803392039.log standby/

     SQL>alter database register logfile '1_28_803392039.log';

     System altered.

这是再去看alert log,发现备库成功切换成新主库。

--上面提到的那种情况就是说是由于备库断档原因导致备库的Switchover_Status为SWITCHOVER PENDING。
但在我的案例中,情况有所不一样,我的DG备库情况是刚从failover切换中把原主库恢复成为新备库,就出现了
备注的Switchover_Status为SWITCHOVER PENDING。

----当时的主备库的切换状态:

---主库:

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

OPEN_MODE            PROTECTION_MODE      SWITCHOVER_STATUS    DATABASE_ROLE

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

READ WRITE           MAXIMUM PERFORMANCE  SESSIONS ACTIVE      PRIMARY

 

---备库:

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

OPEN_MODE            PROTECTION_MODE      SWITCHOVER_STATUS    DATABASE_ROLE

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

READ ONLY WITH APPLY MAXIMUM PERFORMANCE  SWITCHOVER PENDING   PHYSICAL STANDBY


--我最后去核查归档,发现主备库都没有断档情况,所有被传输到备库的归档日志都成功被应用,也就是说不是断档导致。
后面我还尝试做了主备库之间角色的切换,结果是正常切换成功。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31392094/viewspace-2135699/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31392094/viewspace-2135699/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值