关于AIX系统HA环境下DB2数据库切换后崩溃恢复的问题?

一、问题背景:A和B服务器安装AIX操作系统并做了做HA的双机热备,各自安装了一个DB2数据库并创建了实例,有一个共享卷组,将库创建在共享卷组上,正常情况下数据库卷组挂载在A服务器上,B服务器的数据库实例是启动状态;前两天A服务器突然宕机,然后数据库共享卷组在B服务器上挂载,按我的...显示全部

一、问题背景:
A和B服务器安装AIX操作系统并做了做HA的双机热备,各自安装了一个DB2数据库并创建了实例,有一个共享卷组,将库创建在共享卷组上,正常情况下数据库卷组挂载在A服务器上,B服务器的数据库实例是启动状态;
前两天A服务器突然宕机,然后数据库共享卷组在B服务器上挂载,按我的理解数据库应该第一时间做崩溃恢复,查询B服务器上数据库诊断日志db2diag.log,也查到了提示信息crash recovery is needed,但是等了半天数据库就是无法连接即给人的感觉就是崩溃恢复还未完成(等了大概30分钟),当时执行连库等任何与库相关的操作执行命令后就hang住,没有响应也没有错误返回;最后等不了了就执行db2stop force也挂起没有响应,最后执行了db2_kill和ipclean后才在B服务器上把实例停了,此时A服务器重启完成,启动HA后把数据库卷组拉回到A服务器后,A服务器数据库实例启动,数据库很快完成崩溃恢复,经查看A服务器的数据库诊断日志,发了有crash recovery is needed信息,跟在后面还有crash recovery initialization start

,和读取某个LSN之类的信息,而这些信息在当时数据库切换到B服务器上时就没有看到即B服务器好像就没走崩溃恢复流程

二、存在的疑问
(1)个人认为B数据库压根就没有执行崩溃恢复(依据当时B服务器的诊断日志做出的判断),不知这点是否正确?
(2)如果我(1)观点是对的,那么为什么B服务器没有执行崩溃恢复?如果我(1)观点是错的,那么为什么执行那么久还没恢复成功而拉回A服务器立刻崩溃恢复就完成了?
(3)如果(1)观点成立的情况下,在B服务器上之所以没有开始崩溃恢复,个人认为和B数据库上的实例处于启动状态有关系,即对于一个从A服务器上切过来的库,如果要进行崩溃恢复,就应该走实例启动、装载数据库然后执行数据库崩溃恢复这样的流程,而当时B数据库的实例处于启动状态此时装载一个在其他服务器上运行着的数据库会造成崩溃恢复有问题,这是我的怀疑方向但没有理论支撑,请大家给点意见

收起
参与9

查看其它 2 个回答zymh_zy的回答

zymh_zyzymh_zyIT顾问国内某公司

B机的实例,平时是关闭状态,在HA 发生切换,从A切换到B机时,才启动实例,再挂载共享卷组里的数数库目录文件吧?

IT咨询服务 · 2019-12-16
浏览2406

回答者

zymh_zy
IT顾问国内某公司
擅长领域: 服务器数据库中间件

zymh_zy 最近回答过的问题

回答状态

  • 发布时间:2019-12-16
  • 关注会员:4 人
  • 回答浏览:2406
  • X社区推广