当前位置: 首页 > article >正文

MySQL:简述数据库的主从复制

MySQL主从复制是指数据可以从一个MySQL数据库主节点复制到一个或多个从节点。

MySQL默认采用异步复制方式,这样从节点不用一直访问主节点来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主节点中的所有数据库或者特定的数据库,或者特定的表。

一、MySQL主从复制的原理

1、当master主节点上的数据发生改变时,会将其改变写入binlog文件中。
2、slave从节点会在一定时间间隔内,探测master主节点的binlog文件是否发生改变,如果发生改变,则启动一个I/O线程请求master主节点的二进制事件。同时,master节点为每个I/O线程启动一个log dump线程,用于向其发送二进制文件。
3、slave从节点获取二进制文件后,会保存至从节点本地的relay log(中继日志)中。随后,slave从节点将启动SQL线程从中继日志中读取二进制日志,并解析成sql语句逐一执行,使得其数据和主节点的保持一致,最后I/O线程和SQL线程将进入睡眠状态,等待下一次被唤醒。

注意:
1、master主节点需要开启binlog二进制日志功能,然后需要授予slave从节点远程连接的权限(通常为了数据安全考虑,slave从节点也开启binlog功能)。
2、Mysql复制至少需要两个Mysql的服务,当然Mysql服务可以分布在不同的服务器上,也可以在一台服务器上启动多个服务。
3、Mysql复制最好确保master主节点和slave从节点上的Mysql版本相同(如果不能满足版本一致,那么要保证master主节点的版本低于slave从节点的版本)。
4、master主节点和slave从节点间的时间需同步。
在这里插入图片描述

二、MySQL主从复制的具体步骤

1、从节点通过手工执行change master to 语句连接主节点,提供了连接的用户一切条件(user 、password、port、ip),并且让从节点知道,二进制日志的起点位置(file名、position号); start slave。
2、从节点的IO线程和主节点的dump线程建立连接。
3、从节点IO线程根据change master to语句提供的file名和position号,向主节点发起binlog的请求。
4、主节点dump线程根据从节点的请求,将本地binlog以events的方式发给从节点IO线程。
5、从节点IO线程接收binlog events,并存放到本地relay-log中,传送过来的信息,会记录到master.info中。
6、从节点SQL线程应用relay-log,并且把应用过的记录到relay-log.info中,默认情况下,已经应用过的relay 会自动被清理purge。


http://www.kler.cn/a/283196.html

相关文章:

  • Git在版本控制中的应用
  • Java 责任链模式 减少 if else 实战案例
  • Vue.js 项目创建流程
  • 【VIM】vim 常用命令
  • 解决Anaconda出现CondaHTTPError: HTTP 000 CONNECTION FAILED for url
  • uni-app移动端与PC端兼容预览PDF文件
  • 08:字符串
  • 用mintupgrade工具将Linux Mint 21.3升级到Linux Mint 22失败的解决办法
  • Python私教张大鹏FastAPI开源框架和项目第一次整理 20240830
  • chapter09-OOP高级部分——(抽象类模版设计模式)——day12
  • Android APK打包脚本
  • 非阻塞式定时器 apscheduler
  • 力扣8.28
  • 2024年八大在线流程图工具推荐,快来试试吧!
  • 基于asp.net的在线考试系统源码分享
  • Mysql8.x配置详解
  • 回归预测|基于CNN-LSTM-Attention结合Adaboost集成数据预测Matlab程序 多特征输入单输出
  • 喜羊羊做Python二级(模拟考试--易错点)
  • 算法练习: 矩阵置零
  • 对于虚拟机上的相关命令
  • leetcode 19.删除链表的倒数第N个结点
  • LuaJit分析(七)LuaJit -b 命令分析
  • Linux基础 -- 网络工具之curl使用
  • 【JAVA】后端开发中的数据结构:基础知识与应用场景
  • 从 7000 余项目脱颖而出,飞轮科技《新一代实时分析数据仓库解决方案》荣获 HICOOL 2024 全球创业大赛二等奖
  • Oracle字符串聚合函数LISTAGG