这篇文章主要向大家介绍mysql主从数据一致性校验及纠错工具,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。
一、概述
假如你是一位运维人员,假如你生产环境上部署了mysql系统,再假如你线上的mysql是基于主从复制的架构,那恭喜你,它将可能会带给你主从数据不一致的"恶运"。
因为mysql复制架构原生特性,主从服务器上的数据不可能作”同步“复制,因此延时是必然会有的,即便是不那么繁忙的服务器上,在业务不繁忙的时间里,从库能追上主库的进度,也可能会由于从服务器崩溃、非法关机、程序bug等因素致使在主库上写入的数据与从库上写入的数据不一致的问题。而当这种状况发生时,mysql内部是没有相应的机制来检测主从数据一致性的,对用户而言,你是不知道主从数据已经不一致了。
因此须要一种工具来解决这样的问题,而percona-toolkit工具集中的pt-table-checksum工具就是能在几乎不影响mysql性能的前提下高效的,能检测主从数据不一致的工具。当数据不一致真正产生后,percona-tools工具集中也提供了pt-table-sync工具来修复不一致的数据,这样可免去从新部署从服务器的麻烦。
然而在真正的生产环境上,这两个工具仍是有必定的局限性,准确的说应该是mysql这种异步复制的架构致使了工具在使用上的局限性,由于从库会慢于主库,因此在校验主库上的表与校验从库上的表时每每数据是不一致的,这个不致是因为从库的延迟而致使的,因此这两个工具最好运用在如下场景: