我有一个包含两个节点的 HA 集群,节点 1 是主节点,节点 2 是镜像。我的 mysql 资源有问题,因为我的节点未同步
drbd 概述
节点主体:
0:home 连接的主/辅助 UpToDate/UpToDate C r-----
1:存储连接的辅助/主 UpToDate/UpToDate C r-----
2:mysql 独立辅助/未知 UpToDate/过时 r-- ---
辅助节点:
0:home 连接的辅助/主 UpToDate/UpToDate C r-----
1:存储连接的主/辅助 UpToDate/UpToDate C r-----
2:mysql StandAlone 主/未知 UpToDate/Outdated r-- ---
查看消息文件我发现以下内容
Apr-19 18:20:36 clsstd2 kernel: block drbd2:self C1480E287A8CAFAB:C7B94724E2658B94:5CAE57DEB3EDC4EE:F5887A918B55FB1A bits:114390101 flags:0
Apr-19 18:20:36 clsstd2 kernel: block drbd2:peer 719D326BDE8272E2:0000000000000000:C7BA4724E2658B94:C7B94724E2658B95 bits:0 flags:1
Apr-19 18:20:36 clsstd2 kernel: block drbd2:uuid_compare()=-1000 by rule 100
Apr-19 18:20:37 clsstd2 kernel: block drbd2:Unrelated data, aborting!
Apr-19 18:20:37 clsstd2 kernel: block drbd2:conn (WFReportParams -> Disconnecting)
Apr-19 18:20:37 clsstd2 kernel: block drbd2:error receiving ReportState, l: 4!
Apr-19 18:20:38 clsstd2 kernel: block drbd2:asender terminated
Apr-19 18:20:38 clsstd2 kernel: block drbd2:Terminating asender thread
Apr-19 18:20:38 clsstd2 kernel: block drbd2:Connection closed
Apr-19 18:20:38 clsstd2 kernel: block drbd2:conn (Disconnecting -> StandAlone)
Apr-19 18:20:39 clsstd2 kernel: block drbd2:reciver terminated
Apr-19 18:20:39 clsstd2 kernel: block drbd2:Terminating reciver thread
Apr-19 18:20:39 clsstd2 auditd[3960]: Audit daemon rotating log files
Run Code Online (Sandbox Code Playgroud)
我不明白问题是什么以及如何解决它,因为检查了两个节点我意识到在 var/lib/mysql 目录中我在节点 2 中没有 ibdata1 文件,但它确实存在于节点 1 中
问题是您遇到了“著名的”DRBD 脑裂状况,并且两个 DRBD 节点都进入 \xe2\x80\x9cStandAlone\xe2\x80\x9d 状态。很难说你的主节点上是否有有效的或损坏的数据库,但现在你有两种途径可供选择:
\n这是您在第二个节点上运行的内容:
\n#drbdadm secondary resource \n#drbdadm disconnect resource\n#drbdadm -- --discard-my-data connect resource\nRun Code Online (Sandbox Code Playgroud)\n这是您在活动节点上运行的内容,您认为该节点拥有最新版本的数据:
\n#drbdadm connect resource\nRun Code Online (Sandbox Code Playgroud)\n如果它不会\xe2\x80\x99 没有帮助,你可以丢弃第二个节点并模仿自动重建,执行以下命令:
\n#drbdadm invalidate resource\nRun Code Online (Sandbox Code Playgroud)\n希望这有帮助!
\nPS 我真的建议在生产中避免使用 DRBD。不幸的是,你所看到的是很常见的事情。
\n谢谢,确实,解决方案是再次创建元数据,在我想要重新创建元数据的节点上运行以下命令,现在所有内容都再次同步。
\ndrbdadm down resource \ndrbdadm wipe-md resource \ndrbdadm create-md resource \ndrbdadm up resource \ndrbdadm disconnect resource \ndrbdadm connect resource\nRun Code Online (Sandbox Code Playgroud)\n最后一个命令首先在重新创建元数据的节点上执行,然后在另一个节点上执行。
\n最后,执行#cat/proc/drbd 并执行 sincronizaci\xc3\xb3n 的安全。
\n| 归档时间: |
|
| 查看次数: |
485 次 |
| 最近记录: |