前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 基于GTID主从复制

MySQL 基于GTID主从复制

作者头像
Linux运维技术之路
发布2022-06-07 09:46:52
3250
发布2022-06-07 09:46:52
举报

一、基于GTID的主从复制#

1.什么是GTID

代码语言:javascript
复制
Copy
1.全局事务标识符
2.组成:UUID + TID    
	   f03a53e0-cd46-11ea-a2c4-000c292c767e:1

2.GTID主从复制的优点

代码语言:javascript
复制
Copy
1.GTID同步时开启多个SQL线程,每一个库同步时开启一个线程,由原本的串行sql线程变成并行开启多个sql线程,加快读取中继日志速度。
2.binlog在rows模式下,binlog内容比寻常的主从更加简洁
3.GTID主从复制会记录主从信息,不需要手动配置binlog和位置点

3.GTID主从复制的缺点

代码语言:javascript
复制
Copy
1.备份时更加麻烦,需要额外加一个参数 --set-gtid=on
2.主从复制出现错误,没有办法跳过错误

4.搭建GTID主从复制

1)配置三台数据库

代码语言:javascript
复制
Copy
#配置第一台主库
[root@db01 ~]# vim /etc/my.cnf
[mysqld]
server_id=1
log_bin=/usr/local/mysql/data/mysql-bin

#配置第一台从库
[root@db02 ~]# vim /etc/my.cnf
[mysqld]
server_id=2

#配置第二台从库
[root@db03 ~]# vim /etc/my.cnf
[mysqld]
server_id=3

2)查看是否开启GTID

代码语言:javascript
复制
Copy
mysql> show variables like '%gtid%';
+---------------------------------+-----------+
| Variable_name                   | Value     |
+---------------------------------+-----------+
| binlog_gtid_simple_recovery     | OFF       |
| enforce_gtid_consistency        | OFF       |
| gtid_executed                   |           |
| gtid_mode                       | OFF       |
| gtid_next                       | AUTOMATIC |
| gtid_owned                      |           |
| gtid_purged                     |           |
| simplified_binlog_gtid_recovery | OFF       |
+---------------------------------+-----------+
8 rows in set (0.00 sec)

3)开启GTID

代码语言:javascript
复制
Copy
#主库配置
[root@db01 ~]# vim /etc/my.cnf
[mysqld]
server_id=1
log_bin=/usr/local/mysql/data/mysql-bin
gtid_mode=on
enforce_gtid_consistency
log-slave-updates

#从库1的配置
[root@db02 ~]# vim /etc/my.cnf
[mysqld]
server_id=2
log_bin=/usr/local/mysql/data/mysql-bin
gtid_mode=on
enforce_gtid_consistency
log-slave-updates

#从库2的配置
[root@db02 ~]# vim /etc/my.cnf
[mysqld]
server_id=3
log_bin=/usr/local/mysql/data/mysql-bin
gtid_mode=on
enforce_gtid_consistency
log-slave-updates

4)扩展

代码语言:javascript
复制
Copy
#配置log-slave-updates参数的场景
1.基于GTID的主从复制
2.双主架构+keepalived
3.级联复制
4.MHA

5)主库创建用户

代码语言:javascript
复制
Copy
mysql> grant replication slave on *.* to rep@'172.16.1.5%' identified by '123';

6)主库数据同步到从库

代码语言:javascript
复制
Copy
mysqldump -uroot -p -R --triggers --master-data=2 --single-transaction -A > /tmp/full.sql
scp
mysql < full.sql

7)从库配置主从

代码语言:javascript
复制
Copy
mysql> change master to
    -> master_host='172.16.1.51',
    -> master_user='rep',
    -> master_password='123',
    -> master_auto_position=1;
Query OK, 0 rows affected, 2 warnings (0.03 sec)

5.GTID复制和传统复制的区别

代码语言:javascript
复制
Copy
GTID复制:
CHANGE MASTER TO
MASTER_HOST='10.0.0.51',
MASTER_USER='repl',
MASTER_PASSWORD='123' ,
MASTER_AUTO_POSITION=1;  指明为GTID复制模式

传统复制:
CHANGE MASTER TO
MASTER_HOST='10.0.0.51', 
MASTER_USER='repl',
MASTER_PASSWORD='123', 
MASTER_PORT=3306, 
MASTER_LOG_FILE='mysql-bin.000002', 
MASTER_LOG_POS=887,
MASTER_CONNECT_RETRY=10;

总结:
MASTER_AUTO_POSITION=1;  指明为GTID复制模式后,
会自动寻找复制起点

原文链接: https://www.cnblogs.com/tcy1/p/13378087.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Linux运维技术之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、基于GTID的主从复制#
    • 1.什么是GTID
      • 2.GTID主从复制的优点
        • 3.GTID主从复制的缺点
          • 4.搭建GTID主从复制
            • 5.GTID复制和传统复制的区别
            相关产品与服务
            数据库
            云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档