查看: 4770|回复: 4

[HA] 物理standby中switchover时switchover pending的解决办法

[复制链接]
论坛徽章:
1
2013年新春福章
日期:2013-02-25 14:51:24
跳转到指定楼层
1#
发表于 2013-4-21 19:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DataGuard一主一物理备,sid为primary和standby,现在要把primary切换成备库,standby切换成主库。在switchover时primary上已经做了
     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_id为2也就是这个备库上有日志号为28的log还没有apply,继续跟踪alert log,看到它说:
     ORA-00314: log 5 of thread 1,expedted sequence# 28 doesn't match 0
这里提示我们28这个日志不存在!去standby的log_archive_dest_1去找一找,果然没有找到28的日志。于是我们可以通过拷贝,并注册:
     $cp primary/1_28_803392039.log standby/
     SQL>alter database register logfile '1_28_803392039.log';
     System altered.
这是再去看alert log,发现
     MRP0:Media Recovery Complete:End-Of-REDO(standby)
     Resetting standby activation ID XXXXX()
     Sun Apr 21 18:38:29 2013
     MRP0: Background Media Recovery process shutdown(standby)
这说明,在成功apply了所有主库传来的日志后,MRP0进程终于完成了所有工作并且“安享晚年”停止了,于是再次查看standby的switchover status,
     SQL>select switchover_status from v$database;
     SWITCHOVER_STATUS
     ---------------------------------
     TO PRIMARY
OK,状态正常了,愉快的切换吧!

PS:
这个输出结果是手工敲出来的,因为data guard在另一台电脑上,好累。。


论坛徽章:
190
生肖徽章:狗
日期:2006-11-23 04:26:03生肖徽章:羊
日期:2007-09-26 17:08:21生肖徽章:马
日期:2007-09-26 17:08:49授权会员
日期:2007-12-31 19:14:41生肖徽章2007版:牛
日期:2008-03-28 10:02:30奥运会纪念徽章:柔道
日期:2008-04-30 16:28:44奥运会纪念徽章:垒球
日期:2008-05-12 21:28:28奥运会纪念徽章:体操
日期:2008-06-26 10:00:41奥运会纪念徽章:沙滩排球
日期:2008-07-27 12:41:59奥运会纪念徽章:艺术体操
日期:2008-07-30 11:09:47
2#
发表于 2013-4-22 10:42 | 只看该作者

使用道具 举报

回复
论坛徽章:
1
ITPUB 11周年纪念徽章
日期:2012-10-09 18:07:31
3#
发表于 2013-4-26 09:46 | 只看该作者
很棒,很有参考性

使用道具 举报

回复
论坛徽章:
98
2009日食纪念
日期:2009-07-22 09:30:002010新春纪念徽章
日期:2010-03-01 11:05:012010年世界杯参赛球队:美国
日期:2010-05-02 21:32:232010数据库技术大会纪念徽章
日期:2010-05-13 09:34:23ITPUB季度 技术新星
日期:2010-05-17 15:53:17数据库板块每日发贴之星
日期:2010-05-24 01:01:072010年世界杯参赛球队:意大利
日期:2010-05-31 20:55:432010年世界杯参赛球队:巴拉圭
日期:2010-07-03 13:06:582010世博会纪念徽章
日期:2010-08-18 23:53:44ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51
4#
发表于 2013-4-26 14:57 | 只看该作者
顶一个,楼主没有继续找找为什么日志没有传过来的原因吗?

使用道具 举报

回复
论坛徽章:
1
ITPUB 11周年纪念徽章
日期:2012-10-09 18:07:31
5#
发表于 2013-5-3 21:48 | 只看该作者
后来我在自己的data guard中发现,在我的主备库切换时,备库转换为主库时常会被pending,主要原因是主库传送过来的日志没有被applied到最近的归档,所以我需要手动的去促发备库及时的应用这些未被使用的归档日志(ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;)之后再看的备库状态的话就变成正常了。

其中的原理可能都差不多,但是关键应该还是在配置主备库日志传送及应用的方式来决定着这些细微的差别

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表