青蛙学Linux—MySQL主从复制

MySQL主从复制基于MySQL官方提供的MySQL Replication技术,实现了数据从一个主服务器向一个或多个从服务器的同步。主从复制不仅是一种备份方式,更为MySQL高可用提供了数据同步的基础。

1、MySQL Replication原理

在MySQL Replication中,主服务器称为Master,从服务器称为Slave。Slave会从Master上拉取MySQL的二进制日志文件(Binary Log),然后将该日志解析为SQL语句并完全顺序的执行这些SQL语句以达到与Master上执行同样的SQL的效果,保证数据的一致性。

整个过程具体如下:

  1. Slave上起一个IO线程,连接Master,然后请求从指定位置开始的Binary Log内容
  2. Master在接收请求之后读取指定位置开始的Binary Log内容并通过自身的IO线程返回给Slave的IO线程,返回的信息不仅包括Binary Log日志中的内容,还包括Binary Log日志的名称和这些信息在Binary Log中的位置
  3. Slave在接收到信息后,将获取到的Binary Log内容写入Relay Log中(名为mysql-relay-bin.xxx的文件),并将Binary Log的文件名和这些信息在Binary Log中的位置记录到名为master-info的文件中
  4. Slave的SQL线程在监测到Relay Log的更新后会马上解析Relay Log并生成SQL语句,然后执行这些SQL语句。至此,整个主从复制过程结束

虽然MySQL的主从复制是异步的,但其性能非常高效,延时非常小。

注意:Slave会从Master上拉取Binary Log,所以在Master上必须开启MySQL的Binary Log功能。

原文地址:https://www.cnblogs.com/yu2006070-01/p/10336146.html

时间: 2024-10-12 01:29:55

青蛙学Linux—MySQL主从复制的相关文章

青蛙学Linux—MySQL常用命令

1.连接和退出MySQL 1.1.连接MySQL 可以使用第三方客户端工具连接MySQL,也可以使用MySQL提供的命令行工具连接MySQL.命令行工具位于MySQL安装目录下的bin目录中,名为mysql,命令格式如下: ./mysql [-h 远程MySQL主机地址] -u 用户名 -p密码 注意:-u后面可以有空格,也可以没有空格.但是-p后面绝对不能有空格,否则MySQL会提示密码错误. 使用mysql工具也可以连接远程MySQL主机. 建议:使用mysql工具时,建议不要在-p后面直接

linux Mysql 主从复制 原理介绍和步骤详解

大家好,我是霸王卸甲,今天我给大家带来的是linux数据库中的主从复制的简单介绍和步骤详解. 主从复制 mysql主从复制 灵活 一主一从 主主复制 一主多从---扩展系统读取的性能,因为读是在从库读取的: 多主一从---5.7开始支持 联级复制--- 用途及条件 mysql主从复制用途 实时灾备,用于故障切换 读写分离,提供查询服务 备份,避免影响业务 主从部署必要条件: 主库开启binlog日志(设置log-bin参数) 主从server-id不同 从库服务器能连通主库 主从原理mysql主

linux mysql主从复制配置

1.设置主库master的servie-id值并且开启bin-log功能参数vi /etc/my.cnf修改my.cnf的参数:[mysqld]server-id=1 //每一个库的server-id必须都不一样log-bin=mysql-bin 2.检查参数是否成功设置并重新启动egrep "server-id|log-bin" /etc/my.cnf重启命令见:mysql安装或mysql数据库多实例 3.登录数据库检查参数的更改情况show variables like 'serv

青蛙学Linux—系统初始化init及运行级

1.什么是init和运行级 1.1.init Linux系统的启动首先从BIOS开始,接下来Linux的引导程序将内核映像加载到内存,进行内核初始化.在内核初始化的最后一步,就是启动PID为1的init进程,这个进程是系统的第一个进程,负责启动那些开机时需要启动的服务. 大多数的Linux发行版的init系统都是和System V兼容的,所以也被称为sysinit,这是最早也是最流行的init系统.sysinit概念简单清晰,主要依赖于shell脚本.它一次一个串行启动进程,导致了它的致命缺点,

青蛙学Linux—文本编辑器Vi/Vim

1.Vi和Vim 1.1.简介 Vi是Linux和Unix下最基本的文本编辑器,工作在字符模式下,没有图形界面,使用众多的命令和按键来进行操作.所有的Linux和Unix都会默认安装Vi,而且任何版本的Linux和Unix的Vi编辑器都是完全相同的. Vim是一个在Vi基础上改进的文本编辑器.在Vi强大的功能上增加了新的功能,如代码补全.代码高亮等. 1.2.三种模式 vi/vim可分为三种模式,分别为命令模式(Command mode).输入模式(Insert mode)和底线命令模式(Las

青蛙学Linux—用户、组、权限和文件属性

1.用户和组 1.1.用户角色 在Linux下有以下三种角色用户: 超级用户:拥有对系统的最高管理权限的用户,默认用户名为root.需要注意的是,与Windows下的超级管理员Administrator不同,root用户在Linux下拥有最高的权限,你可以使用root用户运行rm –rf /命令删除整个系统,而Administrator用户不允许删除系统文件(其实Windows下的最高权限用户为System,只是Windows限制了使用System用户登录的行为). 普通用户:只能操作自己目录下

青蛙学Linux—Nginx配置文件详解

Nginx的配置文件位于Nginx安装目录下的conf目录下,nginx.conf为其主要的配置文件,Nginx的主要功能都在该文件中进行配置. 1.main和event部分详解 我们先来看下nginx.conf中这一部分的内容: #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid lo

青蛙学Linux—Zabbix部署之安装和配置Zabbix

1.安装Zabbix Server Zabbix Server安装路径/usr/local/zabbix. 安装依赖环境: [[email protected] zabbix-3.4.15]# yum install net-snmp net-snmp-devel curl curl-devel libxml2 libevent libevent-devel 创建虚拟用户用于运行Zabbix守护进程(如果使用普通用户运行Zabbix,那么Zabbix会以该用户身份运行守护进程:如果以root用户

青蛙学Linux—Zabbix Web使用之Zabbix发现功能②主动客户端自动注册

主动客户端自动注册功能是Zabbix Agent主动向Zabbix Server进行注册.该功能适用于特定的环境中,如当我们无法确定新增主机的IP地址段时就可以使用该功能. 实现主动客户端自动注册功能,需要两个步骤:1.在Zabbix Agent的配置文件中添加元数据:2.在Zabbix Web中配创建一个动作. 这里以向当前的监控架构中添加一台新的主机(主机D)来演示如何实现主动客户端自动注册功能. 新添加的主机配置如下: 操作系统:CentOS 6.10 IP:192.168.0.61 Za