当前位置:   article > 正文

基于GTID的主从复制

基于gtid的主从复制

基于GTID的主从复制

一、GTID介绍

  • MySQL5.6往后版本支持的新特性
  • GTID Global Transaction Identified
    • 全局事务ID
  • GTID构成
    • server_uuid+事务ID
  • 在配置主从的时候不再需要自行去找二进制日志文件位置

二、配置基于GTID的主从复制

环境描述
	192.168.152.12   Master服务器
	192.168.152.13	 Slave服务器
  • 1
  • 2
  • 3

1、在服务器安装MySQL8.0,导入jiaowu.sql

  • 跳过配置mysql软件仓库,以安装好mysql8.0开始
[root@master ~]# systemctl start mysqld
[root@master ~]# systemctl enable mysqld
[root@master ~]# mysql -uroot -pWWW.1.com < jiaowu.sql
  • 1
  • 2
  • 3

2、完全备份数据库,发送给从服务器

[root@master ~]# mysqldump -uroot -pWWW.1.com --lock-all-tables --master-data=2 --all-databases > /tmp/all.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
[root@master ~]# rsync -av /tmp/all.sql root@192.168.152.13:/tmp/
  • 1
  • 2
  • 3

3、修改配置文件,启用gtid特性

  • gtid=on 启用gtid
  • enfore_gtid_consistencytrue 强制gtid一致性
[root@master ~]# vim /etc/my.cnf
[mysqld]
server_id=10
log_bin=master
gtid_mode=on						//启用gtid
enforce_gtid_consistency=true		//强制gtid一致性
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4、在主服务器创建从服务器登录用户,为用户授权,刷新

mysql> create user 'ljh1'@'192.168.152.13' identified by "WWW.1.com";
Query OK, 0 rows affected (0.01 sec)

mysql> grant replication slave on *.* to "ljh1"@"192.168.152.13";
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

5、配置从服务器配置文件,重启

[root@slave ~]# vim /etc/my.cnf
[mysqld]
server_id=11
log_bin=slave
gtid_mode=on
enforce_gtid_consistency=true
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

6、在从服务器恢复主服务器内容,开机自启数据库,连接主服务器获取密钥(8.0新特性)

[root@slave ~]# mysql -uroot -pWWW.1.com < /tmp/data.sql 
[root@localhost ~]# mysql -u ljh1 -pWWW.1.com -h 192.168.152.12 --get-server-public-key
  • 1
  • 2

5、连接Master服务器

mysql> CHANGE MASTER TO
    -> MASTER_HOST="192.168.152.12",
    -> MASTER_USER="ljh1",
    -> MASTER_PASSWORD="WWW.1.com",
    -> MASTER_AUTO_POSITION=1;
Query OK, 0 rows affected, 7 warnings (0.01 sec)

mysql> stop slave;
mysql> start slave;

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

6、测试即可

三、多元复制

1、概念

  • MySQL5.7以后支持的
  • 支持多个服务器向同一个从服务器复制数据
  • 通过channel隧道来标识不同的主服务器
  • 要将master.info和relay_log.info这两个文件以表的形式放到数据库中

img

2、将上午布置的GTID主从还原

3、在两个主服务器上为从服务器创建复制用户

mysql> create user 'ljh14'@'192.168.152.14' identified by "WWW.1.com";
Query OK, 0 rows affected (0.01 sec)

mysql> grant replication slave on *.* to 'ljh14'@'192.168.152.14';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
mysql> create user 'ljh15'@'192.168.152.14' identified by "WWW.1.com";
Query OK, 0 rows affected (0.01 sec)

mysql> grant replication slave on *.* to 'ljh15'@'192.168.152.14';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

4、修改从服务器配置文件

[mysqld]
server_id=14
log_bin=master
gtid_mode=on
enforce_gtid_consistency=true
master_info_repository=TABLE
relay_log_info_repository=TABLE
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

5、连接主服务器获取密钥

[root@localhost ~]# mysql -uljh14 -pWWW.1.com -h 192.168.152.12 --get-server-public-key
[root@localhost ~]# mysql -uljh15 -pWWW.1.com -h 192.168.152.13 --get-server-public-key
  • 1
  • 2

6、连接两个主服务器

mysql> change master to
    -> master_host="192.168.152.12",
    -> master_user="ljh14",
    -> master_password="WWW.1.com",
    -> master_auto_position=1 for channel "to_master01";
Query OK, 0 rows affected, 7 warnings (0.01 sec)

mysql> change master to
    -> master_host="192.168.152.13",
    -> master_user="ljh14",
    -> master_password="WWW.1.com",
    -> master_auto_position=1 for channel "to_master02";
Query OK, 0 rows affected, 7 warnings (0.02 sec)

mysql> start slave for channel "to_master01";
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> start slave for channel "to_master02";
Query OK, 0 rows affected, 1 warning (0.00 sec)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/959267
推荐阅读
  

闽ICP备14008679号