标签:MySQL主从复制
MySQL 5.7:在线开启和关闭基于GTID的复制
一、前言 MySQL在5.6版本之前复制一直是基于二进制日志的复制,到了MySQL5.6时开始支持基于事务(GTIDs)的复制,并且开始支持多线程复制;但MySQL5.6版本的多线程只能基于多库。这就牵扯到了一个应用场景,就是从基于日志的复制在线变更到基于事务的复制,在MySQL5.6版本时这一动作只能重启主服务器才可以做到。但是到了MySQL 5.7版本时……
MySQL 5.7:无损复制技术
一、复制架构衍生史 在谈这个特性之前,我们先来看看MySQL的复制架构衍生史。 在2000年,MySQL 3.23.15版本引入了Replication。Replication作为一种准实时同步方式,得到广泛应用。这个时候的Replicaton的实现涉及到两个线程,一个在Master,一个在Slave。Slave的I/O和SQL功能是作为一个线程,从Mast……
MySQL设置gtid_purged破坏AUTO_POSITION复制协议
BUG描述 MySQL 5.6.22中有这样一个关于GTID的bugfix,在主备场景下,如果我们在主库上 SET GLOBAL GTID_PURGED = “some_gtid_set”,并且 some_gtid_set 中包含了备库还没复制的事务,这个时候如果备库接上主库的话,预期结果是主库返回错误,IO线程挂掉的,但是实际上,在……
MySQL Reset Master AND Reset Slave
RESET MASTER 删除所有 index file 中记录的所有 binlog 文件,将日志索引文件清空,创建一个新的日志文件,这个命令通常仅仅用于第一次用于搭建主从关系的时的主库。 注意,reset master 不同于 purge binary log 的两处地方。 reset master 将删除日志索引文件中记录的所有 binlog 文件,创……
MySQL启用GTID场景的性能问题及优化
一、背景 MySQL从5.6版本开始支持GTID特性,也就是所谓全局事务ID,在整个复制拓扑结构内,每个事务拥有自己全局唯一标识。GTID包含两个部分,一部分是实例的UUID,另一部分是实例内递增的整数。 GTID的分配包含两种方式,一种是自动分配,另外一种是显式设置session.gtid_next,下面简单介绍下这两种方式: 二、自动分配 如果没有设置s……
MySQL主从复制过滤规则应用
一、MySQL主从复制过滤 库级过滤 在评估复制选项时,从服务器首先检查是否存在可应用的复制选项replicate-do-db或 replicate-ignore-db。当使用binlog-do-db或 binlog-ignore-db过程相似,但它们属于在主库上检查选项。 主库支持的过滤选项 # 仅将指定库的相关修改操作记……
MySQL复制需要注意的问题
总结一下mysql主从复制需要注意的地方。有人说主从复制很简单嘛,就是master,slave的server_id不一样就搞定。确实,简单的来说就是这么简单。但是真正在生产环境我们需要注意的太多了。首先说说主库宕机或者从库宕机后复制中断的问题。虽然很多知识点或许我博客其他文章中都有提到过,或者重复了,但是我还是想总结一下。 一、主库意外宕机 如果没有设置主库……
MySQL主从复制错误修复
一、修复已中断数据复制的方法 在MySQL复制中,如果Slave节点上遇到错误,比如数据不存在或者主键冲突等错误时,想要忽略这些错误(你要明确清楚你忽略的数据造成主从不一致性,且你能够接受这个不一致性所带来的问题)。有一种情况需要注意,如果明确是主键冲突,应先采取主从数据对比,如果数据一致则忽略跳过这些错误,如果数据不一致则要先删除Slave上的数据,然后重……
MySQL复制中从库延迟监控
在MySQL主备环境下,主备同步过程如下,主库更新产生binlog,备库io线程拉取主库binlog生成relay log。备库sql线程执行relay log从而保持和主库同步。 理论上主库有更新时,备库都存在延迟,且延迟时间为备库执行时间+网络传输时间,即t4-t2。但实际情况是,我们一般都是通过Slave上执行SHOW SLAVE STATUS命令得……
MySQL 5.7:并行复制原理(MTS)
众所周知,MySQL 的复制延迟是一直被诟病的问题之一,在 MySQL 5.7 版本已经支持“真正”的并行复制功能,官方称为为 enhanced multi-threaded slave(简称 MTS),因此复制延迟问题已经得到了极大的改进。总之,MySQL 5.7 版本后,复制延迟问题“永不存在”,这里是引号哦。 一、MySQL 5.6 并行复制架构 从 ……
MySQL GTID复制配置篇
一、GTID MySQL 5.6 的新特性之一,加入了全局事务 ID(Global Transaction ID)来强化数据库的主备一致性,故障恢复,以及容错能力。用于取代过去通过 binlog 文件偏移量定位复制位置的传统方式。MySQL 会为每一个 DML/DDL 操作增加一个唯一标记叫做 GTID,这个标记在整个复制环境中都是唯一的。主从环境中主库的 ……
MySQL主从复制配置
一、基于日志点的主从复制 在MySQL 5.5中,复制的方法使用的是基于日志点的复制,什么意思呢?当从服务器要从主服务器复制数据时,需要指定从主服务器的哪个二进制日志文件和二进制日志文件的位置来进行数据的复制操作。由于这种依赖日志点进行数据复制的特性,所有复制是单线程的(如果有多线程复制会出现数据不一致情况)。而主库是多线程写入,所有主从复制延迟就变成了很长……