mysql 5.6 新特性之GTID复制

Mysql 5.6开始支持gtid模式的主从复制  mysql

Gtid即为全局事务标识符,是指mysql对写入二进制日志的每一个事务所做的标记。由server_uuid和事务id组成。  sql

Gtid的做用是什么?能够简化搭建主从实例。咱们以往在扩展从库时,均须要在从库上指定开始复制的二进制日志文件名、位置,若是指定错误,可能还会引发数据一致性的问题。 服务器

 使用gtid模式以后,只须要在从库上指定主库的基本链接信息(登陆信息、ip,端口等),将自动查寻复制起始点。这将大大简化扩展从库实例。 ide

 gtid是由server_uuid和事务id组成。Server_uuid是一个128位的数字,形如b45c01f0-6787-11e3-a5f6-0800271b7f69 性能

它是由服务器首次启动时自动随机生成,并写入到数据目录的auto.cnf目录中。服务器一旦正式投入运行,就毫不要修改server_uuid或修改删除auto.cnf文件!不然会引发后续的主从复制故障! ui

 从这个原理来看,使用gtid并不会影响主从复制性能。  spa

混合gtid模式与非gtid,还可否正常使用?彻底能够,但不建议这样作。保持单一与统一,可减小没必要要的麻烦。 日志

 若是在使用过程当中,有疑问可致邮 zhangxugg@163.com, 共同探讨  orm

如何启用gtid复制? server

 1. 主库上的操做

中止主库实例,并删除主库数据目录中生成的全部二进制相关日志,即binlog, relay-binlog, binglog.index, relay-bin.index, relay-log.info

向主库的启动配置文件/etc/my.cnf中加入如下配置项 

server_id = 73906 

log_bin=mysql-binlog

sync_binlog = 0

binlog_format=MIXED

expire_logs_days = 7

 

gtid-mode=on

log-slave-updates

enforce-gtid-consistency

master_info_repository=TABLE

 

启动主库服务并在主库上建立复制账号

grant replication slave, replication client to 'repl'@'%' identified by 'repl';

 

2. 从库上的配置
中止从库实例,同上删除从库全部相关旧文件,binglog, relay-bin.*, relay-bin.index, relay-log.info

配置从库启动参数文件/etc/my.cnf,加入如下配置 

server_id = 73907 

log_bin=mysql-binlog

sync_binlog = 0

binlog_format=MIXED

expire_logs_days = 7

 

gtid-mode=on

log-slave-updates

enforce-gtid-consistency

master_info_repository=TABLE 

read_only=1

 

注意:每一个节点的server_id必须保持惟一性。 

启动从库服务,并指定主库链接信息(所设主库ip192.168.10.1,端口为3306,复制账号密码均为repl)。

mysql> CHANGE MASTER TO MASTER_HOST='192.168.10.1',MASTER_PORT=3306,MASTER_USER='repl',

MASTER_PASSWORD='repl',MASTER_AUTO_POSITION=1;

 

mysql> start slave;

mysql> show slave status\G

相关文章
相关标签/搜索