欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > mysql 主从同步原理及其工作过程

mysql 主从同步原理及其工作过程

2025/2/10 20:23:07 来源:https://blog.csdn.net/qq_74344727/article/details/145480492  浏览:    关键词:mysql 主从同步原理及其工作过程

简述mysql 主从同步原理及其工作过程,配置一主两从并验证。

一、主从同步的原理:

1. Slave数据库会开启两个线程(I/O线程和SQL线程)。

        I/O线程用于接收Master端的二进制日志(binlog),并将这些日志写入本地的relay log(中继日志)中。

        SQL线程则读取本地的relay log,并执行其中的SQL语句,从而在Slave数据库上重放这些操作。

2. 当Master数据库进行了数据更改后,这些更改首先会被记录在binlog日志中。然后,Master数据库的Dump线程(也称为Binlog Dump线程)会将这些binlog日志推送给Slave数据库。

3. 在Slave数据库内,接收到的binlog日志会被写入relay log(中继日志)中。

4. Slave数据库中的SQL线程会读取relay log中的日志,并执行其中的SQL语句,从而在Slave数据库上重放这些操作,实现数据的同步。

二、基于binlog的主从同步

配置之前cat /var/lib/mysql/auto.cnf  (两个机的内容不一样)

(1)主库操作
1.vim  /etc/my.cnf.d /mysql-server.cnf:配置主配置文件,添加一个server_id

可以添加一条:log-bin=mysql-bin:用于手动添加mysql的日志存放信息

2.在数据库中创建用户,以及授权,修改master库的密码加密方式

3.查看主配置状态:show master status;

4.systemctl stip firewalld:关闭防火墙

5.setenforce 0:关闭selinux

(2)从库操作:show slave status \G;

1.vim  /etc/my.cnf.d /mysql-server.cnf:配置主配置文件,添加一个server_id

2.在从mysql上进行部署,连接主库

注释:从库指向主库创建的host,用户名,密码,二进制文件,以及节点

3.start  slave:开启主从

4.systemctl stop firewalld

5.setenforce 0

6.show slave status \G:检测是否成功

(3)测试:

主库创建数据库:create database master;

从库:

三、基于gtid的主从同步

前提:若是使用了binlog,则需要先暂停slave:stop slave

(1)主库操作

1.vi /etc/my.cnf.d/mysql-server.cnf 

2.systemctl  restart mysqld

(2)从库操作

1.vi /etc/my.cnf.d/mysql-server.cnf 

测试是否开启

3.在数据库上进行跟主部署(关闭slave,配置内容,开启slave)

这里master_auto_position为 1 表示使用 GTID 自动定位。

四。如果仅想让主库进行操作数据,而从库仅读取操作:

 vi /etc/my.cnf.d/mysql-server.cnf 进行添加内容

五。mysql的并行复制:

查看slave线程信息:show processlist;

默认情况下slave中使用的是sql单线程回放

在master中多用户读写,如果使用sql单线程回放那么会造成组从延迟严重

开启mysql的多线程回放可以解决以上问题

 vi /etc/my.cnf.d/mysql-server.cnf 进行添加内容

效果展示:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com