文档目录

适用场景

  • 产品:ZCF
  • 组件:ZStack Cloud
  • 版本:4.4.x
  • 部署形态:双管理复用超融合节点
  • 触发条件:异常断电或供电故障导致双管理数据库不同步。

问题现象

  • 双管理数据库出现不同步。
  • 管理服务需要短时间停止。
  • 说明:数据库同步期间用户无法通过 UI 管理云平台,但不会影响现有物理机和云主机在线业务。

判断方法

  1. 先备份数据库并关闭高可用。
  2. 用 zsha2 db-status 判断哪个节点数据库状态正常。
  3. 把 VIP 切换到数据库正确的节点后再执行同步。
  4. 同步完成后再次检查数据库状态与资源连接情况。

原因说明

直接原因是异常断电或供电故障导致双管理数据库不同步。此类问题的处理关键不是简单重启服务,而是先明确“哪个节点数据库是正确的”,再把 VIP 切到正确节点上执行 zsha2 db-sync,否则可能把异常状态进一步扩散。

解决方案

  1. 执行前准备
  • 风险等级:低
  • 先备份数据库。
  • 先把数据库备份复制到异地。
  • 先关闭云平台全局高可用。
  1. 备份数据库并关闭高可用
  2. 在双管理节点备份数据库:
   zstack-ctl dump_mysql --file-name beforSyncDB
  • 预期结果:生成同步前数据库备份。
  1. 将备份复制到异地:
   scp /var/lib/zstack/mysql-backup/beforSyncDB.gz x.x.x.x:/opt
  • 预期结果:异地保留回退副本。
  1. 通过 UI 关闭全局高可用。
  • 预期结果:避免数据库同步期间触发额外平台动作。
  1. 停止双管理并切换 VIP
  2. 停止双管理节点的管理服务:
   zsha2 stop-node
  • 预期结果:进入数据库同步窗口。
  1. 把 VIP 切换到数据库正确的管理节点:
   zsha2 demote
  • 预期结果:后续同步在正确节点上执行。
  1. 执行数据库同步
  2. 查看数据库同步状态:
   zsha2 db-status
  • 预期结果:识别哪个节点数据库正常。
  1. 执行数据库同步:
   zsha2 db-sync -p <数据库密码>
  • 使用实际数据库密码替换 <数据库密码>。
  • 预期结果:双管理数据库重新同步完成。
  1. 再次检查同步状态:
   zsha2 db-status
  • 预期结果:数据库状态恢复一致。
  1. 恢复双管理服务与高可用
  2. 启动双管理服务:
   zsha2 start-node
  • 预期结果:管理服务恢复可用。
  1. 通过 UI 开启全局高可用。
  • 预期结果:平台恢复正常保护策略。

验证方法

  • 检查 zsha2 db-status 显示同步正常。
  • 检查双管理服务恢复正常。
  • 检查通过 VIP:5000 登录后平台资源连接正常。
  • 检查在线业务无异常。

风险与注意事项

  • 风险:数据库同步期间管理服务停止,用户无法通过 UI 管理平台。
  • 风险:如果未先判断数据库正确节点就直接同步,可能扩大异常。
  • 风险等级:低。

回退方法

若数据库同步失败,或同步后出现资源不可连接 / 资源缺失等故障:

  1. 停止双管理节点管理服务:
   zstack-ctl stop
  1. 在 2 个管理节点分别恢复先前备份的数据库:
   zstack-ctl restore_mysql -f /root/beforSyncDB --mysql-root-password <数据库_root_密码>
  1. 启动管理节点:
   zstack-ctl start
  1. 通过 VIP:5000 登录平台检查资源连接情况和业务运行状态。
  • 预期结果:回退到同步前数据库状态。
双管理数据库不同步修复 | 技术方案 · KB | ZStack 资源中心