2KB项目,专业的源码交易网站 帮助 收藏 每日签到

MySQL 复制:GTIDS完成主动毛病恢复

  • 时间:2019-09-11 17:23 编辑:2KB 来源:2KB.COM 阅读:333
  • 扫一扫,手机访问
  • 分享
摘要:英文原文:MySQL Replication: Self-Healing Recovery with GTIDs and MySQL Utilities    MySQL 5.6 包括了一个复制的新功用,enabling

英文原文:MySQL Replication: Self-Healing Recovery with GTIDs and MySQL Utilities                           

MySQL 5.6 包括了一个复制的新功用,enabling DevOps teams to reliably scale-out their MySQL infrastructure across commodity hardware, on-premise or in the cloud.

首要的加强改良是添加了Global Transaction Identifiers (GTIDs)功用,为了处理以下问题:

-可以无缝的毛病恢复和master与slave的切换

-能把slave指向新的master

-减少手工干涉和下降办事毛病工夫

你可以下载新的MySQL Replication High Availability Guide 了解更多,以下部分供给了GTIDS和mysql怎么一同来共同来完成主动毛病恢复的复制集群

GTIDs

要了解和完成GITDS的功用, 我们将用下面插图来举例阐明:

- ServerA(master)挂啦

- 我们需求把slaveB酿成新的master

- 其他的slave指向新的master

图 1: MySQL Master 毛病转移 and Slave 提升

MySQL 默许是异步复制, servers B and C 可能事务数目纷歧样,也就是两台机械的数据不类似, 一个可能抢先别的一个. 试着思索以下场景:

场景 #1

- Server B 抢先 C 而 B选为 new master;

- [然后] Server C启动复制,可是它没有收到Server B的第一个事务;

场景 #2

- Server C 到今朝为止没有收到 B 的事务, ***指定B为新的masterr (假设, B机械设置装备摆设比C的高).

- Server B 因而需求履行后传给 Server C, before assuming the role of the master, otherwise lost transactions and conflicts can ensue.

GTIDS对每次事物设置无独有偶的标示符,因而当每次履行slave时,追踪他们变的很轻易。当master提交一次事物。GTID就会发生并在事物之前被写入二进制日记。GTID和事物会被复制给slave.

假设slave被设置装备摆设去本人写改动本人的二进制日记,slave要确保在事物被提交后,GTID和事物被维护和写入。

GTIDS系列在履行每次slave时都被表露给用户在一个新的,只读的,全局的Server变量,gtid_executed.这个变量可以被用与联合GTID_SUBTRACT()去断定与master适配的slave能否为最新的,假如不是,事物会被丧失。

为了使这个进程主动化,在这里创立了一个新的复制协定. 当一个slave衔接到master, 这个新的协定将确保GTIDs的范畴是slave曾经履行的和已提交但恳求丧失的事务. 这个master然后发送除此之外的其它事务, 也就是那些slave还没有履行的. 下面这个是插图事例 (留意为了明白这里简化了GTID编号和binlog格局):

图 2: 主动同步一个新的Master和它的Slaves

在这个例子中, Server B 在Server A出毛病之前曾经履行了一切的事务. 运用MySQL复制协定, Server C 将会发送 “id1” 至 Server B, 然后 B 将会发送 “id 2” 和“id3” 至Server C, 然后复制新的事务做为它们的桥梁. 假设Server B 和Server C的脚色交换, 在Server C成为master之前,这个异样的进程也将确保Server B接纳任何到今朝为止还没有履行的事务.

我们因而有了一个牢靠的slave晋级根底, 确保任何的事务在slave上城市被履行而且不会由于master的事情丧失而丧失.

MySQL Utilities 关于GTIDs的处置

作为基于Python号令行剧本完成, 这个复制的utilities可以做为一个 独自的下载 也能够做为MySQL 任务台的一个包. 源代码可以从这个链接失掉 MySQL Utilities Launchpad page.

这个utilities 支撑毛病转移和恢复是MySQL utilities的一部分,它简化了对MySQLServer的保护和治理, 包含设置装备摆设和验证的复制, 比拟和克隆数据库, 诊断,等. 这个utilities遵照GPLv2 协定, 可以经过供给的库实行扩大. 设计请求运转在Python 2.6 及以上版本.

复制Tools: mysqlfailover

当供给一个继续的复制拓扑的监控时, mysqlfailover 可以在主Server中断后主动或许手动转移到一个从Server. 它的默许行动是从以下界说的从Server选举规范晋升一个最可行的从Server.

