MySQL主从复制

主从复制(也称 AB 复制)允许将来自一个MySQL数据库服务器(主服务器)的数据复制到一个或多个MySQL数据库服务器(从服务器)。

建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是实时的业务数据操作,从数据库一般是读取为主。

MySQL中复制的优点包括:

  • 有利于架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的评率,提高单个机器的I/O性能。
  • 数据安全性 - 因为数据被复制到从站,并且从站可以暂停复制过程,所以可以在从站上运行备份服务而不会破坏相应的主数据。做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。
  • 分析 - 可以在主服务器上创建实时数据,而信息分析可以在从服务器上进行,而不会影响主服务器的性能。
  • 远程数据分发 - 您可以使用复制为远程站点创建数据的本地副本,而无需永久访问主服务器。
  • 读写分离,使数据库能支持更大的并发和吞吐量。

mysql主从复制过程(异步)

master开启bin-log功能,日志文件用于记录数据库的读写增删
需要开启3个线程,master IO线程,slave开启 IO线程 SQL线程,
Slave 通过IO线程连接master,并且请求某个bin-log,position之后的内容。
MASTER服务器收到slave IO线程发来的日志请求信息,io线程去将bin-log内容,position返回给slave IO线程。
slave服务器收到bin-log日志内容,将bin-log日志内容写入relay-log中继日志,创建一个master.info的文件,该文件记录了master ip 用户名 密码 master bin-log名称,bin-log position。
slave端开启SQL线程,实时监控relay-log日志内容是否有更新,解析文件内容,生成SQL语句,在slave数据库中执行。

Mysql主从架构-主库宕机如何恢复业务

当从属服务器从放的事件,追赶上主服务器的事件后,从属服务器的 I/O 线程将会处于休眠状态,直到主服务器的事件有更新时,被主服务器发送的信号唤醒。

每个主/从连接有三个线程。具有多个从站的主站为每个当前连接的从站创建一个二进制日志转储线程,每个从站都有自己的I / O和SQL线程。

一句话概括主从复制

在主服务上执行过的修改数据的操作都会在从服务器中执行一遍,这样就保证了数据的一致性。

Mysql主库宕机情况分类:

1)硬件问题,(服务器、ecs、虚拟主机等等)宕机


2)service问题,Mysql宕机,服务异常,端口异常等

硬件问题处理思路

硬件问题我们可以查看IDC巡检记录,或通过远程控制卡查看硬件运行状态,根据事实情况就行硬件故障报修进行处理

MySQL service问题处理思路

1)首先要做的就是判断是否影响业务,是否需要切库,保证业务运行时首要任务
2)如果此时需要切从库,按照如下步骤进行:

先查看MySQL 从库状态
选取一致性最高的从库作为主库。看哪个从库的哪个master.info哪个最新,就说明哪个从库一致性更高,所以此时就确定最新的库为主库。
选个pos最大的作为主库,或利用半同步的功能,直接选择做实时同步的这个从库。
如果主库服务器没down,需要去主库拉取bin-log补全提升主库的从库
所有新的slave指向新的master

mysql双主热备宕机自动切换

通常说的「双机热备」是指两台机器都在运行,但并不是两台机器都同时在提供服务。
当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短。

参考:

Mysql主从架构-主库宕机如何恢复业务
posted @ 2020-12-18 13:03  Lucky小黄人^_^  阅读(447)  评论(0编辑  收藏  举报