Centos7搭建基于GTID的MySQL主从复制架构
2020-07-12 16:57
411 查看
简介
主从复制(也称 AB 复制)是将来自一个MySQL数据库服务器(主服务器)中的数据复制到一个或多个MySQL数据库服务器(从服务器)中
GTID
从MySQL 5.6.5 开始新增了一种基于 GTID 的主从复制方式,GTID (Global Transaction ID)是全局事务ID,通过 GTID可以保证每一个在主库中提交的事务在整个数据库集群中有一个唯一的ID,因此当在主库上提交事务或者被从库应用时,可以通过ID定位和追踪每一个事务,不用再通过手工去可以找偏移量的值,这种方式强化了数据库的主备一致性,故障恢复以及容错能力。
准备Centos7设备
配置ip和hostname,关闭防火墙和selinux
在/etc/hosts中添加主机名和IP地址映射
hostname | ip |
---|---|
master | 192.168.29.132 |
bak | 192.168.29.138 |
配置MySQL
添加主从复制账号
MySQL5.7:
mysql>grant replication slave on *.* to 'repl'@'%' identified by 'your_password'; mysql>flush privileges;
MySQL8:
mysql>create user 'repl'@'%' identified by 'your_password'; mysql>grant replication slave on *.* to 'repl'@'%'; mysql>flush privileges;
修改master结点的配置文件/etc/my.cnf
[root@master ~]# vi /etc/my.cnf [mysqld] #设置Master主机信息 server-id=1 log-bin=binlog #基于事务的Replication #可以实现基于库的多线程复制,减少主从复制的延迟 #主机配置 gtid_mode=ON #强制执行GTID一致性 enforce_gtid_consistency=1 #设定把master主机信息保存在表中 #默认以文件形式保存 master-info-repository=table relay-log-info-repository=table
备份master主机的数据并导入到bak主机中
在master结点执行备份命令,并传到bak结点中
[root@master ~]# mysqldump -u root -p -A > mydb.sql [root@master ~]# scp mydb.sql root@bak:/tmp/
在bak结点中创建数据库并进行数据导入
[root@bak ~]# mysql -u root -p < /tmp/mydb.sql
配置bak主机的配置文件
[root@bak ~]# vi /etc/my.cnf [mysqld] #基于事务的Replication #可以实现基于库的多线程复制,减少主从复制的延迟 #主机配置 server-id=2 gtid_mode=ON #强制执行GTID一致性 enforce_gtid_consistency=1 #设定把master主机信息保存在表中 #默认以文件形式保存 master-info-repository=table relay-log-info-repository=table
启动bak结点的MySQL服务并进行主从配置
mysql>stop slave; mysql>change master to ->master_host='192.168.29.132', ->master_user='repl', ->master_password='your_password', ->master_auto_position=1 参数含义: master_host:主机IP地址 master_user:主从复制远程主机用户 master_password:主从复制远程主机用户的密码 master_auto_position:自动寻找偏移量
mysql>start slave; mysql>show slave status\G;
查看bak主机中slave状态
Slave_IO_Running: Yes Slave_SQL_Running: Yes
测试验证
master结点操作数据库
mysql> create database mydb; mysql> use mydb; mysql> create table test(id int primary key); mysql> insert into test values(1);
bak结点查看数据
mysql> select * from mydb.test; +----+ | id | +----+ | 1 | +----+ 1 row in set (0.00 sec)
相关文章推荐
- Centos7搭建基于GTID的MySQL主从复制架构
- Centos7搭建基于GTID的MySQL的M-M-S-S架构
- Centos7搭建基于GTID的MySQL的M-M-S-S架构
- MySQL 5.7基于GTID的主从复制环境搭建(一主一从)
- 企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)
- MySQL(十五)之基于ssl加密搭建含有gtid特性的MySQL主从复制
- 企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)
- MySql基于GTID主从复制的搭建
- rhel6系统中,mysql 5.6复制新特性下主从复制配置[基于GTID]
- mysql之 MySQL 主从基于 GTID 复制原理概述
- mysql主从复制--mysql-5.6基于GTID及多线程复制
- Mysql-5.6基于GTID主从复制
- 基于Docker的Mysql主从复制搭建
- mysql主从复制、基于gtid的主从复制、并行复制、半同步
- Mysql主从复制的搭建-基于Docker
- MySQL 主从复制搭建,基于日志(binlog)
- 如何基于 MySQL 主从模式搭建上万并发的系统架构?
- mysql5.6基于GTID的主从复制
- mysql gtid模式主从复制搭建
- MySQL5.6基于GTID的主从复制