所使用的工具是pt-table-checksum 原理是: 在主上执行检查语句去检查 mysql主从复制的一致性,生成 replace 语句,然后通过复制传递到从库,再通过update 更新 master_src 的值.最后通过检测从上 this_src 和master_src 的值从而判断复制是否一致. 这个过程中,需要在主库上指定用户,因为主库使用此账户不仅登陆自己的MySQL,还使用它来登陆从库的节点.所以为了减少不必要的麻烦,干脆我们在主库和从库上都创建一个统一用户(用户名和密码和权限都…
mysql主从数据一致性校验,常用的方法是Percona-Toolkit的组件pt-table-checksum,这东西怎么用网上一大堆,就不啰嗦了.主要说一下通过dsns方式发现从库的一种方式. pt工具连接到主库后,默认是是通过show processlist,通过主从复制线程获取从库的信息,进而连接从库的.默认方式连接从库是有他的局限性的,以下场景没法使用: 场景: 1.非标准端口3306,或主从端口不一致: 2.多源复制搭建的主从: 3.阿里云.腾讯云上的主从关系,无法直接获取从库的信息…
pt-table-checksum是一个基于MySQL数据库主从架构在线数据一致性校验工具.其工作原理在主库上运行, 通过对同步的表在主从段执行checksum, 从而判断数据是否一致.在校验完毕时,该工具将列出与主库存在差异的对象结果. 一.主从不一致的情形 Master端使用了不确定的语句(如:CURRENT_USER(), UUID()) 不正确的故障转移(failover)流程 误操作或直接在Slave进行DML操作 持续的升级更新(Rolling upgrades) 混合使用事务引擎和…
MySQL主从数据一致性问题修复 前面,我们使用pt-table-checksum 可以检测出主从数据是否一致的问题.发现问题后,我们怎么解决这些问题,也是我们必须要会的技能. 修复主从数据一致性问题,我们使用pt-table-sync工具,和pt-table-checksum一样,都需要提前安装percona-tools工具包.怎么安装,我这里就不说了,请看我之前的文章. 下面我们来演示一下主从数据一致性问题修复 1.环境介绍 IP 端口 角色 192.168.199.230 3306 Mas…
一.问题描述 主从复制错误一直是MySQL DBA一直填不完的坑,如鲠在喉,也有人说mysql主从复制不稳定云云,其实MySQL复制比我们想象中要坚强得多,而绝大部分DBA却认为只要跳过错误继续复制就好啦,接下来不发生错误就好了,其实跳过错误就会有数据不一致的风险,数据不一致可能还会越来越严重,而我就复制错误中反复出现的1045.1032和1062错误引起的数据库主从不一致的的现象进行深入分析及给出一套完善的解决方案. (1) [ERROR]1452:无法在外键的表插入参考主键没有的数据 (2)…
前言 一.主从复制过程 MySQL的主从复制能力是通过三个线程来实现的,两个在Slave端的I/O和SQL两个线程,还有一个在Master端I/O线程: Binlog dump thread:Master端创建该线程来响应Slave端I/O线程的请求,向Slave端发送二进制内容.Binlog dump线程读取主服务器二进制内容前会对其加锁,读取结束后无论内容是否被发送到Slave端,锁都会被即刻释放.在一主多从架构中,Master端会为每个连接的I/O线程创建一个Binlog dump线程.…
mysql主从复制架构,是mysql数据库主要特色之一,绝大多数公司都有用到. 而GTID模式是基于事务的复制模式的意思,发展到现在也是越来越多人用. 以前很多文章,介绍搭建mysql主从复制架构,是需要停止应用服务来做的,对于生产环境,怎么可能让你随便停服务?所以必须做到在线做,不影响业务,那才是最实际的. 先说明,案例分两种方案,实现的意义是一样的,一种是mysqldump方式,一种是xtrabackup方式,视乎实际情况,因为有些业务不一定能用xtrabackup,例如阿里云RDS,腾讯C…
导读 MySQL主从复制环境中,如何才能保证主从数据的一致性呢? 关于主从复制 现在常用的MySQL高可用方案,十有八九是基于 MySQL的主从复制(replication)来设计的,包括常规的一主一从.双主模式,或者半同步复制(semi-sync replication). 我们常常把MySQL replication说成是MySQL同步(sync),但事实上这个过程是异步(async)的.大概过程是这样的: 在master上提交事务后,并且写入binlog,返回事务成功标记: 将binlog…
一.MYSQL(mariadb) MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可. 开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险. MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品. Red Hat Enterprise Linux/CentOS 7.0 发行版已将默认的数据库从 MySQL 切换到 MariaDB. 1.安装方…
结构如下: MYSQL主从复制方式有默认的复制方式异步复制,5.5版本之后半同步复制,5.6版本之后新增GTID复制,包括5.7版本的多源复制. MYSQL版本:5.7.20 操作系统版本:linux 6.7 64bit 1.异步复制 MYSQL 默认的复制方式,就是主库写入binlog日志后即可成功返回客户端,无须等待binlog日志传递给从库的过程.但这样一旦主库发生宕机,就有可能出现数据丢失的情况. 1.1搭建异步主从 1. server-id 不一样 2. 开启binlog,建议开启lo…