码迷,mamicode.com
首页 > 数据库 > 详细

MySQL的GTID复制

时间:2017-08-30 10:01:33      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:mysql   replication   gtid   

   MySQL在5.6后多了一个新的功能就是在做主从复制时使用GTID,和传统的使用relaylog中指定log_pos+log_file的主从复制相比,在使用GTID做主从复制时可以不指定slave需求读取master中的哪一个binlog和偏移量。在传统的MySQL主从复制中,一旦指定错误master的偏移量后,那么就会造成主从不一致,而在基于GTID做的主从复制中就不会发生这样的问题。GTID实际上是master提交了一次事务后而产生的ID,所以在配置的过程中一般都会开启enforce_gtid_consistency(强制事务一致)的配置参数以确保GTID的安全,但是需要注意的是如果开启了开启enforce_gtid_consistency,那么在在事务中就不能创建和删除临时表,这一点需要注意,如创建临时表:

create temporary table
建议改成
create table

除此外还会开启log_slave_updates,这个变量在master和slave中都会开启,除此之外毋庸置疑的是一定需要开启binlog,至于其它大体和log_pos+log_file的主从复制类似,在此就说以一下不一样的地方,至于其它的以前有说过log_pos+log_file的主从复制需要的可以参看:http://jim123.blog.51cto.com/4763600/1862808,在master和slave中开启GTID的相关变量,当然如果是允许重启的话先配置好二者my.cnf是更好的,其中二者的my.cnf的[mysqld]下都需要添加的是:

log_slave_updates = on
gtid_mode = on
enforce_gtid_consistency = on
在slave下建议开启只读:
read_only = on

其处,在配置的过程中最好把master的写入关闭,开启只读:

mysql> set global read_only = ON;
Query OK, 0 rows affected (0.00 sec)

在开启相应的变量参数后,在slave上做指向和log_pos+log_file的主从复制相比只要使用master_auto_position即可

change master to master_host=‘192.168.168.253‘,master_user=‘test_backup‘,master_password=‘test_backup‘,master_auto_position = 1;

在开启后可以查看GTID参数变量:

mysql> show global variables like ‘%GTID%‘;


本文出自 “Jim的技术随笔” 博客,转载请与作者联系!

MySQL的GTID复制

标签:mysql   replication   gtid   

原文地址:http://jim123.blog.51cto.com/4763600/1960988

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!