MySQL主从复制,并行复制,半同步复制和组复制

本文详细介绍了MySQL的主从复制、基于GTID的主从复制、并行复制、半同步复制以及组复制的原理与配置。通过实例展示了如何设置和管理这些复制模式,确保数据的安全性和一致性。
摘要由CSDN通过智能技术生成
主从复制

主从复制过程存在三个线程,Master端的I/O线程,Slave的I/O线程与SQL线程。Master端需要开启binlog日志,Slave端需要开启relaylog。
1、Slave端的I/O读取master.info文件,获取binlog文件名和位置点,然后向Master端的I/O线程请求,该binlog文件名和位置点的binlog信息。
(master.info文件在配置主从复制时使用change master命令来指定生成)
2、Master端的I/O线程会根据Slave端的I/O线程请求的信息来读取Master的binlog日志信息与及读取到最新的binlog文件名和位置点一同返回给Slave的I/O线程。
3、Slave端的I/O线程会把获取到的binlog日志写入relaylog(中继日志)文件中,并且更新master.info文件信息。(把读取到Master最新的binlog日志文件名和位置点更新到master.info文件中,下一次当前位置去读取Master的binlog日志)
4、Slave端的SQL线程会定期读取relaylog,把二进制的日志解析成SQL语句,并执行这些SQL语句,同步数据到从库中。
图解:
在这里插入图片描述
注: mysql 数据库的版本,两个数据库版本要相同,或者 slave 比 master 版本高

主从复制

环境:
Server1(master):172.25.24.1
Server2(slave):172.25.24.2
Mysql 版本:5.7
本篇博客中涉及的所有软件包下载可参考此博客:https://blog.csdn.net/qq657886445/article/details/83662696

Server1
安装 mysql
在这里插入图片描述

vim /etc/my.cnf 修改配置文件 并开启 mysql
在[mysqld]下添加以下参数
server-id=1                        #必须为 1 到 232-1 之间的一个正整数值
log-bin=mysql-bin              #启动二进制日志系统

在这里插入图片描述

mysql 初始化

cat /var/log/mysqld.log | grep password   #查看初始密码
mysql_secure_installation          #安全初始化  Westos.3q

Enter password for user root:             #输入从日志中查看到的密码
Change the password for root ? ((Press y|Y for Yes, any other key for No) :  #是否修改root密码,此处回车即可
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y    #是否移除匿名用户
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y   #是否禁止root用户远程登陆
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y   #是否移除test测试库
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y       #是否刷新数据库授权表

在这里插入图片描述

登陆 mysql 进行授权

GRANT REPLICATION SLAVE ON *.* TO redhat@'%' IDENTIFIED BY 'Westos.3q';

在这里插入图片描述

Server2
安装 mysql
在这里插入图片描述

vim /etc/my.cnf 修改配置文件 并开启 mysql
添加
server-id=2

在这里插入图片描述

mysql 初始化 #密码在/var/log/mysqld.log 中查看
在这里插入图片描述

登陆 mysql 指定要复制的 master,并开启 slave

change master to master_host='172.25.24.1',master_user='redhat',master_password='Westos.3q',master_log_file='mysql-bin.000003',master_log_pos=995;   #指定要复制的 master   在master主机中登陆数据库show master status; 查看master_log_file和master_log_pos
start slave;      #开启 slave

在这里插入图片描述

show slave status \G;     #查看 slave 状态信息,以下两个线程为 Yes 表示连接成功即主从复制配置完成
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

在这里插入图片描述

基于gtid主从复制

GTID:
1)全局事务标识:global transaction identifiers。
2)GTID是一个事务一一对应,并且全局唯一ID。
3)一个GTID在一个服务器上只执行一次,避免重复执行导致数据混乱或者主从不一致。
4)GTID用来代替传统复制方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值