1 / 29
文档名称:

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

格式:doc   大小:366KB   页数:29页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

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

上传人:rdwiirh 2020/6/13 文件大小:366 KB

下载得到文件列表

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

文档介绍

文档介绍:mysql主从复制以及读写分离之前我们已经对LNMP平台的Nginx做过了负载均衡以及高可用的部署,今天我们就通过一些技术来提升数据的高可用以及数据库性能的提升。一、mysql主从复制首先我们先来看一下主从复制能够解决什么问题。1、数据库简介 在现在的世界发展的道路上,数据已经是必不可缺的一部分了,对数据的安全性,也成为了现在的一个值得探讨的问题。那有什么方法能够解决数据的安全性呢?          我们通过mysql本身的功能来实现数据的备份,之前我们也对数据可的数据进行了一些备份,但是那些都不是很好的解决办法,因为无论之前的导入导出也好,还是直接对数据库所在目录直接进行拷贝,这些技术不能保证实时性,而我们今天所介绍的就是能够对数据库实现热备份,从而提高数据库的安全性——mysql主从复制2、主从复制原理1)mysql支持的复制类型       (1)基于语句的复制。在主服务器上执行的sql语句,在从服务器上执行同样的语句。mysql默认使用基于语句的复制,效率比其他方式较高。       (2)基于行的复制,把改变的内容复制过去,而不是在从服务器上在执行一遍。       (3)混合复制类型,默认采用基于语句的复制,一旦发现基于语句无法精确复制时,就会采用基于行的复制。2)复制的工作过程mysql复制的工作过程如下所示:图1mysql复制的工作过程       (1)在每个事务跟新完成之前。master在二进制日志记录这些改变。写入二进制日志完成后,master通知存储引擎提交事务。       (2)Slave将Master的Binarylog复制到其中继日志。首先,slave打开一个工作线程——I/O线程,I/O线程在Master上打开一个网络连接,然后开始Binlogdumpprocess。Binlogdumpprocess从Master的二进制日志中读取事件,如果已经成功链接到Master,他会进行睡眠并等待Master产生新的事件。I/O线程将这些事件写入中继日志       (3)SQLslavethread(SQL从线程)处理该过程的最后一步。SQL线程从中继日志读取事件,并重放其中的事件而更新Slave的数据,使其与Master中的数据一致,只要该线程与I/O线程保持一致,中继日志通常会位于OS的缓存中,所以中继日志开销很小。       以上就是mysql主从复制的原理,Slave可以有多台,主服务也可以有多台,可以使用keepalived做HA的高可用性,建议mysql的数据不要只放在共享存储上,而是每个Slave都拥有一个单独的存储存放数据。       复制的过程中有一个很重要的限制,即复制在Slave上是串行化的,也就是说Master上的并行更新操作不能在Slave上并行操作,也就是不能同时执行。3、mysql读写分离原理       简单来说就是实现读与写的分离(图2)就是读在从服务器上读取数据,在写数据的时候是写在主服务上的。基本原理就是让主服务器处理一些简单的事务性查询,而从服务器处理select查询、数据库复制被用来把事务性查询导致的变更同步到集群的从数据库中。图2       目前较为常见的Mysql读写分离分为两种1)基于程序代码内部实现       在代码中根据select 、insert进行路由分类,这类方法也是目前生产环境下应用最广泛的。优点是性能较好,因为程序在代码中实现,不需要增加额外的硬件开支:缺点是需要开发人员来实现,运维人员无从下手。2)基于中间代理层实现       代理一般介于应用服务器和数据库服务器之间,代理数据库服务器接收到应用服务器的请求后根据判断后转发到,后端数据库,有以下代表性的程序。(1)mysql_proxy。mysql_proxy是Mysql的一个开源项目,通过其自带的lua脚本进行sql判断,虽然是mysql的官方产品,但是mysql官方并不推荐将其部署在生产环境下。(2)Atlas。是由 Qihoo360,Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它是在mysql-,对其进行了优化,增加了一些新的功能特性。360内部使用Atlas运行的mysql业务,每天承载的读写请求数达几十亿条。支持事物以及存储过程(3)Moeeba。由阿里巴巴集团在职员工陈思儒使用序java语言进行开发,阿里巴巴集团将其用户生产环境下,但是他并不支持事物以及存数过程。       我们今天所演示的就是amoeba这款软件。、案例环境       本案例使用5台服务器搭建,具体拓扑如图3所示图3      .

最近更新

2025年3A译林英语期末练习卷答案 4页

2025年30米T梁后张法预应力梁施工方案 11页

2025年2监理部每月工作报表 21页

2025年26个英语字母第一课时教学设计 4页

2025年220KV降压变电所电气一次部分初步设计 56页

2025年1教师个人专业发展五年规划 4页

2025年15软包工程检验批质量验收记录表 9页

2025年10个顶尖销售话术 5页

2025年100字读后感 4页

2025年1.春初中语文教案 10页

2025年09产品设计与消费心理 32页

2025年04暖通空调专业施工图出手质量要求 8页

2025年施工方案电力设施保护区内路基土石方工.. 20页

2025年施工方案玻璃棉保温专项施工方案 10页

2025年施工方案焙烧车间脚手架施工方案 27页

2025年施工方案混凝土浇筑施工方案 17页

2025年施工方案泰钢高炉鼓风机站钢结构施工方.. 40页

2025年施工企业工程有限公司质量管理手册 42页

2025年新版医疗产品研究检验中心质量手册 90页

2025年数字通信系统的MATLAB设计与仿真本科毕.. 68页

2024年长沙民政职业技术学院单招职业技能测试.. 76页

高二(下学期)期末物理试卷及答案解析 24页

连铸坯表面裂纹形成及防止研究学习教案 32页

北师大版高一下数学教学计划6篇范文 20页

耶稣降生查经稿讲章 5页

房地产财务分析报告范本(共22页) 22页

传授菩萨戒仪轨 18页

《佛教念诵集》(早课)简体注音校正版 30页

洽购文件登记表 1页

磨辊轴承更换技术方案 4页