mysql5.6 优点_MySQL5.6复制:GTID的优点和限制(第一部分)_MySQL

bitsCN.com

全局事务标示符(Global Transactions Identifier)是MySQL 5.6复制的一个新特性。它为维护特定的复制拓扑结构下服务器的DBA们大幅度改善他们的工作状况提供了多种可能性。然而,你还应该明白当前实现的一些局限。本博文是专门对在生产环境中启用GTID到底意味着什么进行讨论的一系列文章的第一部分。

这个手册非常到位地描述了如何才能切换到基于GTID的复制,我就不再鏊叙。

其基本步骤如下所示:让主机成为只读模式,这样就可以让从机执行所有的时间从而同主机保持为同步状态。

修改所有服务器的配置并对它们进行重启

使用CHANGE MASTER TO,让所有的服务器使用GTID

关闭主机的只读模式

这个步骤会把你所有的服务器从普通复制切换到GTID复制。但是,如果你运行的是生产系统,你可能会想一点一点启用GTID,这样一旦除了什么问题,也更容易进行回滚了。相关文档中有些条目写得不是很清楚。

比如:我们真地需要同时重启所有的服务器吗? 停机时间可是我们千方百计要避免的事情!

有必要让主机变成只读模式吗?

我们能不能在有些从机中使用普通复制的同时,在另外的一些从机上使用GTID复制?

为了找到这些问题的答案,先让我们创建一个比较简单的复制配置,其中有一个主机和两个从机,所有服务器运行的都是MySQL 5.6,都未启用GTID。

首试:仅将其中的一个服务器配置为启用GTID

让我们先停止2号从机的服务,修改配置后重启:1mysql> show slave status/G2[...]3Slave_IO_Running: No4Slave_SQL_Running: Yes5 [...]错误日志说明了为什么IO线程没有启动起来:12013-05-17 13:21:26 3130 [ERROR] Slave I/O: The slave IO thread stops because the master has GTID_MODE OFF and this server has GTID_MODE ON, Error_code: 1593

看来,很不幸的是,如果想要复制正常运行,gtid_mode必须在所有的服务器上都是ON或者都是OFF才行, 半半拉拉的绝对不行。

要是我们对主机进行重新配置会怎样?这次,1号从机的复制会停止运行:12013-05-17 13:32:08 2563 [ERROR] Slave I/O: The slave IO thread stops because the master has GTID_MODE ON and this server has GTID_MODE OFF, Error_code: 1593

这两个简单的试验回答了头两个问题:只有在所有的服务器中的gtid_mode具有相同的值时,复制才能正常运行,因此,你应该对它们同时进行重启,而且最好是在将主机成为只读模式后进行。然而,“同时”的意思是“在同一个binlog位置上”,所以你完全可以一个接一个对服务器进行重启。

再试:启用GTID,混合使用普通复制和GTID复制

这次我们在1号从机而不是2号从机上启用GTID:1# slave #12mysql> change master to master_auto_position = 1;3mysql> start slave;接下来让我们在主机上创建一个新表:

1mysql> create table test.t (id int not null auto_increment primary key);

在两个从机上都运行SHOW TABLES FROM test表明,所有的服务器都创建了这个新表。因此,一旦在所有的服务器上启用GTID,你就可以让某些从机使用基于文件的定位而让另外一些从机使用基于GTID的定位。

这就回答了第二个问题:我们可以让不同的服务器具有不同的复制模式,但所有的服务器必须将将gtid_mode设置为ON。在gtid_mode为ON的情况下还运行基于文件的复制,这能有什么意思?我还没有发现这有什么用处,所以在实践中,你可能会要么只用基于文件的复制在(所有服务器都设置为gtid_mode=off),要么只用基于GTID的复制(所有服务器都设置为gtid_mode=on)。

还有一个问题:如何通过查看SHOW SLAVE STATUS的输出才能看出来一个从机是不是基于GTID的复制?这可以通过查看最后一个字段,Auto_Position,的值进行区分:1# Slave #12mysql> show slave status/G3[...]4Auto_Position: 1 -> GTID-based positioning5# Slave #26mysql> show slave status/G7[...]8Auto_Position: 0 -> File-based positioning

