基于GTID的主从复制

MySQL主从复制实战指南(基于二进制日志)-CSDN博客

二、基于GTID的主从复制

基于 GTID 方式:全局事务标示符,自mysql5.6版本开启的新型复制方式。

GTID的组成:server_uuid:序列号

UUID:每个mysql实例的唯一ID,由于会传递到slave,所以也可以理解为源ID

序列号:在每台MySQL服务器上都是从1开始自增长的序列,一个数值对应一个事务。

1、工作过程

master 更新数据时,会在事务前产生 GTID,一同记录到 binlog (二进制日志)中

slave 端的 I/O 线程将变更的 binlog,写入到本地的relay log(中继日志)中。

sql 线程从 relay log 中获取 GTID,然后对比 slave 端的 binlog 是否有记录

如果有记录,说明该 GTID 的事务已经执行,slave 会忽略

如果没有记录,slave 就会从 relay log 中执行该 GTID 的事务,并记录到 binlog。

在解析过程中会判断是否有主键,如果有就用二级索引,如果没有就用全部扫描。

2、优势

更简单的实现 failover,不用以前那样在需要找二进制日志文件 log_file 和位置值 log_pos.

更简单的搭建主从复制

比传统的复制更加安全

GTID 是连续的没有空洞的,保证数据的一致性,零丢失。

slave 无需知道 master 的 pos 值和日志文件值,只需要知道 master 的 ip、用户名、密码即可;

3、搭建 GTID 方式的主从复制

(1)主配置

root@node2 \~# cat /etc/my.cnf

mysqld

server-id=1

开启GTID模式,添加此⾏

gtid_mode=ON

开启GTID的⼀些安全限制,添加此⾏

enforce_gtid_consistency=true

include all files from the config directory

!includedir /etc/my.cnf.d

root@node2 \~# systemctl restart mysqld ;systemctl enable mysqld

对复制用户授权

mysql> create user 'repluser'@'%' identified with mysql_native_password by "123";

Query OK, 0 rows affected (0.10 sec)

mysql> grant replication slave on *.* to 'repluser'@'%';

Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.10 sec)

mysql>

(2)从配置

root@node3 \~# cat /etc/my.cnf

mysqld

server-id=2

gtid_mode=ON

enforce_gtid_consistency=true

include all files from the config directory

!includedir /etc/my.cnf.d

root@node2 \~# systemctl restart mysqld ;systemctl enable mysqld

从库链接主库

查看主

show master status;

mysql> CHANGE MASTER TO

MASTER_HOST = '10.1.1.6',

MASTER_USER = 'repluser',

MASTER_PASSWORD = '123',

master_auto_position=1;

Query OK, 0 rows affected, 7 warnings (0.04 sec)

mysql> start slave;

Query OK, 0 rows affected, 1 warning (0.08 sec)

mysql>show slave status\G;

验证主从

mysql> show databases;

相关推荐
大耳朵-小飞象18 分钟前
电力安全运维的智能密码:BACS如何破解设备全生命周期管理难题,让电网安全“看得见、管得住”?
运维·安全·智慧城市·能耗系统·楼宇智控·未来生活
极客侃科技37 分钟前
制造企业 MES/APS 选型:SAP PP/DS 集成、ERP-MES 边界划分与一体化架构要点
运维·架构·制造
Cloud云卷云舒1 小时前
云卷云舒:从Oracle/MySQL迁移到HaishanDB:迁移评估工具核心技术拆解
mysql·oracle·ai-native·haishandb·信创数据库替换
生活爱好者!4 小时前
我把NAS当作下载机,docker一键部署qb
运维·docker·容器
用户71333585156244 小时前
MySQL - 事务、redo/undo 日志与 MVCC
mysql
用户71333585156245 小时前
MySQL - InnoDB 的 Buffer Pool
mysql
尽兴-5 小时前
企业业务系统架构选型与渐进式演进
运维·系统架构·devops
通信小小昕6 小时前
Ubuntu 26.04 中文输入法安装
linux·运维·ubuntu
欲速不达88206 小时前
Mysql并发DML锁等待的优化
数据库·mysql
壮哥_icon6 小时前
【Android 系统开发】使用 BAT 脚本高效自动化管理 /system/priv-app/ 系统应用(安装与卸载)
android·运维·自动化