Mysql基于GTIDs的复制
通过GTIDs【global transaction identifiers】,可以标识每一个事务,并且可以在其一旦提交追踪并应用于任何一个Slave上;这样 就不需要像BinaryLog复制依赖Log file 和位置。GTIDs完全基于事务,只要在Master提交的所有事务都在Slave上进行了Commit,那么就能保证Master和Slave之间的数据 一致性。你可以使用基于SBR或RBR的GTIDs来实现。推荐使用RBR【Row-based replication】.
1 GTID介绍
GTID的惟一性,不仅仅在Master上惟一,而是在整个集群中惟一。
GTID是由SourceId:transaction_Id 构成;SourceId用于标识源Server,即Master中的server_uuid[系统变量];transaction_id,是按照事务提交顺序而生成的序列数字。如第一个被提交的是1,则其GTID=XXXXXXXXXXXX:1.
GTID被存储于mysql.gtid_executed中,当gtid_mode=ON/ON_PERMISSIVE时。
GTID的生命周期
a.事务在Master上执行并提交
该事务用GTID标识,GTID由Master的UUID和一个非0的未被使用的事务序列号构成;该GTID被写入Master的BinLog中。
b.之后BinLog被传送到Slave上并存储在Slave的relay Log中【using established mechanisms for this process】.Slave读取到这个GTID,并为系统变量gtid_next赋值,这就告诉了Slave下一个要执行的事务【transaction】就是这个。
c.Slave确认该GTID是否已被使用【在其BinLog中】。若未用,则执行transaction并写入BinLog。需要注意的是:不仅仅是检查BinLog而且要确认没有其他session 已读取但未提交。换句话说,多个Clients不允许并行执行同一事务。
d.由于gtid_next不为空。Slave执行并写入BinLog。
2.构建GTID复制
a. 同步数据。即将Master与Slave的数据同步到一致,然后都开启SET @@global.read_only=ON;
b.停止Servers。可使用:mysqladmin -uroot -p shutdown
c.配置主从Server.确保双方都开启gtid_mode=ON,enforce_gtid_consistency=ON。
d.将Slave挂载到Master,告诉Slave将使用哪个Master作为复制的数据源。使用CHANGE MASTER TO语句,一定要启用MASTER_AUTO_POSITION=1,告诉Slave事务将由GTIDS标识。

e.启动Slave. START SLAVE.
f.关闭 read_only. SET @@global.read_only = OFF.
3.使用GTIDs限制
GTIDs是基于事务的【transactions】,所以对非事务的操作不会支持。
CREATE TABLE ... SELECT statements .creat table ...select对基于语句的复制【SBR】是不安全的。
Temporary tables 。GTIDsg不支持CREATE TEMPORARY TABLE AND DROP TEMPORARY TABLE .
【Preventing execution of unsupported statements】阻止不支持语句的执行。为了防止GTID受到不支持语句的影响而失败,在参与复制的Server上都要使用enforce-gtid-consistency操作。
sql_slave_skip_counter用于跳过不支持的事务【这在GTIDs不支持】。
在gtid_mode=ON时不要进行mysql_upgrade,因为Mysql_update会用MyiSam引擎改变一些系统表。
也不要在gtid_mode=ON时进行mysqldump文件的导入。
也可参考这篇文章:
http://www.cnblogs.com/abobo/p/4242417.html
Mysql基于GTIDs的复制的更多相关文章
- MySQL基于GTIDs的MySQL Replication
MySQL M-S GTID 基于GTIDs的MySQL Replication 什么是GTIDs以及有什么特定? 1.GTIDs(Global transaction identifiers)全局事 ...
- MYSQL 基于GTID的复制
1.概述 从MYSQL5.6 开始,mysql开始支持GTID复制. 基于日志点复制的缺点: 从那个二进制日志的偏移量进行增量同步,如果指定错误会造成遗漏或者重复,导致数据不一致. 基于GTID复制: ...
- mysql基于GTIDS复制
GTIDS的环境:一台master 192.168.200.111多个slave: 192.168.200.112 192.168.200.113 修改master服务器:[root@localhos ...
- Mysql 基于BinaryLog的复制
.Mysql Master将更新[Update]和变化[Change]作为事件[events]写入Binary log.Mysql slaves 被配置为读取Binary log from maste ...
- Mysql基于GTID复制模式-运维小结 (完整篇)
先来看mysql5.6主从同步操作时遇到的一个报错:mysql> change master to master_host='192.168.10.59',master_user='repli' ...
- 详解MySQL主从复制实战 - 基于GTID的复制
基于GTID的复制 简介 基于GTID的复制是MySQL 5.6后新增的复制方式. GTID (global transaction identifier) 即全局事务ID, 保证了在每个在主库上提交 ...
- [MySQL Reference Manual] 18 复制
18 复制 18 复制 18.1 复制配置 18.1.1 基于Binary Log的数据库复制配置 18.1.2 配置基于Binary log的复制 18.1.2.1 设置复制master的配置 18 ...
- Mysql主从同步(复制)
目录: mysql主从同步定义 主从同步机制 配置主从同步 配置主服务器 配置从服务器 使用主从同步来备份 使用mysqldump来备份 备份原始文件 ...
- Mysql基于GTID主从复制
Mysql5.6基于GTID全局事务的复制 什么是GTID? GTID(Global Transaction Identifiers)是全局事务标识 当使用GTIDS时,在主上提交的每一个事务都会 ...
随机推荐
- Java之异常处理机制
来源:深入理解java异常处理机制 2.Java异常 异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 ...
- linux 学习之路
很多同学接触Linux不多,对Linux平台的开发更是一无所知. 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员, 掌握Linux是一种很重要的谋生资源与手段. 下来我将 ...
- BZOJ1012——[JSOI2008]最大数maxnumber
1.题目大意:求末尾L个数的最大值,强制在线 2.分析:这个拿线段树可以直接水过,然后我写了一个 维护单调栈, 二分求最大值的短代码,手懒.... #include <cstdio> #i ...
- Android--多线程之Handler
前言 Android的消息传递机制是另外一种形式的“事件处理”,这种机制主要是为了解决Android应用中多线程的问题,在Android中不允许Activity新启动的线程访问该Activity里的U ...
- 如何预览github中的html页面
在github里面的文件路径是https://github.com/gavin125/Sass-test/blob/master/html/index.html 那么我们需要在这个地址前面加上http ...
- Kali Linux渗透基础知识整理(一):信息搜集
写在前面的废话:最近要给一些新人做培训,整理些东西,算不上什么太高端的内容,只是简单的整理下了,我觉得对于小白的话也还算是干货.在乌云水了几年,算不上什么大神水平,最近生活费紧张,现在打算在FreeB ...
- 5 HandlerIterator处理程序迭代器类——Live555源码阅读(一)基本组件类
这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 my.oschina.net/oloroso Handler ...
- Python PEP8规范
转载自:http://blog.csdn.net/kellyseeme/article/details/50644893 风格指南:http://zh-google-styleguide.readth ...
- COGS 2416.[HZOI 2016]公路修建 & COGS 2419.[HZOI 2016]公路修建2 题解
大意: [HZOI 2016]公路修建 给定一个有n个点和m-1组边的无向连通图,其中每组边都包含一条一级边和一条二级边(连接的顶点相同),同一组边中的一级边权值一定大于等于二级边,另外给出一个数k( ...
- linux下git安装
Download for Linux and Unix It is easiest to install Git on Linux using the preferred package manage ...