快三在线投注平台TID代表了该实例上已经提交的

时间:2020-02-01 23:41来源:快三在线投注平台数据库
GTID简介 什么是GTID GTID(Global TransactionID卡塔尔国是对此一个已交给业务的数码,并且是贰个大局唯生机勃勃的编号。 GTID实际上是由UUID+TID组成的。在那之中UUID是多个MySQL实例的独一无二

GTID简介

什么是GTID

GTID(Global Transaction ID卡塔尔国是对此一个已交给业务的数码,并且是贰个大局唯生机勃勃的编号。

GTID实际上是由UUID+TID组成的。在那之中UUID是多个MySQL实例的独一无二标志。TID代表了该实例上业已付出的职业数量,并且随着事情提交单调依次增加。上面是叁个GTID的现实性格局

3E11FA47-71CA-11E1-9E33-C80AA9429562:23

更详尽的介绍能够瞻昂:官方文书档案

GTID的作用

那正是说GTID功用的指标是什么吗?具体归咎主要有以下两点:

依靠GTID能够掌握事情最早是在哪个实例上付出的GTID的留存方便了Replication的Failover 这里详细分解下第二点。大家能够看下在MySQL 5.6的GTID现身从前replication failover的操作进度。假设我们有二个如下图的蒙受

那会儿,Server A的服务器宕机,需求将事情切换来Server B上。相同的时间,大家又需求将Server C的复制源改成Server B。复制源校勘的一声令下语法比超粗略即CHANGE MASTE奥迪Q3 TO MASTE兰德君越_HOST='xxx', MASTER_LOG_FILE='xxx', MASTER_快三在线投注平台TID代表了该实例上已经提交的事务数量。LOG_POS=nnnn。而困难在于,由于同三个作业在每台机器上所在的binlog名字和职位都不周围,那么怎么找到Server C当前一块截止点,对应Server B的master_log_file和master_log_pos是什么样的时候就改成了难点。那也正是为什么M-S复制集群必要动用MMM,MHA那样的额外管理工具的多个首要原由。

其风姿浪漫主题素材在5.6的GTID现身后,就显得煞是的简约。由于同生龙活虎业务的GTID在颇具节点上的值黄金时代致,那么依据Server C当前终止点的GTID就能够独一定位到Server B上的GTID。以至由于MASTE陆风X8_AUTO_POSITION成效的现身,我们都无需明白GTID的具体值,直接利用CHANGE MASTER TO MASTE奇骏_HOST='xxx', MASTER_AUTO_POSITION命令就足以一向到位failover的干活。 So easy不是么

借助GTID的主从复制简单介绍

搭建

搭建使用了mysql_sandbox脚本为底工,先创制了三个意气风发主三从的依赖地方复制的情形。然后通过计划修正,将全部布局专为依据GTID的复制。

遵照MySQL官方文书档案给出的GTID搭建提出。需求一回对骨干节点做布署更改,因人而宜启服务。那样的操作,显明在production蒙受张开跳级换代时是不足选择的。照片墙,Booking.com,Percona都对此通过patch做了优化,做到了更温婉的晋升。具体的操作情势会在其后的博文当中介绍到。这里大家就遵照合瑞典语档,实行一回实验性的晋级。

关键的提高步骤会有以下几步:

保障基本同步在master上配置read_only,保障未有新数据写入改良master上的my.cnf,一视同仁启服务改善slave上的my.cnf,比量齐观启服务在slave上施行change master to并带上master_auto_position=1启用基于GTID的复制由于是推行环境,read_only和服务重启并无大碍。只要遵守合法的GTID搭建提出做就会顺遂实现晋级,这里就不赘述详细经过了。下边罗列了部分在升级进程中易于碰到的不当。

周围错误

gtid_mode=ON,log_slave_updates,enforce_gtid_consistency那七个参数必必要相同的时候在my.cnf中配备。不然在mysql.err中会现身如下的报错

2016-10-08 20:11:08 32147 [ERROR] --gtid-mode=ON or UPGRADE_STEP_1 or UPGRADE_STEP_2 requires --log-bin and --log-slave-updates2016-10-08 20:13:53 32570 [ERROR] --gtid-mode=ON or UPGRADE_STEP_1 requires --enforce-gtid-consistency

change master to 后的warnings

在依据文书档案的操作change master to后,会发觉有多个warnings。其实是七个安全性警示,不影响平常的协同后,DBA可以人为保险该slave数据和master风华正茂致;只怕固然不雷同,这一个差别也不会变成随后的主干十分。那样的前提下,我们又想使slave通过replication从master举行多少复制。那时大家就须求跳过master已经被purge的后生可畏对,那么实际上该如何操作呢?

咱俩还是以实验风华正茂的情形为例:

先承认master上早就purge的部分。从下面的下令结果能够通晓master阳春经缺点和失误24024e52-bd95-11e4-9c6d-926853670d0b:1这一条专门的工作的相干日志

master [localhost] {msandbox} (test)  show global variables like '%gtid%';+---------------------------------+------------------------------------------+| Variable_name | Value |+---------------------------------+------------------------------------------+| binlog_gtid_simple_recovery | OFF || enforce_gtid_consistency | ON || gtid_executed | 24024e52-bd95-11e4-9c6d-926853670d0b:1-3 || gtid_mode | ON || gtid_owned | || gtid_purged | 24024e52-bd95-11e4-9c6d-926853670d0b:1 || simplified_binlog_gtid_recovery | OFF |+---------------------------------+------------------------------------------+7 rows in set (0.00 sec)

在slave上通过set global gtid_purged='xxxx'的办法,跳过曾经purge的一些

slave2 [localhost] {msandbox} ((none))  stop slave;Query OK, 0 rows affected (0.04 sec)slave2 [localhost] {msandbox} ((none))  set global gtid_purged = '24024e52-bd95-11e4-9c6d-926853670d0b:1';Query OK, 0 rows affected (0.05 sec)slave2 [localhost] {msandbox} ((none))  start slave;Query OK, 0 rows affected (0.01 sec)slave2 [localhost] {msandbox} ((none))  show slave statusG *************************** 1. row ***************************Slave_IO_State: Waiting for master to send event......Master_Log_File: mysql-bin.000005Read_Master_Log_Pos: 359Relay_Log_File: mysql_sandbox21290-relay-bin.000004Relay_Log_Pos: 569Relay_Master_Log_File: mysql-bin.000005Slave_IO_Running: YesSlave_SQL_Running: Yes......Exec_Master_Log_Pos: 359Relay_Log_Space: 873......Master_Server_Id: 1Master_UUID: 24024e52-bd95-11e4-9c6d-926853670d0bMaster_Info_File: /data/mysql/rsandbox_mysql-5_6_23/node2/data/master.infoSQL_Delay: 0SQL_Remaining_Delay: NULLSlave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it......Retrieved_Gtid_Set: 24024e52-bd95-11e4-9c6d-926853670d0b:2-3Executed_Gtid_Set: 24024e52-bd95-11e4-9c6d-926853670d0b:1-3Auto_Position: 11 row in set (0.00 sec)

能够看出那儿slave已经足以健康同步,并补齐了24024e52-bd95-11e4-9c6d-926853670d0b:2-3约束的binlog日志。

如上所述是笔者给我们介绍的MySQL 5.6 GTID新个性奉行,希望对大家具备利于,如若大家有别的疑问请给本身留言,笔者会及时恢复生机大家的。在这里也特别多谢我们对台本之家网站的辅助!

编辑:快三在线投注平台数据库 本文来源:快三在线投注平台TID代表了该实例上已经提交的

关键词: