您的位置:首页 > 博客中心 > 数据库 >

MySQL GTIDs(global transaction identifiers)

时间:2022-03-10 17:16

1、如何定义和生成GTIDs


 唯一性:在所有主从库都是唯一的,由二元组构成

?
GTID = source_id:transaction_id

source_id标记主库的

1.1 server_uuid

获取server_uuid的方式

a、判断data_dir/auto.cnf文件是否存在,如果存在返回

b、不存在的话,自动产生一个新的UUID,并保存到data_dir/auto.cnf中

auto.cnf文件格式如下:

?
[auto] server_uuid=8a94f357-aab4-11df-86ab-c80aa9429562

 auto.cnf文件是自动产生的,不要试图修改这个文件。

如果主库的server_uuid发生变化的话,需要重新change master to,故这个auto.cnf文件是只读的。

http://dev.mysql.com/doc/refman/5.6/en/replication-options.html#sysvar_server_uuid

 1.2 GTID sets

?
gtid_set:     uuid_set [, uuid_set] ...     | ‘‘   uuid_set:     uuid:interval[:interval]...   uuid:     hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh   h:     [0-9|A-F]   interval:     n[-n]       (n >= 1)

gxlsystem.com,布布扣

1.3 GTID产生过程

(1)事务执行完成,并在主库提交

使用主库的UUID以及最小的事务序列数,并将GTID记录到主库的binlog中

(2)当binlog的数据被从库接收后,并存储在relay log中,此时从库SQL线程读取GTID,并将其赋值给变量gitd_next

(3)从库检查GTID,确认没有执行过。如果这个GTID没有使用过,从库写入GTID,并回放这个事务。

 slave需要确保两点:

a、GTID没有被之前的事务使用过

b、相关联的事务没有被提交

(4)因为gtid_next非空,slave不会尝试产生一个新GTID,而是将GTID保存在变量gtid_next中

 

?
mysql> show global variables like ‘%gti%‘; +--------------------------+------------------------------------------------------------------------------------+ | Variable_name            | Value                                                                              | +--------------------------+------------------------------------------------------------------------------------+ | enforce_gtid_consistency | ON                                                                                 | | gtid_executed            | 5f02986b-c5de-11e3-8d21-001e4f1ef3b7:1-8, b9d59578-df02-11e3-b112-001e4f1f39cf:1-2 | | gtid_mode                | ON                                                                                 | | gtid_owned               |                                                                                    | | gtid_purged              | 5f02986b-c5de-11e3-8d21-001e4f1ef3b7:1-8, b9d59578-df02-11e3-b112-001e4f1f39cf:1-2 | +--------------------------+------------------------------------------------------------------------------------+

 

 

 

2、如何设置基于GTIDs的同步


 

 

 

3、使用GTIDs的一些建议


 

 

4、使用GTIDs的限制


 

 

5、参考文献


http://dev.mysql.com/doc/refman/5.6/en/replication-gtids.html

http://qing.blog.sina.com.cn/1757661907/68c3cad333002qhe.html

http://qing.blog.sina.com.cn/1757661907/68c3cad333002qsk.html

http://qing.blog.sina.com.cn/1757661907/68c3cad333002s5l.html

http://dev.mysql.com/worklog/

MySQL GTIDs(global transaction identifiers),布布扣,bubuko.com

热门排行

今日推荐

热门手游