mysql5.6新特性之GTID(可以做并行复制)

 GTID即全局事务ID(global transaction identifier),GTID实际上是由UUID+TID组成的。其中UUID是一个MySQL实例的唯一标识。TID代表了该实例上已经提交的事务数量,并且随着事务提交单调递增,所以GTID能够保证每个MySQL实例事务的执行(不会重复执行同一个事务,并且会补全没有执行的事务)。下面是一个GTID的具体形式:

1)复制环境的搭建:省略

mysql> show variables like '%gtid%';

image.png

主从环境的搭建和5.5没有什么区别,唯一需要注意的是:开启GTID需要启用这三个参数:

[mysqld]

#GTID

gtid_mode = on 

enforce_gtid_consistency = 1

log_slave_updates   = 1

任意一个参数不开启则都会报错:

binlog-do-db=oa_icore_db   ###指定库

各个实例的uuid:

mysql> select @@server_uuid;

1.png

2.png

使用5.6之前的主从change:

mysql> change master to master_host='127.0.0.1',master_user='rep',master_password='rep',master_log_file='mysql-bin3306.000001',master_log_pos=151,/*master_auto_position=1*/;

报错:

ERROR 1776 (HY000): Parameters MASTER_LOG_FILE, MASTER_LOG_POS, RELAY_LOG_FILE and RELAY_LOG_POS cannot be set when MASTER_AUTO_POSITION is active.

当使用 MASTER_AUTO_POSITION 参数的时候,MASTER_LOG_FILE,MASTER_LOG_POS参数不能使用。

使用5.6之后的主从change:

mysql> change master to master_host='127.0.0.1',master_user='rep',master_password='rep',master_port=3306,master_auto_position=1;

在从数据库查看状态

mysql> show slave status\G;

3.png


猜你喜欢

转载自blog.51cto.com/13941177/2174088
今日推荐