MySQL-5.6版本GTID的主从复制
mysql GTID Replication
一、GTID的概述:
1、全局事物标识:global transaction identifieds。
2、GTID事物是全局唯一性的,且一个事务对应一个GTID。
3、一个GTID在一个服务器上只执行一次,避免重复执行导致数据混乱或者主从不一致。
4、GTID用来代替classic的复制方法,不在使用binlog+pos开启复制。而是使用master_auto_postion=1的方式自动匹配GTID断点进行复制。
5、MySQL-5.6.5开始支持的,MySQL-5.6.10后开始完善。
6、在传统的slave端,binlog是不用开启的,但是在GTID中,slave端的binlog是必须开启的,目的是记录执行过的GTID(强制)。
二、GTID的组成部分:
前面是server_uuid:后面是一个序列号
例如:server_uuid:sequence number
7800a22c-95ae-11e4-983d-080027de205a:10
UUID:每个mysql实例的唯一ID,由于会传递到slave,所以也可以理解为源ID。
Sequence number:在每台MySQL服务器上都是从1开始自增长的序列,一个数值对应一个事务。
三、GTID比传统复制的优势:
1、更简单的实现failover,不用以前那样在需要找log_file和log_Pos。
2、更简单的搭建主从复制。
3、比传统复制更加安全。
4、GTID是连续没有空洞的,因此主从库出现数据冲突时,可以用添加空事物的方式进行跳过。
四、GTID的工作原理:
要点:
1、slave在接受master的binlog时,会校验master的GTID是否已经执行过(一个服务器只能执行一次)。
2、为了保证主从数据的一致性,多线程只能同时执行一个GTID。
六、使用GTID搭建mysql的主从复制的主要参数:
注意:建议使用mysql-5.6.5以上的最新版本。
(二)、启动GTID的两种方法:
方法一、
1、如果是在已经跑的服务器,你需要重启一下mysql server。
2、启动之前,一定要先关闭master的写入,保证所有slave端都已经和master端数据保持同步。
3、所有slave需要加上skip_slave_start=1的配置参数,避免启动后还是使用老的复制协议。
方法二、
1、如果是新搭建的服务器,直接启动就行了。
七、master-slave搭建的注意事项:
(一)、使用GTID的方式,把salve端挂载master端:
1、启动以后最好不要立即执行事务,而是先change master上。
2、然后在执行事务,当然知不是必须的。
3、使用下面的sql切换slave到新的master。
stop slave;
change master to
master_host = 192.168.100.200,
master_port = 3306,
master_user = abobo,
master_password=123,
master_auto_position = 1;
(二)、如果给已经运行的GTID的master端添加一个新的slave
有两种方法:
方法一、适用于master也是新建不久的情况。
1、如果你的master所有的binlog还在。可以选择类似于上面的方法,安装slave,直接change master to到master端。
2、原理是直接获取master所有的GTID并执行。
3、优点:简单方便。
4、缺点:如果binlog太多,数据完全同步需要时间较长,并且master一开始就启用了GTUD。
方法二、适用于拥有较大数据的情况。(推荐)
1、通过master或者其他slave的备份搭建新的slave。(看第三部分)
2、原理:获取master的数据和这些数据对应的GTID范围,然后通过slave设置@@global.gtid_purged跳过备份包含的gtid。
3、优点:是可以避免第一种方法的不足。
4、缺点:相对来说有点复杂。
(三)、通过备份搭建新的slave:(方法二的扩展)
两种方法:
方法一、mysqldump的方式:
1、在备份的时候指定--master-data=2(来保存binlog的文件号和位置的命令)。
2、使用mysqldump的命令在dump文件里可以看到下面两个信息:
SET @@SESSION.SQL_LOG_BIN=0;
SET @@GLOBAL.GTID_PURGED='7800a22c-95ae-11e4-983d-080027de205a:1-8';
3、将备份还原到slave后,使用change master to命令挂载master端。
注意:在mysql5.6.9以后的命令才支持这个功能。
方法二、percona Xtrabackup
1、Xtrabackup_binlog_info文件中,包含global.gtid_purged='XXXXXX:XXXX'的信息。
2、然后到slave去手工的 SET GLOBAL.GTID_PURGED='XXXXXX:XXXX'。
3、恢复备份,开启change master to 命令。
注意:如果系统运行了很久,无法找到GTID的变好了,可以通过上面的方式进行查找。
八、GTID如何跳过事务冲突:
1、这个功能主要跳过事务,代替原来的set global sql_slave_skip_counter = 1。
2、由于在这个GTID必须是连续的,正常情况同一个服务器产生的GTID是不会存在空缺的。所以不能简单的skip掉一个事务,只能通过注入空事物的方法替换掉一个实际操作事务。
3、注入空事物的方法:
stop slave;
set gtid_next='xxxxxxx:N';
begin;commit;
set gtid_next='AUTOMAIC';
start slave;
4、这里的xxxxx:N 也就是你的slave sql thread报错的GTID,或者说是你想要跳过的GTID。
转载于:https://www.cnblogs.com/abobo/p/4242417.html
MySQL-5.6版本GTID的主从复制相关推荐
- MySQL 5.7 基于 GTID 的主从复制实践
MySQL 5.7 基于 GTID 的主从复制实践 Posted by Mike on 2017-07-03 运维之美 Home About Archives Tags 在 「MySQL 5.7多源复 ...
- MySQL 5.6版本GTID复制异常处理一例
昨天处理了一个MySQL 5.6版本下开启GTID模式复制异常案例,MASTER上的任何操作都无法在SLAVE上应用,SLAVE的RELAY LOG里有记录,但SLAVE的BINLOG却找不到蛛丝马迹 ...
- Mysql的主从复制,基于position的主从复制(二进制日志文件位置的复制)和基于gtid的主从复制
一.MySQL的下载流程 https://dev.mysql.com/downloads/mysql/ 二.实验环境 两台7版本的虚拟机+一台7版本的真机 主机信息 主机的功能 server1(172 ...
- mysql 5.7 gtid 主从_MySQL 5.7基于GTID的主从复制实践
GTID是基于mysql事务实现的,如果对mysql事务没啥概念的话,建议先看看 不在单独说明如何搭建mysql单点 请参考 然后再看这个gtid的 现在有这样一个需求: 主1mysql 是个单点的m ...
- MySQL主从配置和gtid主从配置
文章目录 1.为什么需要主从复制? 2.什么是mysql的主从复制? 3.GTID的工作原理: 4.GTID与传统主从复制的区别是什么 5.mysql主从 5. 1mysql主从配置 5.1.1 确保 ...
- Mysql(五)Mysql架构、数据库优化、主从复制
文章目录 一.Mysql架构 1.1 查询语句的执行过程 1.1.1 连接器 1.1.2 查询缓存 1.1.3 分析器 1.1.4 优化器 1.1.5 执行器 1.1.6 存储引擎 1.1.7 执行引 ...
- mysql自定义gtid_mysql之gtid
MYSQL-GITD: 5.6 gtid-mode=on enforce-gtid-consistency=1 log-slave-updates=1 log-bin= 在5.6版本开启GTID时必须 ...
- mysql slave 能写吗_MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践
Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过.但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高 ...
- mysql读写分离和分布式_MySQL主从复制与读写分离
MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过.但在实际的生产环境中, ...
最新文章
- Javascript与框架prototype,JQyuery调研
- UA MATH571A 多元线性回归V 自相关与非线性模型简介
- boost::container模块实现基本分配的测试程序
- SAP 2019 TechEd Key Note解读:云时代下SAP从业人员如何做二次开发?
- 得到品控手册_得到品控手册 一本令人惊喜的说明书
- 统考计算机和英语百度网盘,《计算机专业英语》在线考试系统
- Linux服务与chkconfig
- seaborn pairplot ax_强者致胜 AX电竞叛客RTX3070显卡发布_
- 错误记录(三)identity和assigned 的区别
- android居中不父布局,在父级中,TextView不会垂直居中_android_开发99编程知识库
- [原][osgearth]osgearthviewer读取earth文件,代码解析(earth文件读取的一帧)
- Linux学习之安装jdk
- 小D课堂 - 新版本微服务springcloud+Docker教程_3-07 Eureka服务注册中心配置控制台问题处理...
- 四菱天线怎么加强_关于自制电视四菱天线材料好坏和买连接线和转接头问题
- BIND 高级特性-- 动态更新域名服务器教程
- python+mitmdump实战(3/3)(附源码)
- 组合数学之第一章之完美覆盖,断层线,幻方,拉丁方,Nim取子游戏
- 第二届天府大地艺术季(春)三道堰青杠树村分会场开幕
- 手机uc打开本地html,(涨知识)关于手机UC浏览器折叠网页内容解决办法
- Strategy模式简述