mysql5.6,基于GTID的主从同步与延迟复制

GTID相关:

在mysql5.6之前,mysql主从复制是slave通过配置master的binlog位置实现的,且每一个slave自身的binlog却不同。而在mysql5.6版本后引入了GTID(全局事务标识符),这个值在master生成,slave只要在开启主从复制时指定master的用户,密码,就可获取master的GTID实现同步,而无需再每次去查看master的binlog位置,大大方便了主从同步的配置。GTID的唯一性强化了数据的主备一致性,故障恢复,以及容错能力。

延迟复制相关:

在之前的博客中介绍过mysql的延迟复制,当时是基于第三方工具percona-toolkit实现的。在mysql5.6版本后,mysql自带了延迟复制的功能,且配置十分简单。

实验环境:

主库:192.168.52.128:3306

从库:192.168.52.135:3306

配置GTID复制:

1:安装mysql(不赘述)

2:开启GTID模式,主从库都要:

在my.cnf配置文件中加入binlog以及gtid相关配置,并重启mysql。

主:

[mysqld]
binlog-format=ROW
log-bin=master-bin-log
log-slave-updates=true
gtid-mode=on                ----开启gtid
enforce-gtid-consistency=true       ---强制GTID一致性
master-info-repository=TABLE
relay-log-info-repository=TABLE
sync-master-info=1
slave-parallel-workers=2          ---设定从服务器的SQL线程数
binlog-checksum=CRC32
master-verify-checksum=1
slave-sql-verify-checksum=1
binlog-rows-query-log_events=1
server-id=1

从:

[mysqld]
server-id = 2
log-bin=mysql-bin
binlog_format=row
log-slave-updates=true         
gtid-mode=on   
enforce-gtid-consistency=true
master-info-repository=TABLE
relay-log-info-repository=TABLE
sync-master-info=1
slave-parallel-workers=4
binlog-checksum=CRC32
master-verify-checksum=1
slave-sql-verify-checksum=1
binlog-rows-query-log_events=1

重启mysql:

service mysqld restart

查看主库及丛库的gtid是否开启:

这时主库上会分配一个gtid号:

3:在主库上创建复制所需的账户:

mysql>grant replication slave on *.* to [email protected]% identified by ‘123456‘;
mysql>flush privileges;

4:从库上配置同步。

mysql>change master to master_host=‘192.168.52.128‘,master_user=‘repl‘,master_password=‘123456‘,master_auto_position=1; 
mysql>slave start;

可以看到这里不用去主库查找binlog与相关的位置信息,直接使用master_auto_position=1,mysql会自动查找同步的位置

5:查看效果:

可以看到同步已经正常进行中,同步位置为7。

进行一些操作,验证同步效果:

主:创建一个实例,并新建一张表,插入一些数据

从:

同步正常,使用show slave stautus\G查看同步状态,可以看到同步位置执行到了10;

复制延迟配置:

mysql>stop slave;
mysql>CHANGE MASTER TO MASTER_DELAY = 100;         -------单位为秒
mysql>start slave;
mysql>show slave status \G;

SQL_Delay:字段变为100,表示此时从库与主库的同步开始有了100秒的固定延迟。

SQL_Remaining_Delay:当主库有了新的操作,该字段会进入倒计时,从配置的延迟时间(这里为100)开始。正常情况下为NULL。

时间: 2024-10-24 23:00:06

mysql5.6,基于GTID的主从同步与延迟复制的相关文章

Mysql基于GTID搭建主从同步

一.GTID的概念 1.全局事务标识:global transaction identifiers.2.GTID是一个事务一一对应,并且全局唯一ID.3.一个GTID在一个服务器上只执行一次,避免重复执行导致数据混乱或者主从不一致.4.GTID用来代替传统复制方法,不再使用MASTER_LOG_FILE+MASTER_LOG_POS开启复制.而是使用MASTER_AUTO_POSTION=1的方式开始复制.5.MySQL-5.6.5开始支持的,MySQL-5.6.10后开始完善.6.在传统的sl

Mysql5.7基于GTID的半同步复制

