mysql gdit模式_配置基于GTIDs的replication

什么是GTIDs ?

global transaction identifiers  mysql 5.6.5新加的一项技术

GTIDs是完全基于事务的,因此不支持MYISAM存储引擎(兼容性不好)

添加新的slave或者当发生故障转移需要将master身份迁移到slave时,无需考虑是那一个二进制日志以及那一个position

GTID 由source_UUID transaction_id两部分组成

source_id 来源于server_id,可以再aoto.cnf中看到

transaction_id 是一个序列数字,从小到大自动生成  123

server_uuid

[auto]

server-uuid=9d0f0069-9d66-11e4-8a94-000c292cfb85

使用GTIDs的一些限制条件

1,不支持MYISAM。导致多个GTID分配给同一个事务

2,create table 。。。。select语句不支持

3,create/DROP temporary table 语句不支持

4,必须使用enforce-gtid-consistency参数 强制GTID一致

5,sql-slave-skip-counter不支持     配置replication时候,可以使用此参数跳过一些错误。在GDIT模式不支持

6,在mysql5.6.9之后的版本导入使用mysqldump制作的备份时,需要保证二进制日志不包含GTIDs

7,mysql5.6.7之前,使用mysql_upgrade命令会出现问题

配置基于GTIDs的replication

配置GTID的replication需要binlog的format=row

step1:

将master和slave服务器设置为read_only

set global read_only=ON;

step2:停止master和slave服务器的mysql

service mysqld stop

step3:开启GTIDs

开启GTID需要在两台机器上都配置

gtid-mode=on

log-bin

log-slave-updates

enforce-gtid-consistency

另外,slave在这个环节还需要增加skip-slave-start参数 ,( 先不启动slave,还需要其他配置)

serveice mysqld  start;

step4:

change master to

master_host='192.168.20.238',

master_user='repl',

master_password='123456',

master_auto_position=1;

start slave;

show slave status\G;

显示Auto_Position: 1 说明已经运行在GTIDs的模式下了 。

接下来更新master

show slave status\G;

Retrieved_Gtid_Set: 61816754-9d68-11e4-8a9f-000c29c1d1ea:1-8

Executed_Gtid_Set: 61816754-9d68-11e4-8a9f-000c29c1d1ea:1-8

相同表示和master数据完全一致

如果需要切换 ,只需将slave指向新的master、

(change master to .....................................)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值