mysql - MariaDB集群,如何确保节点同步并具有相同的结构和数据
问题描述
我有一个在三个节点上运行的 mariadb 集群。上周我注意到节点之间的某些表结构并不相同,例如,一个表有一个列允许 node2 上的 NULL 值,而 node1 上的同一个表不是 NULL。
我检查了集群运行状况(http://galeracluster.com/documentation-webpages/monitoringthecluster.html),一切似乎都正常。
我的集群配置为使用“总订单隔离”,所以我的理解是 DDL 更改应该复制到原始事务中的所有节点上。
所有写入和 DDL 请求都使用 HAProxy 发送到同一个节点 (node1)。
我的问题是:如果发生这种情况,我们如何监控?是否有可用的工具/mariadb 变量告诉我们某些内容不再同步?
到目前为止,我的解决方案是在似乎是有效节点的 node1 上备份数据库,删除所有表并应用节点 1 的备份。这会在所有节点上复制数据库。
解决方案
这是一个很好的 tut: http: //galeracluster.com/documentation-webpages/monitoringthecluster.html
看起来并非所有节点都在集群中。您是否使用 MaxScale 连接到活动节点?
推荐阅读
- typescript - NestJs Swagger 混合类型
- python - 通过xpath中的元素列表迭代和过滤?
- php - 续订日期计算
- laravel - Laravel 8 中的自定义电子邮件验证
- f# - F# - 联合案例名称中的句点
- python - 如何遍历两个不同长度的字典?
- excel - 在VBA中,取消选中复选框后如何让组合框删除项目?
- typescript - Typescript Generic 基于子类类型
- javascript - 如何在不自动更改 React Native 中 tabBarIcon 和 tabBarLabel 的位置的情况下增加反应导航 tabBar 的标签栏高度?
- node.js - 使用 ReactJS 前端和 NodeJS 后端实现 webhook