? 从Server正在运转而且可以拜访;

? 启动GTIDs;

? 从Server复制过滤规矩不抵触;

? 复制用户是存在的;

? 启用二进制日记.

一旦一个可行的从Server被选择(称作备用Server), 这个过程当中要检索在启动的复制 集群中一切运动的事务. 这是经过衔接备份Server和一切剩下的从Server从而在备份Server上收集和履行集群中的一切事务. 如许就确保没有复制事务丧失, 即便备份Server不是启动毛病转移时最可行的Server.

选举的过程是可以设置装备摆设的. 零碎***可使用列表来明白指定可以成为新的主Server的备份Server(举例来讲 由于它们有更好的硬件功能).

在预设置装备摆设的距离, 起首顺序将经过ping操纵来反省Server能否在运转, 接下来运用衔接器来反省Server能否可用. 假如主Server被发明离线或许是不成达, 顺序将履行以下几个基于毛病转移形式选项值的答应用户自界说毛病转移战略的举措:

? 主动形式通知顺序起首转移到明白指出备份Server的列表中,假如列表中没有任何可用Server, 则从剩下的从Server中搜刮一个可用备份Server.

? 选举形式限制备份Server的选举列表而且假如列表中没有可用的,主动毛病转移宣布失败.

? 失败形式通知顺序不要去履行毛病转移而且中止履行,进一步等候开辟运营团队的恢复举措.

经过一系列的扩大点用户可以在数据库以外绑定本人的剧本来触发毛病转挪动作 (例如 虚拟IP的毛病转移). 回忆 mysql毛病转移文档 了解更多设置装备摆设的细节和多种运用的选项.

复制Tools: mysqlrpladmin

假如用户需求对首要Server实行周期的离线保护, mysqlrpladmin 可以供给切换到一个特定的从Server (被称为新的主Server). 当实行切换时, 原始的主Server被锁定而且一切的从Server答应供给办事. 一旦从Server从原始主Server读取所欲的事情,原始的主Server就会封闭而且把持权切换到新的主Server上.

非常多运营团队情愿本人实行毛病切换决议计划, 所以 mysqlrpladmin 对断定中止运转后的主Server供给一个手动毛病转移的机制, 或许运用适用Tools供给的安康反省陈述, 或许经过如许的Tools( MySQL Enterprise Monitor)供给的告警.

它也能够十分轻易的把恢复的主Server从头引入经过升级的主Server号令复制的拓扑而且启动它.

回忆 mysqlrpladmin 文档去了解更多设置装备摆设的细节和多种功效的选项.

其他参考材料

除本文以外,别的两个或许对你有协助的资本:

- MySQL replication utilities tutorial video

- MySQL replication guide: building a self healing replication topology

总结:

经过毛病转移或切换相联合,使得要害的使用可以具有主动修复弱小特征。


2KB项目www.2kb.com源码交易平台),提供担保交易源码交易虚拟商品在家创业在线创业任务交易网站设计软件设计网络兼职站长交易域名交易链接买卖网站交易广告买卖站长培训建站美工等服务

  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|互联网】深入理解 Rust 的动态分派模型(2020-03-30 04:08)
【计算机/互联网|】mysql 索引过长1071-max key length is 767 byte(2020-03-16 04:01)
【计算机/互联网|】maven build卡死在Downloading的解决方法(2020-03-08 12:13)
【计算机/互联网|】Eclipse里的Java项目按住Ctrl + 左键不能进行跳转问题(2020-03-06 15:32)
【计算机/互联网|互联网】Ceph 性能调优(2020-03-03 23:56)
【计算机/互联网|】百度推送返回状态说明(2020-02-22 18:38)
【计算机/互联网|】tomcat建立示例java web项目(2020-02-15 11:27)
【计算机/互联网|】springboot打包成war,部署到tomcat访问404的问题 (2020-02-13 10:54)
【行业动态|】CES 2020教会了我们关于今年手机的知识:更便宜的可折叠材料,5G及更多(2020-02-10 01:32)
【行业动态|】谷歌Chrome的隐私变化将在今年晚些时候登陆网络(2020-02-10 01:28)
联系我们

Q Q: 7090832

电话:400-0011-990

邮箱:7090832@qq.com

时间:9:00-23:00

联系客服
商家入住 服务咨询 投拆建议 联系客服
0577-67068160
手机版

扫一扫进手机版
返回顶部