MySQL实现主从复制及MySQL的半同步复制

前言:

(1)什么是主从复制

主从复制,是用来建立一个和数据库未完全一样的数据库环境,称为从数据库,主数据库

一般是准时的业务数据库。

 

(2)为什么要作主从复制

1、作数据的热备,作为后备数据库,主数据库服务器发生故障后,可以切换到从数据库继

续进行工作,避免数据丢失。

2、架构的扩张,业务量越来越大,IO访问频率过高,单机无法满足,此时作多库的存储,

降低磁盘I/O访问的频率,提高单个机器的I/O性能。

3、实现读写分离时数据库能支撑更大的并发,在报表中尤其重要,由于部分报表sql语句非

常的慢,导致报表影响前台的服务,如果前台使用master,报表使用slave,那么报表sql将不

会造成前台锁,保证前台的速度。

 

(3)主从复制的原理?

1、数据库有个bin-log二进制文件,记录了所有的sql语句

2、我们的目标就是把主数据库的bin-log文件的sql语句复制过来。

3、让其在从数据的relay-log重做日志文件中再执行一下sql语句即可。

4、下面的主从配置就是围绕这个原理进行的配置

5、具体需要三个线程来进行操作:

1、 binlog输出线程:每当有从库连接到主库的时候,主库都会创建一个

线程然后发送binlog内容到从库,在从库里,当复制开始的时候,从库

就会创建两个线程进行处理。

2、从库I/O线程:当START SLAVE语句在库开始执行后,从库创建一个I/O

线程,该线程连接到主库并请求主库发送binlog里面的跟新记录到从库上,

从库I/O线程读取主库binlog。输出线程发送的更新并且拷贝这些更新到

本地文件,其中包括relay log 文件

3、从库的SQL线程:从库创建一个SQL线程,这个线程读取从库I/O线程

写道relay log更新事件并执行。

可以知道,对以每一个主从复制的连接,都有三个线程,拥有多个从库的主库

为每一个连接到主库的从库创建一个binlog输出线程,每一个都有它自己的I/O

线程和SQL线程。

 

(4)主从复制的过程?

1、主数据库(Master)将更新信息写入二进制日志文件中,这里

需要注意的是四版本的MYSQL数据库默认是不开二进制日志的,强烈

建议在安装数据库启动之前一定先检查一下二进制文件是否开启,即

使不做主从复制架构也要开启,否则当数据库启动之后再开启二进制

日志时需要重新加载数据库。

2、从数据库(Slave)开启一个I/O工作线程,通过该I/O线程与主数据库

建立一个普通客户端连接,主数据库会启动一个二进制日志传输线程,从数据库

的I/O线程通过这个传输线程读取主库上的变更时间,并将变更时间记录到中继

日志中(relay_lop),如果从数据库的IO线程读取速度追赶上主库的时间变更,

在没有得到跟新的通知时,IO线程会进入Sleep状态。

3、从数据库还会开启一个SQL Thread线程,这个线程从中继日志(relay_log)

中读取变更事件,并将变更同步到从数据库中,同时,可以通过配置选项,除了

将变更存储到数据库中,也可以将变更时间同时存储在从数据库的二进制日志中

 

(5)mysql主从复制存在的问题:

主库宕机后,数据可能发生丢失

从库只有一个sql Thread 主库写压力大,复制很可能延时

 

正文:

进行环境的配置:

master主库:server1(172.25.68.1)

salve从库    :  server2(172.25.68.2)

 

一、进行数据库的安装

(1)master机和slave机都安装mysql

这里我们使用:mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar(可以进行官网的下载)

tar xf mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar   ###进行压缩包的解压

(2)在server1和server2上进行软件的安装

yum install mysql-community-client-5.7.24-1.el7.x86_64.rpm  mysql-community-common-5.7.24-1.el7.x86_64.rpm  mysql-community-devel-5.7.24-1.el7.x86_64.rpm
mysql-community-libs-5.7.24-1.el7.x86_64.rpm mysql-community-libs-compat-5.7.24-1.el7.x86_64.rpm mysql-community-server-5.7.24-1.el7.x86_64.rpm
  ###进行软件的安装



 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值