一.GTID是什么 GTID是事务的ID,唯一识别号,全局唯一.随事务记录到Binary Log中,用来标识事务.每个事务有一个Gtid_log_event.GTID的构成:UUID + Sequence Number Sequence Number是MySQL服务器内部的一个事务顺序号.一个MySQL服务器上的事务不会有重复的顺序号(保证服务器内唯一).每个MySQL服务器有一个全局唯一的UUID. GTID的目的简化复制的使用过程和降低复制集群维护的难度,不再依赖Master的binlog文

MySQL5.6基于GTID同步复制,与如何实现MySQL负载均衡、读写分离。

MySQL想必大家都不陌生,之前文章也有介绍同步复制与半同步复制,今天先来了解下什么是GTID. GTID(global transaction ID)全局事务ID,是由服务器的UUID+一段随机数事务ID. 特性:从服务器从主服务器复制过来的事务,GTID不变,也就是说一个事务在全局复制架构中的ID不变. 有什么用: 在MySQL集群中,当Master故障时,需要从Slave中挑选一个提升为Master可以基于GTID对比其他Slave来保证数据的一致性. MySQL主从同步如何配置数据过滤

maxscale配合MHA搭建读写分离的高可用架构(基于GTID replication主从架构,mysql5.6)

基于GTID的主从replication并配合MHA搭建高可用架构,请参考之前的博客:http://linzhijian.blog.51cto.com/1047212/1906434.这里只叙述如何在此基础上增加maxscale中间件,实现读写分离的功能. MaxScale是maridb开发的一个MySQL数据中间件,其配置简单,能够实现读写分离,并且可以根据主从状态实现写库的自动切换.官方文档:https://mariadb.com/kb/en/mariadb-enterprise/about

MySQL主从复制——MySQL-5.6基于GTID及多线程的复制

一.Mysql 5.6 新特性 .... 复制功能的改进 ⒈支持多线程复制,(slave-parallel-workers=0     0: 表示禁用多线程功能:)事实上是针对每个database开启相应的独立线程.即每个库有一个单独的(sql thread),如果线上业务中,只有一个database或者绝大多数压力集中在个别database的话,多线程并发复制特性就没有意义了. ⒉支持启用GTID,对运维人员来说应该是一件令人高兴的事情,在配置主从复制,传统的方式里,你需要找到binlog和P

mysql5.6基于GTID的主从复制

mysql5.6gtid模式的主从复制: 1.配置master的my.cnf文件:    ##################master    [mysqld]    basedir = /usr/local/mysql    datadir = /home/data/mysqldb    socket = /home/data/mysqldb/mysql.sock    port = 3306    server_id = 1    user=mysql        binlog-form

MySQL主从复制--MySQL5.6基于GTID及多线程复制

大纲 一.系统环境 二.MySQL初始化安装过程 三.基于GTID的主从模式配置过程 一.系统环境 系统环境 CentOS5.8 x86_64 master.network.com    master    172.16.1.101 slave.network.com     slave     172.16.1.105 软件包 mysql-5.6.26-linux-glibc2.5-x86_64.tar.gz(二进制通用安装包) 拓扑图 二.MySQL初始化安装过程 1.时间同步 [[emai

mysql5.6基于GTID模式之高可用架构搭建-MHA(mha0.56)

一.测试环境部署: mysql1:192.168.110.131   作为master mysql2:192.168.110.132   作为slave mysql3:192.168.110.130   作为slave,同时作为MHA的管理机 虚拟IP:192.168.110.100 二.mysql主从环境搭建和MHA安装 1.mysql主从搭建自行搭建(基于GTID复制,打开log_bin,复制规则默认,复制所有库表),这里不再说明. 2.安装MHA节点软件:rpm -ivh mha4mysq

Mysql主从复制、二进制日志、基于GTID的主从复制、双主复制

 一.主从复制的工作原理   Mysql在Master与slave之间实现整个复制的过程由3个线程来完成的,   其中两个线程(SQL线程和IO线程)在 Slave端,   另外一个线程(IO)在Master端   要实现Mysql的复制必须首先打开Master端的binary log(也就是二进制日志)否则无法实现. Mysql复制基本过程如下:   (1)Slave上面的IO 线程链接上Master,并且请求指定日志文件的位置(或者 从开始的日志之后的日志内容)   (2)Master接收到