结束语

如果你的应用轻易不能容忍停机时间或者只读模式,那么基于GTID的复制启用起来就会非常棘手,特别在需要重新配置大量服务器的情况下,便更是如此了。要是能将gtid_mode为ON的服务器同gtid_mode为OFF的服务器混合使用就好了,因为这样的话,就就能够简化转向基于GTID的复制的所需的过程,如果出了错还更容易进行回滚。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/355694.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python找不到csv文件_Python如何读取csv文件

逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列&…

jsf 自定义属性_必填字段的自定义JSF验证器

jsf 自定义属性实现EditableValueHolder接口的JSF组件具有两个属性“ required”和“ requiredMessage” –一个标志,指示用户需要输入/选择非空值,以及一个用于验证消息的文本。 我们可以使用它,但是它不够灵活,我们不能直接在视…

Python那些事

Python这几年很火,在这里我用问答的方式来总结一下使用python的一些常见问题,对自己是个总结,也希望对有同样问题的朋友有帮助。Q:Python为什么流行?A:Python是一个比较方便的跨平台脚本语言。对于像我这种…

python cv2模块imshow_Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite()

一、需要工具本机使用python 2.7.10下调试代码均通过,一下学习需要有一定的代码阅读能力,一下学习只介绍函数方法:Python 作为一种高效简洁的直译式语言非常适合我们用来解决日常工作的问题。而且它简单易学,初学者几个小时就可以…

python程序设计课程设计_《Python程序设计》教学大纲.doc

PAGE 理论课程教学大纲 《Python程序设计》教学大纲 课程编号: 总 学 时:64(其中,讲课:32;实验:32) 学 分:3 实践教学:0周 修读专业:地理信息系统…

2016年将是Java终于拥有窗口函数的那一年!

你没听错。 到目前为止,出色的窗口功能是SQL独有的功能。 即使是复杂的函数式编程语言似乎也缺少这种漂亮的功能(如果我记错了,请纠正我,Haskell伙计们)。 我们撰写了许多有关窗口函数的博客文章,并在诸如…

LINQ to Entities 不识别方法“System.String ToString() 的解决方法

今天在做一个页面的时候出现了LINQ to Entities 不识别方法“System.String ToString()”的错误&#xff0c;对于源码IQueryable<SelectListItem> items roleInfoServer.Get(r > true).Select(r > new SelectListItem() { Value r.Id.ToString(), Text r.RoleNa…

android 仿京东地址选择_Android 开发:仿美团地址选择

最近做了这个功能&#xff0c;分享一下&#xff0c;用的是百度地图api&#xff0c;和美团外卖的地址选择界面差不多&#xff0c;也就是可以搜索或者滑动地图展示地址列表给用户选择&#xff0c;看下效果图先。文章重点展示地图并定位到“我”的位置 滑动地图获取周边poi(逆地理…

简单回顾在杭州7年

回顾2010年回到浙江杭州&#xff0c;从一开始做.net到后来转到As3网页游戏开发&#xff0c;后又搞起android&#xff0c;那时候就立志想做一款有关于bible的游戏&#xff0c;2010年进入一家创业公司&#xff0c;叫追梦&#xff0c;是追求梦想的开始&#xff0c;在那接触火山和A…

ps还原上一步快捷键_ps还原上一步快捷键_photoshop恢复上一步操作的快捷键是什么...

满意答案simonsinxer推荐于 2017.09.01采纳率&#xff1a;53% 等级&#xff1a;11已帮助&#xff1a;63469人还原/重做前一步操作 【Ctrl】【Z】其他一些快捷键&#xff1a;还原两步以上操作 【Ctrl】【Alt】【Z】重做两步以上操作 【Ctrl】【Shift】【Z】剪切选取的图像或路…

python中排序从小到大_从Python看排序:冒泡排序

