MySQL主从复制原理配置
Posted 何波安的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL主从复制原理配置相关的知识,希望对你有一定的参考价值。
mysql复制介绍
MySQL复制是从服务器复制到一个或多个从服务器的异步过程,整个复制过程主要由三个线程来完成,其中一个I/O线程在主服务器端,另外两个线程(SQL线程和IO线程)在从服务端。要实现MySQL复制,首先要在主服务器上打开MySQL的Binary Log功能
复制详细过程如下
1、首先从服务器上的I/O线程连接上主服务器,然后请求从指定的日志文件的日志内容
2、主服务器在接收到来自从服务器的I/O线程请求后,通过自身的I/O线程,根据请求信息读取指定的日志信息,并返回给从服务器的I/O线程。
3、从服务器的I/O线程接收到信息后,将获取到的日志内容依次写入从服务器端的中继日志文件(类似于mysql-relay-bin.xxxxx)的最后,并且将读取到主服务器端的二进制日志的文件名和位置记录到一个名为master-info文件中,以便下次读取的时候可以迅速定位从哪个位置开始往后读取日志信息
4、从服务器的SQL线程在检测到中继日志文件中新增加了内容后,会马上解析该中继日志文件中的内容,将日志内容解析为SQL语句,然后再执行这些SQL,由于服务器端和主服务器端执行了同样的SQL操作,所以两端的数据是完全一样的,至此整个复制过程结束
MySQL复制技术在实际应用中有多种实现架构
一主一从: 一个主服务器和一个从服务器,这是最常见的架构
一主多从: 一个主服务器个两个或两个以上的从服务器,经常用在写操作不频繁、查询量比较大的业务环境中
双主互备: 两个MySQL服务器互相将对方作为自己的主服务器,自己又同时作为对方的从服务器来进行复制
双主多从: 就是双主互备,然后再加上多个从服务器
MySQL复制的各种部署之前,有一些必须遵守的规则
1、同一时刻只能有一个主服务器进行写操作
2、一个主服务器可以有多个从服务器
3、无论是主服务器还是从服务器,都要确保各自服务器ID唯一
4、一个从服务器可以将从服务器获得的更新信息传递给其他的从服务器,依次类推
一主一从配置
ip地址 | hostname | 系统版本 | 数据库版本 | 角色 |
192.168.88.1 | c1.heboan.com | CentOS7.2.1511 | 5.5.56-MariaDB | master |
192.168.88.2 | c2.heboan.com | CentOS7.2.1511 | 5.5.56-MariaDB | salve |
安装
yum -y install mariadb-server mariadb systemctl start mariadb mysqladmin -uroot -p password ‘123456‘ #设置root密码 #安装完成后的目录结构 /var/lib/mysql/ 数据文件存放路径,可自定义 /etc/my.cnf 配置文件 /usr/lib64/mysql 库文件路径 /usr/bin/mysql* 二进制可执行文件路径 /var/log/mariadb/ /var/log/mariadb/mariadb.log 日志文件地址
以上是关于MySQL主从复制原理配置的主要内容,如果未能解决你的问题,请参考以下文章