mysql 基于gtid复制_MySQL之基于GTID的主从复制

1 GTID介绍

1.他是一个全局事务标识符:是一个唯一标识符,他与主库上提交的每个事务相关联

GTID 保证了每个在主库上提交的事务在集群中有一个唯一的ID。

这种方式强化了数据库的主备一致性,故障恢复以及容错能力。

2.此标识符不仅对其发起的服务器是唯一的,而且在给定复制设置中的所有服务器都是唯一的,所有的事务和所有的GTID都是1对1的映射

3.GTID实际上是由UUID+TID组成的

UUID是数据库实例的标识符

TID表示事务提交的数量,会随着事务的提交递增

#例子:34177574-b5a4-11ea-88a5-000c2984fcde:45

2.GTID主从复制优点

GTID同步时会开启多个SQL线程

binlog在row模式下,占用磁盘空间较小

GTID会保存主从相关信息

基于GTID的主从复制不需要手动配置binglog的名字(master_log_file)和位置点(master_log_pos)

3.GTID主从复制缺点

mysqldump备份数据库时需要加上--set-gtid-purged=OFF选项

在开启了GTID模式后,使用mysqldump备份数据时默认是 --set-gtid-purged=ON,如果使用这个备份导入到master端时,数据库不会产生相应地binlog日志,这些备份的数据就不会同步到slave端。

主从复制SQL线程报错时,无法使用sql_slave_skip_counter跳过报错

在 MySQL 5.7.11 版本之前,此选项与基于 GTID 的复制模式不兼容,并且--gtid-mode = ON 时不能将其设置为非零值。但可以使用设置空事务的方式跳过一个事务,在 MySQL 5.7.11 和更高版本中可以使用该参数来跳events,对于DDL语句,设置为1即可跳过,但是对于DML语句的事务,可能需要设置为 2 才能跳过事务

4.基于GTID的主从复制搭建

4.1 编辑配置文件

修改主库的配置文件

[root@db01 ~]# vim /etc/my.cnf

[mysqld]

server_id=1

log_bin=mysql-bin

gtid_mode=ON

enforce_gtid_consistency=ON

log_slave_updates=ON

修改从库的配置文件

[root@db02 ~]# vim /etc/my.cnf

[mysqld]

server_id=2

log_bin=mysql-bin

gtid_mode=ON

enforce_gtid_consistency=ON

log_slave_updates=ON

[root@db03 ~]# vim /etc/my.cnf

[mysqld]

server_id=3

log_bin=mysql-bin

gtid_mode=ON

enforce_gtid_consistency=ON

log_slave_updates=ON

注意:log_slave_updates=ON主要作用是让从库保存binlog日志。此配置主要应用于:基于GTID的主从复制、MHA高可用、双主+keepalived、级联复制。

重启数据库,配制生效

systemctl restart mysqld

4.2 主库和从库操作

主库操作

mysql> grant replication slave on *.* to rep@'172.16.1.%' identified by '123';

从库操作

执行change master to 语句

mysql> change master to

master_host='172.16.1.51',

master_port=3306,

master_user='rep',

master_password='123',

master_auto_position=1;

启动从库线程

mysql> start slave;

4.3 检查从库状态

在从库中出现类似如下信息,则说明GTID模式的主从复制搭建成功了

mysql> show slave status\G

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Executed_Gtid_Set: 19d44a0d-a63c-11ea-a42d-000c29a3cd40:1-2

Auto_Position: 1

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值