mysql gtid 主主_MySQL优化之七--Mysql基于GTID的主从复制

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

5f902fd31aa583d501be3821f9139f25.png

从服务器配置 /etc/my.cnf

 ffcb236ee1585964acc084d56c54598c.png

relad_log后的目录必须存在,并且有权限

备份主服务器数据库,到从服务器中写入

 3ed35cf094fdf0b24e5e99963e903f5d.png

d8daa002a669f4a35b706be71d8f92fc.png

如果导入时报错:

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;

查看连接情况

 f35c009681333ad14da443ead2b24986.png

红框选中的两项都为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和基于日志点方式都支持

所使用的高可用组件

对应用的支持程度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值