背景环境: IBM P55A 服务器双机 HACMP集群,假设为A和B A和B上分别运行DB2 V9.1 通过HADR保障数据同步,A机为主服务器,运行数据库资源组,B机为在线热备服务器,当A机故障进行资源组切换时,通过切换脚本完成HADR角色转变(takeover)。
主数据库每周六有一个在线全备,其余每天增量备份。
问题描述: 周二准备对A机进行停机维护,操作流程是:
(1)将A机数据库资源组切换到B机,正常通过切换脚本资源组过去后,B机数据库角色变为primary,A机数据库角色变为standby
(2)然后停止A机数据库HACMP、HADR、数据库实例,然后重启A机,启动完成后再启动数据库实例、HADR及HACMP
(3)然后将B机服务器资源组切回到A机,此时A机数据库为primary,B机数据库为standby
按理说到步骤(3)整个过程应该完成,但当天在到步骤(3)后出现问题:即A机的数据库资源组又自动切换到了B机,同时A机的数据库和B机的数据库状态都是primary,disconnect,因为资源组在B机所以此时B机对外服务,但接着发现B机有一个数据库表空间状态为Restore Pending,导致应用的部分功能无法使用,接着对A机数据库进行恢复,利用周六全备及周一增量备份,然后启动HADR为standby失败,怀疑为B机数据库故障导致HADR无法同步,于是为恢复B机故障表空间,将A机数据库对应表空间做离线备份,然后在B机上做故障表空间恢复并前滚(第一次知道表空间必须进行前滚恢复),但前滚恢复就是失败,提示的大概信息是invalid log之类的(具体记不清了),通过query status查看所需的日志在B机上有但就是前滚恢复不成功
存在疑问: (1)数据库资源组第二次切换回到A机后为何又自动切换回去了?
(2)自动切换后为什么又出现两个primary状态,导致HADR无法同步?
(3)为什么B机数据库会有一个表空间是Restore Pending?
(4)哪些情况会导致一个表空间状态变为Restore Pending?
附件为A机和B机数据库诊断日志附件:
A机错误日志.log (387.29 KB)
B机错误日志.log (1.03 MB)
收起