DB2 v10.1 HADR 备机表空间失效问题

Linux 下两个节点的HADR,在primary 节点添加了一个表空间newtbsp,但是该表空间对应的裸设备在standby 没有建立,那么standby 的对应表空间将会处于rollforward pending 状态,并且停止对该表空间replay 日志。假设此时primary 的newtbsp 的表空间已经跑了很多ddl 和dml 操作,想让primary 和standby 的数据库恢复一致,有什么样的方式?该问题也可以延伸到“hadr使用了norecoverable load”的处理办法。请各位在提出解决办法时考虑以下问题(这几个点一般会有冲突,在不同的场景中需要取舍):1、怎样保证最小停机窗口;2、怎样保证数据严格一致;3、怎样保证HADR 关系尽快恢复;4、操作实施成功的难度。
参与16

15同行回答

李英杰李英杰数据库技术专家烁林软件
回复 14# stevenluffy     HADR环境下最好不要用LOAD,使用import进行数据加载显示全部
回复 14# stevenluffy


    HADR环境下最好不要用LOAD,使用import进行数据加载收起
系统集成 · 2015-04-10
浏览1147
回复 13# sina870312    这样的话hadr 恢复时间会变长,所以在某些场景下需要取舍。显示全部
回复 13# sina870312


   这样的话hadr 恢复时间会变长,所以在某些场景下需要取舍。收起
证券 · 2015-04-10
浏览1144
回复 12# 北京鼎新智联    一般作为DBA 是不建议用load 的,但是也有必须要用的时候,所以才会提出这个问题。显示全部
回复 12# 北京鼎新智联


   一般作为DBA 是不建议用load 的,但是也有必须要用的时候,所以才会提出这个问题。收起
证券 · 2015-04-10
浏览1112
sina870312sina870312软件开发工程师银联
进行主库进行全库备份,然后重建HADR,也不会影响任务主库的任务,无需停机窗口,保证了数据的一致性显示全部
进行主库进行全库备份,然后重建HADR,也不会影响任务主库的任务,无需停机窗口,保证了数据的一致性收起
互联网服务 · 2015-04-10
浏览1201
李英杰李英杰数据库技术专家烁林软件
想让primary 和standby 的数据库恢复一致,保证出问题时至当前的所有事务日志存在,HADR环境下不要使用load显示全部
想让primary 和standby 的数据库恢复一致,保证出问题时至当前的所有事务日志存在,HADR环境下不要使用load收起
系统集成 · 2015-04-10
浏览1137
Run_LeoCatRun_LeoCat数据库管理员中科金财
回复 10# stevenluffy     谢谢解答,找个地方我试试你说的那些状态,看看能不能观察到。:)显示全部
回复 10# stevenluffy


    谢谢解答,找个地方我试试你说的那些状态,看看能不能观察到。:)收起
医药 · 2015-04-07
浏览1227
回复 9# Run_LeoCat 1.怎样保证最小停机窗口?如果想尽快恢复HADR 关系而切换hadr 角色进行表空间恢复的话是有停机窗口的。2.楼主怎么观察standby端的没有对应裸设备的表空间的状态处于rollward pending?用db2pd么?standby的数据库不是一直处于一种rollforward的状态么?可以...显示全部
回复 9# Run_LeoCat


1.怎样保证最小停机窗口?如果想尽快恢复HADR 关系而切换hadr 角色进行表空间恢复的话是有停机窗口的。
2.楼主怎么观察standby端的没有对应裸设备的表空间的状态处于rollward pending?用db2pd么?standby的数据库不是一直处于一种rollforward的状态么?
可以通过日志看到;如果开启备机的只读访问模式,也可以连接上直接db2pd 查看。
3.现在整个hadr的状态是什么样子啊?如果发生了楼主的这种问题。
状态正常,但是备机的对应表空间处于rollforward pending 状态。
4.standby端,前滚完的日志应该是会被数据库直接删除了的,如果这个表空间无法前滚到和primary端一致,那在standby端的这些需要前滚的日志,还能被数据库删除么?
前滚完的日志不被删除,而是被归档了。对于受影响的表空间,将不会重演相关日志,其它表空间的日志正常。




如果是我遇到了这样的问题,我会用笨方法:
1.停了standby
2.用最新的备份恢复standby
3.从primary端直接拷贝剩余的日志到standby端,然后在standby端手动进行roll forward 到日志末尾,但不打开数据库
4.通过第三步,减少了log gap后,再打开hadr,然后让primary 和standby自然同步


你的方法很好,保证了不停机的情况下恢复hadr 环境。收起
证券 · 2015-04-03
浏览1274
Run_LeoCatRun_LeoCat数据库管理员中科金财
对于楼主的问题,没有想法,但是有几个问题想请教一下楼主:1.怎样保证最小停机窗口如果primary正常运行的话,会有停机窗口么?2.楼主怎么观察standby端的没有对应裸设备的表空间的状态处于rollward pending?用db2pd么?standby的数据库不是一直处于一种rollforward的状态么?3.现在整...显示全部
对于楼主的问题,没有想法,但是有几个问题想请教一下楼主:
1.怎样保证最小停机窗口
如果primary正常运行的话,会有停机窗口么?
2.楼主怎么观察standby端的没有对应裸设备的表空间的状态处于rollward pending?用db2pd么?standby的数据库不是一直处于一种rollforward的状态么?
3.现在整个hadr的状态是什么样子啊?如果发生了楼主的这种问题。
4.standby端,前滚完的日志应该是会被数据库直接删除了的,如果这个表空间无法前滚到和primary端一致,那在standby端的这些需要前滚的日志,还能被数据库删除么?

如果是我遇到了这样的问题,我会用笨方法:
1.停了standby
2.用最新的备份恢复standby
3.从primary端直接拷贝剩余的日志到standby端,然后在standby端手动进行roll forward 到日志末尾,但不打开数据库
4.通过第三步,减少了log gap后,再打开hadr,然后让primary 和standby自然同步

希望楼主指点,也望其他大牛斧正。收起
医药 · 2015-04-03
浏览1285
苏州易博创云苏州易博创云CTO苏州易博创云网络科技有限公司
执行下面的命令: 如果你需要的日志已经有备份,那么需要从备份集中去恢复 ,执行db2ckbkp 命令可以查看备份集的基本信息然后从执行下面的命令从指定的备份集中恢复需要的日志 db2 restore db 数据库名 logs from 备份集 taken at 时间 logtarget at 日志路径...显示全部
执行下面的命令:

如果你需要的日志已经有备份,那么需要从备份集中去恢复 ,执行db2ckbkp 命令可以查看备份集的基本信息

然后从执行下面的命令从指定的备份集中恢复需要的日志

db2 restore db 数据库名 logs from 备份集 taken at 时间 logtarget at 日志路径收起
IT咨询服务 · 2015-04-01
浏览1226
回复 6# 苏州易博创云    请问怎么恢复所有的日志呢?我测试中似乎只能使用数据库备份恢复然后前滚。显示全部
回复 6# 苏州易博创云


   请问怎么恢复所有的日志呢?我测试中似乎只能使用数据库备份恢复然后前滚。收起
证券 · 2015-04-01
浏览1236

提问者

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2015-03-29
  • 关注会员:1 人
  • 问题浏览:15787
  • 最近回答:2015-04-10
  • X社区推广