mysql中主从复制包括什么意思_Mysql主从复制作用和工作原理

一、什么是主从复制

主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库。在最常用的mysql数据库中,支持单项、异步赋值。在赋值过程中,一个服务器充当主服务器,而另外一台服务器充当从服务器;此时主服务器会将更新信息写入到一个特定的二进制文件中。并会维护文件的一个索引用来跟踪日志循环。这个日志可以记录并发送到从服务器的更新中去。当一台从服务器连接到主服务器时,从服务器会通知主服务器从服务器的日志文件中读取最后一次成功更新的位置。然后从服务器会接收从哪个时刻起发生的任何更新,然后锁住并等到主服务器通知新的更新。

二、主从复制的作用

一是确保数据安全;做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据的丢失。

二是提升I/O性能;随着日常生产中业务量越来越大,I/O访问频率越来越高,单机无法满足,此时做多库的存储,有效降低磁盘I/O访问的频率,提高了单个设备的I/O性能。

三是读写分离,使数据库能支持更大的并发;在报表中尤其重要。由于部分报表sql语句非常的慢,导致锁表,影响前台服务。如果前台使用master,报表使用slave,那么报表sql将不会造成前台锁,保证了前台速度。

三、主从复制的原理

主从复制中涉及的文件

主库: binlog

从库:

relaylog 中继日志

master.info 主库信息文件

relaylog.info relaylog应用的信息

主从复制中涉及的三个线程

主库:

Binlog_Dump Thread :

从库:

SLAVE_IO_THREAD

SLAVE_SQL_THREAD

具体原理如图所示:Mysql主从复制作用和工作原理

1.从数据库执行change master to 命令(主数据库的连接信息+复制的起点)

2.从数据库会将以上信息,记录到master.info文件

3.从数据库执行 start slave 命令,立即开启SLAVE_IO_THREAD 和SLAVE_SQL_THREAD这两个线程

从数据库 SLAVE_SQL_THREAD,读取master.info文件中的信息获取到IP,PORT,User,Pass,binlog的位置信息从数据库SLAVE_IO_THREAD请求连接主数据库,主数据库专门提供一个SLAVE_IO_THREAD,负责和SLAVE_SQL_THREAD交互SLAVE_IO_THREAD根据binlog的位置信息,请求主数据库新的binlog主数据库通过Binlog_DUMP_Thread将最新的binlog,通过网络TP给从数据库的SALVE_IO_THREADSLAVE_IO_THREAD接收到新的binlog日志,存储到TCP/IP缓存,立即返回ACK给主库,并更新master.info9.SLAVE_IO_THREAD将TCP/IP缓存中数据,转储到磁盘relaylog中.SLAVE_SQL_THREAD读取relay.info中的信息,获取到上次已经应用过的relaylog的位置信息SLAVE_SQL_THREAD会按照上次的位置点回放最新的relaylog,再次更新relay.info信息从数据库会自动purge应用过relay进行定期清理一旦主从复制构建成功,主数据库当中发生了新的变化,都会通过 slave_dump_THREAD发送信号给SLAVE_IO_THREAD,增强了主从复制的实时性.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487904.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

吴建平院士:互联网视频技术在疫情防控中的重要作用

来源:互联网天地杂志疫情期间,要关注新一代信息技术助力疫情防控这个主题。最近新的技术非常多,但有一项技术可能被遗忘了,它属于新一代信息技术系列,在防控疾病或生活中发挥着很重要的作用,那就是互联网视…

java比较炫的小程序_推荐三款私藏多年的微信小程序

【小程序】(文后有福利)酷友们,大家好!今天一次性给大家介绍三款实用的微信小程序吧。这三款微信小程序基本上可以卸掉对应的 APP 了。同等功能下的 APP 和 微信小程序,当然会选择后者嘛,不仅消耗内存小,而且方便。1. …

2019年全球数字化转型现状研究报告

来源:Prophet数字化是整个企业范围内的优先战略事项我们的年度《数字化转型现状》研究迎来第五个年头,继续记录企业的不断发展。随着颠覆性技术及其对各大企业和市场的影响力不断加大,我们的研究旨在捕捉促成现代数字化转型的变化和趋势。201…

java settcpnodelay_Python Twisted TCP socket如何设置TCP的NODELAY(禁用Nagle算法)?

