mysql主从复制以及读写分离.docx


立即下载 小狮子
2025-02-02
复制 数据 mysql 线程 日志 Master 语句 数据库 事件 I O
253.8 KB

mysql主从复制以及读写分离
之前我们已经对LNMP平台的Nginx做过了负载均衡以及高可用的部署,今天我们就通过一些技术来提升数据的高可用以及数据库性能的提升。
一、mysql主从复制
首先我们先来看一下主从复制能够解决什么问题。
1、数据库简介
在现在的世界发展的道路上,数据已经是必不可缺的一部分了,对数据的安全性,也成为了现在的一个值得探讨的问题。那有什么方法能够解决数据的安全性呢?
我们通过mysql本身的功能来实现数据的备份,之前我们也对数据可的数据进行了一些备份,但是那些都不是很好的解决办法,因为无论之前的导入导出也好,还是直接对数据库所在目录直接进行拷贝,这些技术不能保证实时性,而我们今天所介绍的就是能够对数据库实现热备份,从而提高数据库的安全性——mysql主从复制
2、主从复制原理
1)mysql支持的复制类型
(1)基于语句的复制。在主服务器上执行的sql语句,在从服务器上执行同样的语句。mysql默认使用基于语句的复制,效率比其他方式较高。
(2)基于行的复制,把改变的内容复制过去,而不是在从服务器上在执行一遍。
(3)混合复制类型,默认采用基于语句的复制,一旦发现基于语句无法精确复制时,就会采用基于行的复制。
2)复制的工作过程
mysql复制的工作过程如下所示:
图1mysql复制的工作过程
(1)在每个事务跟新完成之前。master在二进制日志记录这些改变。写入二进制日志完成后,master通知存储引擎提交事务。
(2)Slave将Master的Binary log复制到其中继日志。首先,slave打开一个工作线程——I/O线程,I/O线程在Master上打开一个网络连接,然后开始Binlog dump process。 Binlog dump process从Master的二进制日志中读取事件,如果已经成功链接到Master,他会进行睡眠并等待Master产生新的事件。I/O线程将这些事件写入中继日志
(3)SQL slave thread (SQL 从线程)处理该过程的最后一步。SQL线程从中继日志读取事件,并重放其中的事件而更新Slave的数据,使其与Master中的数据一致,只要该线程与I/O线程保持一致,中继日志通常会位于OS的缓存中,所以中继日志开销很小。
以上就是mysql主从复制的原理,Slav


复制/数据/mysql/线程/日志/Master/语句/数据库/事件/I/O/ 复制/数据/mysql/线程/日志/Master/语句/数据库/事件/I/O/
-1 条回复
登录 后才能参与评论
-->