本文共 1444 字,大约阅读时间需要 4 分钟。
1、什么是GTID
GTID(Global Transaction Identifiers)是全局事务标识
当使用GTIDS时,在主上提交的每一个事务都会被识别和跟踪,并且运用到所有从MySQL,而且配置主从或者主从切换时不再需要指定 master_log_files和master_log_pos;由于GTID-base复制是完全基于事务的,所以能很简单的决定主从复制的一致性;官方建议Binlog采用Row格式。
2、GTID的表示方式
source_id:transaction_id
source_id:表示执行事务的主库的UUID(server_uuid:Mysql5.6的data目录下启动时会生成auto.cnf文件记录了uuid,重启后uuid不变,删除文件后会重新生成新的uuid);
transaction_id:是一个从1开始自增的计数,表示在这个主库上执行的第n个事务;
由于每台Mysql的uuid是全球唯一的,transaction_id自身唯一,就保证了GTID全局唯一性
mysql> show variables like ‘server_uuid’;
+—————+————————————–+
| Variable_name | Value |
+—————+————————————–+
| server_uuid | 4468c0e8-ef6f-11e3-9c2c-0200c0a80ad8 |
+—————+————————————–+
1 row in set (0.00 sec)
3、基于GTID的复制配置
主服务器配置 /etc/my.cnf
从服务器配置 /etc/my.cnf
relad_log后的目录必须存在,并且有权限
备份主服务器数据库,到从服务器中写入
如果导入时报错:
GTID_PURGED can only besetwhenGTID_EXECUTEDisempty.
在从服务器中使用reset master命令即可
在主服务器上建立复制用户,并授权
mysql>grant replication slave,replication client on*.*to repluser@'192.168.1.%'identifiedby'replpass';
mysql>flush privileges;
从库连接主库
mysql>change master to master_host='192.168.1.20',master_user='repluser',master_password='replpass',master_auto_position=1;
mysql>start slave;
查看连接情况
红框选中的两项都为YES,表示链接成功!
4、GTID优缺点
优点:
1、可以很方便的进行故障转移
2、从库不会丢失主库上的任何修改
缺点:
1、故障处理复杂
2、对执行的SQL有限制
不支持myisam,可能导致多个gtid分配给同一个事物
不支持:create table .. select;create /drop temporary table
5、复制方式的选择
主要考虑一下问题:
所使用的Mysql版本
建议5.7版本以上使用GTID复制方式
复制架构及主从切换的方式
MM架构只支持基于日志点方式
MHA架构GTID和基于日志点方式都支持
所使用的高可用组件
对应用的支持程度
转载地址:http://wzsxl.baihongyu.com/