冒泡排序在排序算法中是最简单的一种&#xff0c;它通过多次遍历列表&#xff0c;将最大的元素冒泡到列表的头部或尾部。我们通过对四张扑克牌&#xff08;花色相同&#xff09;以从小到大的方式进行排序来演示该算法的工作原理。首先将扑克牌面朝上放在桌上&#xff0c;如下图…

Shell else if mysql_Shell if else语句(详解版)

和其它编程语言类似&#xff0c;Shell 也支持选择结构&#xff0c;并且有两种形式&#xff0c;分别是 if else 语句和 case in 语句。本节我们先介绍 if else 语句&#xff0c;case in 语句将会在《Shell case in》中介绍。如果你已经熟悉了C语言、Java、JavaScript 等其它编程…

【Java并发编程】:使用synchronized获取互斥锁

在并发编程中&#xff0c;多线程同时并发访问的资源叫做临界资源&#xff0c;当多个线程同时访问对象并要求操作相同资源时&#xff0c;分割了原子操作就有可能出现数据的不一致或数据不完整的情况&#xff0c;为避免这种情况的发生&#xff0c;我们会采取同步机制&#xff0c;…

WildFly Swarm –将Java EE应用程序部署为独立的Jar

WildFly Swarm为将Java EE应用程序部署为独立的Jar文件提供了一种简单的解决方案。 这使得部署应用程序特别是REST或Web服务非常容易。 Swarm在这方面与Spring Boot非常相似&#xff0c;因为它可以快速开发Web&#xff08;.War&#xff09;应用程序&#xff0c;然后将其部署为独…

c语言三个数从小到大排序/输出_我的c语言笔记(三)

int表达式这个表达式存在的目的在于将表达式转为整数。比如&#xff1a;float a9999.9999&#xff1b;int b;b(int)(a/1000);就可以得到9啦&#xff0c;别忘了套上固定格式哦&#xff5e;然后我们接下来一起来做一道很重要的题哦&#xff0c;反复练习&#xff0c;可以顺利拿下同…

java虚拟_Java虚拟机(JVM)工作原理

虽然本教程的内容为 x86 处理器的原生汇编语言&#xff0c;但是了解其他机器架构如何工作也是有益的。JVM 是基于堆栈机器的首选示例。JVM 用堆栈实现数据传送、算术运算、比较和分支操作&#xff0c;而不是用寄存器来保存操作数(如同 x86 一样)。数据结构&#xff0c;让它们协…

MVC5 + EF6 + Bootstrap3

MVC5 EF6 Bootstrap3 (16) 客户端验证摘要: 本节介绍MVC客户端验证。阅读全文posted 2015-05-26 07:15 Slark.NET 阅读(6333) | 评论 (21) 编辑MVC5 EF6 Bootstrap3 (15) 应用ModelState和Data Annotation做服务器端数据验证摘要: 本节我们用两种不同的方法ModelState和Da…

java for循环break_Java中break、continue、return在for循环中的使用

这篇文章主要介绍了break、continue、return在for循环中的使用&#xff0c;本文是小编收藏整理的&#xff0c;非常具有参考借鉴价值,需要的朋友可以参考下引言&#xff1a;在使用循环的时候&#xff0c;循环里面带有break、continue、return的时候经常弄混&#xff0c;今天特意…

python 定义字符串变量_python 字符串(1)

字符串 操练一下字符串吧。 >>> print "good good study, day day up" good good study, day day up 在python中&#xff0c;通常用一对双引号、或者单引号来包裹一个字符串。或者说&#xff0c;要定义一个字符串&#xff0c;就用双引号或者单引号。 转义字…

play 拦截器_编写Play 2的模块,第2部分:拦截器

play 拦截器在本教程的第一部分中&#xff0c;我们介绍了创建&#xff0c;发布和调用模块的基本知识。 我们创建的模块并没有真正做很多事情&#xff0c;因此现在是时候使用Play的某些功能来扩展功能了。 1.拦截器 拦截器使您可以拦截对控制器的调用&#xff0c;并增强或阻止其…