You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DB2 9.7 HADR主数据库迁移至新服务器的故障排查及解决咨询

问题根因
  • 缺失HADR必要配置项:服务器C仅配置了本地HADR参数,未配置指向备库B的HADR_REMOTE_HOST、HADR_REMOTE_SVC、HADR_REMOTE_INST参数;备库B未明确配置本地HADR参数,且也缺少指向C的HADR_REMOTE_INST参数
  • 备库B的HADR配对校验不通过:原备库B保留了和旧主库A的配对元数据,未重置HADR状态,导致新主库C的备份序列无法与B匹配,所以查询快照时MYDB不显示在HADR列表中
  • 新主库C恢复备份后如果执行了额外的前滚操作,会导致日志基点和备库不一致,对端日志显示为S0000000.log就是配对时日志基点不匹配的典型表现
修正后完整迁移操作步骤
  1. 前置准备
  • 停掉MYDB所有上层应用,在旧主库A执行db2 quiesce db immediate force connections,确认无活动连接后执行db2 stop hadr on db mydb,待备库B提示日志接收中断后,在B执行db2 stop hadr on db mydb,再执行db2 deactivate db mydb
  1. 备份与恢复
  • 在旧主库A执行离线全量备份:db2 backup db mydb to /备份路径,将备份文件传输到服务器C
  • 在服务器C执行恢复:db2 restore db mydb from /备份路径 replace existing,不需要执行rollforward操作,离线备份恢复后数据库默认处于一致状态,额外执行前滚会改变日志基点
  1. 完整配置HADR参数
    注意所有参数值替换为你环境的实际值,实例名如果和原有实例不一致请调整
  • 服务器C(新主库)执行:

db2 update db cfg for mydb using HADR_LOCAL_HOST C
db2 update db cfg for mydb using HADR_LOCAL_SVC hadr_mydb_c
db2 update db cfg for mydb using HADR_REMOTE_HOST B
db2 update db cfg for mydb using HADR_REMOTE_SVC hadr_mydb_b
db2 update db cfg for mydb using HADR_REMOTE_INST <备库B的DB2实例名>
db2 update db cfg for mydb using HADR_SYNCMODE <原有A-B集群的同步模式,保持和旧配置一致>

  • 服务器B(现有备库)执行:

db2 update db cfg for mydb using HADR_LOCAL_HOST B
db2 update db cfg for mydb using HADR_LOCAL_SVC hadr_mydb_b
db2 update db cfg for mydb using HADR_REMOTE_HOST C
db2 update db cfg for mydb using HADR_REMOTE_SVC hadr_mydb_c
db2 update db cfg for mydb using HADR_REMOTE_INST <主库C的DB2实例名>
db2 update alternate server for database mydb using hostname C port 3700
确认hadr_mydb_b对应的端口也已在B、C的/etc/services中配置,两端实例名、端口、主机名无拼写错误,hosts解析正常

  1. 重置备库HADR状态
  • 在备库B执行:db2 deactivate db mydb,然后执行db2 start hadr on db mydb as standby force,force参数会强制清空备库的旧配对信息,接受新主库的同步请求
  1. 启动新主库HADR
  • 在服务器C执行:db2 activate db mydb,然后执行db2 start hadr on db mydb as primary
  1. 连通性校验
  • 两端等待1-2分钟后执行db2pd -db mydb -hadr,确认HADR_CONNECT_STATUS为CONNECTED,HADR_STATE为PEER(同步模式下)或者REMOTE_CATCHUP,对端日志文件名和本地日志文件名序列连续
  • 在备库执行快照查询,确认MYDB已经出现在结果集中
    如果还是连接失败,先检查两端防火墙是否开放HADR端口(3734、hadr_mydb_b对应的端口),从B执行telnet C 3734测试连通性,再查看db2diag.log中的HADR相关报错定位具体问题。

内容的提问来源于stack exchange,提问作者Ste Scott

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 04:15:04