600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > MySQL主从同步(一)——原理详解

MySQL主从同步(一)——原理详解

时间:2021-07-04 23:43:11

相关推荐

MySQL主从同步(一)——原理详解

今天继续给大家介绍MySQL相关知识,本文主要内容是MySQL主从的基本原理。

一、MySQL主从同步简介

MySQL主从同步,即MySQL Replication,可以实现将数据从一台数据库服务器同步到多台数据库服务器。MySQL数据库自带主从同步功能,经过配置,可以实现基于库、表结构的多种方案的主从同步。

MySQL主从同步的作用主要有以下几点:

1、故障切换。

2、提供一定程度上的备份服务。

3、实现MySQL数据库的读写分离。

二、MySQL主从同步过程

依据MySQL主从同步的身份,可以将MySQL服务器分为主库和从库两种身份。MySQL从库同步主库的数据,MySQL主库将数据同步给从库。MySQL过程如下所示:

从上图可以看出,MySQL主从同步实现主要有以下三个过程:

1、当有数据更改语句执行时,MySQL主库要在更新数据的同时,写二进制日志,将数据修改的内容记录进入日志中。

2、MySQL从库上运行这一些I/O进程,这个进程会监视MySQL主库上的二进制日志,当发现修改时,会立即同步到自身的中继日志。

3、MySQL从库上还会运行一个SQL进程,该进程用于监视自身的中继日志,当发现自身的中继日志发生改变时,立即将该中继日志改变对应的数据更改操作写入自身的数据库。

三、MySQL主从同步常见方案

(一)M-S

M-S即采用一个MySQL主库,多个MySQL从库的方式,原理如下所示:

M-S的架构,最大的问题在于MySQL主库面临单点瓶颈和单点故障问题,I/O压力过大。

(二)M-S-S

为了环节M-S架构中MySQL主库压力过大的问题,我们还可以采用M-S-S架构,其中一个Slave Relay负责从MySQL主库同步数据,但是其本身并不存在数据,该设备作用仅仅是在日志层面。其他的MySQL从库不是从MySQL主库上同步数据,而是从中继Slave上同步数据,这样一来,就可以缓解Master的I/O压力了,M-S-S架构如下所示:

(三)M-M

M-M即两台数据库互为主备,互相同步,每个数据库的更新都会同步到另一个数据库中,有时,我们还可以采用多台数据库,组成环装更新架构。M-M架构如下所示:

四、MySQL主从同步方式

MySQL主从同步有三种方式,这些方式的差异主要存在于写入日志的内容不同,也会导致MySQL主从同步性能上的区别。

1、基于SQL语句的复制。

基于SQL语句的复制模式的Binlog格式为STATEMENT,在这种模式下,每一条修改数据的SQL语句都会记录到Binlog中,这样做的优点是并不需要记录每一条SQL语句和每一行的变化,减少了二进制日志日志量,节约了I/O。但是会导致某些情况下主、从库数据不一致的场景。

2、基于行的复制。

不记录每条SQL语句,仅记录哪条记录数据被修改了,以及修改后的结果。这样做的优点是不容易出现主、从库数据不一致的场景,但是缺点在于会产生大量日志。

3、混合模式复制。

在混合模式下,边的复制采用基于SQL语句的复制方式,只有当该方式无法复制(比如触发器、存储过程等等)时,才会使用基于行的方式。

原创不易,转载请说明出处:/weixin_40228200

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。