我有一个正在继续开发的实时多人游戏(它目前在app store:https://itunes.apple.com/us/app/blewp!-eat-or-be-eaten-mmo/id996122625?mt8)上直播,我使用TCP和UDP发送实时消息(TCP用于需要可靠性的消息,比如玩家死亡),服务器端是用python编写…

magent + memcached部署过程

magent memcached架构图 安装步骤如下: ------------------10.1.64.196 10.1.64.197 10.1.65.104 10.1.65.107 memcached (存储节点)---------------------------------------- yum install gcc mkdir /usr/local/src/memcached cd /usr/local/src/memcached ta…

BBC神作:半导体如何改变世界

来源:电子工程师笔记在纪录片领域BBC一直是打遍天下无敌手的存在作为纪录片王牌制作方近期,BBC与FedEx联合推出了神作Made on Earth系列《The humble mineral that transformed the world》作为零差评的重要一集用叹为观止的精良画面为观众讲述了半导体常…

jmeter练习(5)关联升级版—ForEach控制器(提取多个响应结果并依次传参)

前言:大多数情况下,我们会从上一个请求的响应结果中提取某一个值,作为第二个请求的参数进行传参,但是有时候为了提高测试效率,尽可能制造少的测试数据,我们需要从上一个请求的响应结果中获取某一组相同类型…

“天才少年”曹原再次连发2篇Nature!在魔角石墨烯取得系列新进展

来源:青塔、中国科学技术大学新创校友基金会、纳米人5月7日,被誉为“天才少年”的95后博士曹原分别以第一作者兼共同通讯作者、以及共同第一作者的身份,在《Nature》上连发2篇论文。第一篇Nature论文中,研究人员致力于通过对扭转角…

linux交叉编译aix_mips-linux-gcc交叉编译工具链搭建小结【转】

这几天开始做毕业设计了,MPEG2解码的MIPS实现,代码啥的网上一大堆,最大的困难也许不是理解代码,而是搭建环境,也就是搭建mips-linux-gcc交叉编译的环境。网上铺天盖地的都是arm-linux-gcc工具链的教程,唯独…

单链表的头插法和尾插法c语言实现

/*单链表的头插法和尾插法c语言实现*/ #include <stdio.h>#include <stdlib.h>#include <string.h>#define SIZE 100/*简单的定义一个链表节点的数据单元*/typedef struct student_t{ int num; char name[SIZE]; struct student_t* pNext;}studentList, *pSt…

torry的困惑java代码_Java实现 蓝桥杯VIP 算法提高 Torry的困惑(提高型)

算法提高 Torry的困惑(提高型)时间限制&#xff1a;1.0s 内存限制&#xff1a;512.0MB问题描述Torry从小喜爱数学。一天&#xff0c;老师告诉他&#xff0c;像2、3、5、7……这样的数叫做质数。Torry突然想到一个问题&#xff0c;前10、100、1000、10000……个质数的乘积是多少…

ICLR认知科学@AI workshop一览

来源&#xff1a; 混沌巡洋舰今年ICLR2020顶会有一个特别有意思的专题&#xff0c; 叫认知科学与AI顶会专题。在当下深度学习愈发进入瓶颈期的时代&#xff0c;认知科学和AI的交叉成为大势所趋。一方面我们希望把认知科学或心理学的知识用起来直接指导AI&#xff0c;另一方面我…

MySql某一列累计查询

问题&#xff1a;有一列数据&#xff0c;需要累计显示出来 比如&#xff1a;id salary 查询结果&#xff1a;id salary sumSalary 1 10000 1 10000 10000 2 20000 2 20000 30000 3 30000 3 30000 6…

java中一个线程最小优先数_Java线程的优先级

Java线程可以有优先级的设定&#xff0c;高优先级的线程比低优先级的线程有更高的几率得到执行(不完全正确&#xff0c;请参考下面的“线程优先级的问题“)。记住当线程的优先级没有指定时&#xff0c;所有线程都携带普通优先级。优先级可以用从1到10的范围指定。10表示最高优先…

谷歌AI公布新项目:未来你的宠物可能真的会是“机器”狗!

From: Tech Crunch; 作者&#xff1a;Iris????或许你曾留心过狗是怎么行走的——它们走起路来肌腱运动流畅&#xff0c;步履灵活&#xff0c;并不必去思考下一步要怎么走&#xff0c;走路这个动作是自然而然发生的事情。而同样的动作&#xff0c;机器狗能够处理得这样自然吗…

Sass基础知识及语法

sass Sass是一款强化css的辅助工具&#xff0c;他在css语法中的基础上增加了变量&#xff08;variables&#xff09;、嵌套&#xff08;nested rules&#xff09;、混合&#xff08;mixns&#xff09;、导入&#xff08;inline impoarts&#xff09;等高级功能&#xff0c;这些…

java王大拿谢大脚_《乡村爱情1》:“王大拿”赵本山有3大亮点,追谢大脚根本不算啥...

《乡村爱情》第一部其实导演并不是赵本山&#xff0c;那时候的他和该剧的导演张惠中是好友关系&#xff0c;里面的各大主演除了“王小蒙”王亚彬外其余都是以赵本山的徒弟为主&#xff0c;很多人都是冲着赵本山的名气来观看这部剧的。其实赵本山在《乡村爱情》第一部中饰演的“…

记忆的天空:智能进化三部曲

作者&#xff1a;钟振余&#xff0c;宁波大学 相对于人工智能的快速发展&#xff0c;人类对于生命智能的理解显得很肤浅。由于缺失大脑活动原理的理论指导&#xff0c;人们只能用知识考试去评判一个人的智能&#xff0c;用相当于几岁孩子的智能去比对某些高级动物的智能。事实上…

day27 CRM delete action 嵌入CRM

课程目录:deleteactionpop up window嵌入crm项目权限&#xff08;未讲&#xff09;学员交作业发邮件 代码路径&#xff1a;https://github.com/liyongsan/git_class/tree/master/day27/LuffyCRM 权限预习&#xff1a;http://www.cnblogs.com/alex3714/articles/6661911.html 转…

java中 若干,Java中的随机数发生器。产生若干的复杂性

I am aware that Java uses a Linear congruential generator. My question is- what is the complexity of generating a random number? How do you perform such analyses?解决方案The complexity of generating a random number is O(1). Do you mean "what are its…