pja*_*ama 6 mysql mysql-replication replication database-administration
我正在设置一个 MySQL 主数据库,它复制到几个从数据库。
我的问题是监视和/或测试从属数据库是否是最新的最佳实践是什么,并且在出现导致复制停止的错误时会提醒管理员。
我已经搜索了监控工具,但找不到任何合适的工具。
此外,测试从站之间同步的“最佳实践”方法是什么。有没有类似 db 复制的单元测试?
如果我对此事的无知冒犯了任何人,我深表歉意。
我的问题是监控和/或测试从属数据库是最新的最佳实践是什么,
对于简单的测试,在主服务器上插入/更新数据并确保它被复制到从服务器。
但是对于一致性检查,pt-table-checksum是您正在寻找的。
例如:
pt-table-checksum localhost --empty-replicate-table --databases db --nocheck-replication-filters --replicate percona.checksums > /var/log/pt-table-checksum.log 2>&1
这会在出现导致复制停止的错误时提醒管理员。
如果您使用 Nagios,check_mysql_health插件可以帮助监控从站状态(运行与否)。但是要监控一致性,请查看pmp-check-pt-table-checksum插件。
如果您有任何不一致的情况,请不要错过pt-table-sync:
pt-table-sync -v --print --sync-to-master h=localhost,D=db,t=table
pt-table-sync -v --execute --sync-to-master h=localhost,D=db,t=table
Run Code Online (Sandbox Code Playgroud)
请记住,您可能应该--print
首先使用该选项。
复制的最大问题是检查
1、3 和 4 可以在相关节点上使用 SHOW MASTER STATUS / SHOW SLAVE STATUS 来捕获,尽管复制延迟只有 1 秒的精度并且仅跨每一跳。Percona 工具包具有用于获取更准确的复制滞后的脚本。
使用多主复制(例如tungsten、Percona)可以节省很多麻烦,但需要额外的工作/软件来设置。
如果ndo之间的网络出现故障,那么进程可以全部运行良好 - 但将无法传输数据 - 您需要监视每个节点以检查它是否可以联系上游节点。
一个 MySQL 主数据库,复制到几个从数据库
最佳实践是将其中一个从服务器也指定为主服务器 - 双向复制。这样,您可以在发生中断时轻松切换,或者执行重建索引、备份、架构更改等维护任务。
根据从属节点的数量,您可能还需要指定一个扇出节点来传播更改。
在管理升级、安排脚本来收集数据等方面,有很多可用的工具可以做到这一点 - 我使用 nagios,很多其他人也使用。