数据库集群系列(二):MySQL 5.7.44搭建主从复制模式集群【测试成功】
一、需求背景
项目服务器,因经常频繁断电,出现过核心数据丢失的情况,现需要重构部署,考虑采用集群方式实现。
俩台主机:
192.168.1.137【主数据库】、开启binlog日志
192.168.1.138【从数据库】、未开启binlog日志
二、主从复制技术原理
MySQL主从复制(MySQL Master-Slave Replication)是一种常见的数据库复制技术,用于将一个MySQL数据库的数据复制到另一个MySQL数据库,以保持数据的一致性和可用性。在主从复制中,有一个主服务器(Master)和一个或多个从服务器(Slave)。主服务器上的更改会被异步地传播到从服务器,从而使从服务器上的数据保持与主服务器一致。
主服务器(Master):
从服务器(Slave):
复制进程:
启动复制过程:
同步过程:
主服务器是负责写操作(INSERT、UPDATE、DELETE)的数据库服务器。
所有的写操作和更改都发生在主服务器上。
主服务器将更改记录到二进制日志(Binary Log)中,该日志包含对数据库执行的所有更改的二进制表示。
从服务器是负责读操作的数据库服务器。
从服务器通过连接到主服务器并请求二进制日志中的更改来保持数据同步。
从服务器将主服务器的二进制日志复制到自己的本地中继日志(Relay Log)。
主服务器上有一个复制进程,它负责将二进制日志中的更改发送到从服务器。
从服务器上也有一个复制进程,它负责从主服务器获取二进制日志,并将其应用到从服务器的本地数据库中。
在设置主从复制之前,需要确保主服务器上的二进制日志启用,并配置一个用于复制的用户,该用户必须具有复制权限。
从服务器通过执行CHANGE MASTER TO
语句来告知主服务器它将连接到哪个主服务器,并使用哪个用户进行复制。
当主服务器上的数据发生更改时,这些更改被记录到二进制日志中。
从服务器的复制进程定期检查主服务器的二进制日志,将尚未复制的更改复制到从服务器上。
从服务器将复制的更改记录到自己的本地中继日志中,并应用这些更改到本地数据库。
三、主服务器配置(Master)
1、两台服务器安装同版本数据库(略)。
2、配置文件开启binlog日志
vim my.cnf
#binlog刷盘策略
sync_binlog=1
##需要备份的数据库
binlog-do-db=test
##不需要备份的数据库
binlog-ignore-db=mysql
##启动二进制文件
log-bin=mysql-bin
##服务器ID
server-id=137
<br>
#########
#sync_binlog参数:
<br>
0 :存储引擎不进行binlog的刷新到磁盘,而由操作系统的文件系统控制缓存刷新。
1:每提交一次事务,存储引擎调用文件系统的sync操作进行一次缓存的刷新,这种方式最安全,但性能较低。
n:当提交的日志组=n时,存储引擎调用文件系统的sync操作进行一次缓存的刷新。