应用办公生活信息教育商业
投稿投诉
商业财经
汽车智能
教育国际
房产环球
信息数码
热点科技
生活手机
晨报新闻
办公软件
科学动态
应用生物
体育时事

再深入一点binlog和relaylog到底长啥样?

  上一篇mysql面试的文章之后收到不少朋友的意见,希望深入讲讲复制、日志的格式这些,今天,我们就来深挖一下mysql的复制机制到底有哪一些,以及binlog和relaylog的结构到底是什么样子的。binlog作用
  binlog的主要作用是记录数据库中表的更改,它只记录改变数据的sql,不改变数据的sql不会写入,比如select语句一般不会被记录,因为他们不会对数据产生任何改动。
  用一个实际的场景看下binlog产生的过程,准备sql:createtabletest(textvarchar(20));insertintotestvalues(testtext);selectfromtest;flushlogs;
  查看binlogshowbinlogeventsinbinlog。000029;
  显示的结果如下:
  另外,也可以使用mysqlbinlog工具来查看binlog的内容:showvariableslikelog;查看日志目录mysqlbinlogshortformforceifopenbase64outputneverusrlocalvarmysqlbinlog。000029
  从日志我们可以看到执行了创建表的语句以及一个Formatdesc头和Ratate轮换事件,这个我们会在后面讲到,先看几个字段代表的含义。
  Logname代表日志文件的名称,比如我这里的查询是直接查询binlog。000029,默认的写法是showbinlogevents,但是这样只会查询到第一个binlog,并不是当前激活状态的binlog,如果你不知道binlog有哪些,可以用命令:showbinarylogs;查看binlog列表showmasterstatus;查看最新的binlog
  Pos代表文件开始的位置。
  Eventtype代表事件的类型。
  Serverid是创建事件的服务器ID。
  Endlogpos代表事件在文件中的结束位置,以上面为例,第一次查询的结束位置是723,第二次insert之后文件的开始位置就是从723开始。
  Info代表事件信息,是一段可读的文本内容。binlog日志结构
  binlog日志的结构大概是长这样的,它由索引文件和binlog文件组成,其中binlog事件又包含通用头、提交头和事件体3个部分组成。
  首先说说索引文件,索引文件的每一行都包含了一个binlog文件的完整文件名(类似hostbin。001),一些命令比如flushlogs将所有日志写入磁盘会影响到索引文件。
  每个binlog文件以若干个binlog事件组成,以格式描述事件(Formatdescription)作为文件头(上面的binlog图片Formatdesc事件),以日志轮换事件(rotate)作为文件尾。
  Formatdescription包含binlog文件的服务器信息、文件状态的关键信息等。如果服务器关闭或者重启,则会创建一个新的binlog文件,同时写入一个新的formatdescription。他的格式大致如下。2binlogversionstring〔50〕mysqlserverversion4createtimestamp1eventheaderlengthstring〔p〕eventtypeheaderlengths
  日志轮换事件则包含下一个binlog的文件名以及开始读取的位置,它由服务器写完binlog后添加到文件尾,轮换事件并不会每次都存在,格式如下。ifbinlogversion1{8position}string〔p〕nameofthenextbinlog
  binlog事件包含若干个事务组成的组(group),每个组对应一个事务,如果是createalter语句不属于事务语句的话,则他们本身就是一个组,每个组要么全部执行,要么都不执行。
  binlog事件结构
  每个binlog事件由3个部分组成:通用头,包含binlog中所有事件具备的基本信息。提交头,对于不同类型的事件来说,提交头的内容也不尽相同事件体,存储事件的主要数据,同样对于不同类型事件也不同。binlog轮换和清理
  从上面的例子我们也可以看出来,binlog并非只有一个,而基于真实的场景来说,始终写一个binlog文件肯定也是不可取的,而binlog轮换主要有3个场景:服务器启动,每次服务器启动都会生成一个新的binlog文件。达到最大大小,可以通过binlogcachesize控制大小,达到最大大小后将更换。显示刷新,flushlogs将所有日志写入磁盘,这时候会创建一个新的文件写入,从第一个例子也能看出来执行完之后生成了一个新的日志binlog。000030的文件并且开始的位置是4。
  随着时间的推移,我们的binlog文件会越来越多,这时候有两种方式可以清除binlog:通过设置expirelogsdays控制想保留的binlog日志文件天数,系统将会自动清理。通过PURGEBINARYLOGS手动清理relaylog结构
  relaylog中继日志是连接master和slave的核心,我们来深入了解一下它的结构和使用。
  relaylog的结构和binlog非常相似,只不过他多了一个master。info和relaylog。info的文件。
  master。info记录了上一次读取到master同步过来的binlog的位置,以及连接master和启动复制必须的所有信息。
  relaylog。info记录了文件复制的进度,下一个事件从什么位置开始,由sql线程负责更新。
  上一篇文章我们提到了整个复制流程的过程大概是这个样子:
  知道binlog和relaylog的结构之后,我们重新梳理一下整个链路的流程,这里我们假定master。info和relaylog。info都是存在的情况:Master收到客户端请求语句,在语句结束之前向二进制日志写入一条记录,可能包含多个事件。此时,一个Slave连接到Master,Master的dump线程从binlog读取日志并发送到Slave的IO线程。IO线程从master。info读取到上一次写入的最后的位置。IO线程写入日志到relaylog中继日志,如果超过指定的relaylog大小,写入轮换事件,创建一个新的relaylog。更新master。info的最后位置SQL线程从relaylog。info读取进上一次读取的位置SQL线程读取日志事件在数据库中执行sql更新relaylog。info的最后位置Slave记录自己的binlog日志
  但是在这里IO和SQL线程有会产生重复事件的问题,举一个场景:先记录中继日志,然后更新master。info位置此时服务器崩溃,写入master。info失败服务器恢复,再次同步从master。info获取到的是上一次的位置,会导致事件重复执行
  既然会有这个问题还为什么要这样做呢?假设反过来,先更新master。info再记录中继日志,这样带来的问题就是丢失数据了。而mysql认为丢失比重复更严重,所以要先刷新日志,保大还是保小mysql帮你做了决定。
  私信回复666获取更多技术硬核面试资料。
  END

京剧神童陶阳,曾被郭德纲称为实力超群,为啥淡出相声舞台?儿徒2007年,郭德纲在天津演出的时候,遇到了京剧神童小陶阳,那时候34的郭德纲跟10岁的陶阳相聊甚欢,也就是那次的见面两人成了忘年交。大家都知道郭德纲是一个爱才之……十多年来首次露脸,我国最大的蜥蜴现身云南龙陵,寿命比人类还长生存在我国的蜥蜴虽然种类不少,但是大个头的蜥蜴却并不多,圆鼻巨蜥是我国最大的蜥蜴,成年体长可达两米多,原本生活在我国的云南、广西、广东一带,但已有十多年未在野外的发现它的身影了……蜘蛛侠英雄远征SpiderManFarfromHome(20版权归作者所有,任何形式转载请联系作者。作者:润水流之(来自豆瓣)来源:https:movie。douban。comreview10271716说说结论,我很……TVB上位小生唱偶像名曲向其致敬大晒歌喉获网民激赞力撑出碟日前在《第91届奥斯卡金像奖》中凭借着在《一个明星的诞生》中的歌曲《Shallow》获得最佳原创歌曲的百变天后LadyGaGa,她在上台的时候更是感动落泪。但是在隔着一个大洋的……这部影响咒怨的日本恐怖片鼻祖,真吓坏我了今天推荐的电影堪称日本恐怖片的鼻祖。它不仅在惊悚程度上是恐怖片中的旗帜标杆。另外形式上更是创新,在表达上《怪谈》并非简单追求感官刺激,而是去营造情境挖掘观众内心的惊恐。……英女王最头痛的独女安妮公主!就是不要当淑女英女王有三子一女,独女安妮公主今年70岁,是英女王唯一的女儿。当别人说女儿一定比较乖巧顺从,偏偏这位公主天性叛逆,拒绝入学剑桥大学,卷入英国百年来最大的复杂四角恋,又有刑事案底……被称为学神的周长宇成绩单长啥样?10门99分11门满分导读:被称为学神的周长宇成绩单长啥样?10门99分、11门满分在我们小的时候,那些成绩好的孩子就带着光环,让老师喜爱,让同学羡慕,更让家长们嫉妒的称为别人家的孩子,这些成……能征服披荆斩棘的哥哥,只有她1hr最近,姑娘的快乐都是《披荆斩棘的哥哥》给的。这档已被预定为今年最火国综的叔圈综艺,向我们花样展示了什么是人类高质量男性:李承铉用一首低音炮版本的《天上飞》,直……自黑,是一门艺术神秘如景甜,也没逃过沙雕的路子。这两天景甜直播,吐槽自己之前整容,还整残了。以前她用酒精胶贴双眼皮,却出现了严重过敏。然后她就跑去做了埋线的双眼皮,完蛋了,这……孩子的童言无忌有多可怕?家长听后惊慌失措,真实又尴尬本文由萱爸育儿经原创,版权所有,侵权必究生活中,许多孩子都会在无意中说出大实话,这些话语看起来是小孩子的无心之举,家长细品之下,可能还会嚼出真实的味道!不信我们看一下!孩……卫星站下一个中国美国俄罗斯博弈的战场地球周围的卫星充满卫星的地球轨道,有可能成为太空战争发生的地方,而这些卫星既有可能成为被攻击的目标,也可能成为攻击别人的武器。2021年2月9日,一名业余卫星观测者……本可比肩琅琊榜,却一集劝退观众,成毅这部新剧烂了《对你的爱很美》这部作品已经正式拉下了帷幕,接替这部作品在湖南卫视播出的正是成毅的新作《与君歌》,虽然之前有消息称是肖战的《余生请多指教》接档《对你的爱很美》,可惜的是芒果台还……
多次出轨,如今1。2亿签约凯尔特人,科勒暗示将随男友搬家近日,卡戴珊家族三姐,36岁的科勒卡戴珊(KhloeKardashian)兴奋的在社交媒体发文:恭喜raltristan13,波士顿,我们来了。科勒的男友,29岁的篮球运……这些千年古建筑每一个都蕴藏着百年历史!最高大上的还是中国成为一名好的建筑师设计首要条件是什么?可能很多人会说是要有好的艺术审美能力和有良好的美术基本功或者是建造一栋建筑所需的专业知识然而小编认为成为一名……言承旭我是真的真的很爱你随着《披荆斩棘的哥哥》大红,言承旭当年的偶像鼻祖也出现在观众的眼前,这会儿,我听着言承旭的《我是真的真的很爱你》,回想起第一次看《流星花园》言承旭饰演的道明寺出场自带BGM带个……它也干了?辱华品牌又添一员近日,英国前商务大臣文斯凯布尔在采访中表示:英国应放弃对中方有关人员的制裁,在人权问题上闭嘴,停止照搬美国论调。作为前自由民主党领袖,凯布尔已多次在采访中将反华行为斥为道德作秀……田静儿时照曝光,网友看了表示穿的比郭威小时候好太多1992年出生的郭威和1991年出生的田静在朋友的介绍下走到了一起,因为错换人生事件两人已经成为公众人物。在关于郭威小时候的生活一直都是大家热议的焦点,网友们人为从郭威的童年照……邓丽君她一生热爱音乐,为何客死他乡?她一生热爱音乐,声音甜美。为何客死他乡?她真的是因为气喘急救不及时而与世长辞吗?大家好,今天我们就来聊一聊:邓丽君,原名邓丽云,被誉为亚洲歌后。邓丽君的这一生获得的荣誉数……彭昱畅的这部真烂片,总比伪大片好些我奉劝各位在安利《沐浴之王》的时候,结束语不要用吧,呗和啊都可以,不然的话你会很尴尬,别问我是怎么知道的。《沐浴之王》刚出预告的时候,最让大家想去影院一看究竟的不是势头正……郑爽回应阴阳合同,4句话信息量巨大,张恒要被再一次打脸?众所周知,最近几天张恒郑爽的事情再一次发酵,这是继4月初郑恒郑爽经济纠纷官司结束之后,双方又一次正面对决,和以前有所不同的是,这一次张恒不再留任何情面,直接曝光了郑爽身上发生过……钟丽缇一家四口走机场,二女儿的身高超高妈妈,小12岁老公显嫩点击上方关注小丸子,获取更多有趣有料的时尚资讯和明星穿搭。导语:女星钟丽缇一直被媒体封为性感女神,虽然年过半百依旧风韵犹存。钟丽缇跟前夫生有三个女儿,跟小12岁男星张伦硕……现在不露大腿的女鬼,已经不配夜间出门了吗?要说到女鬼的形态,那可是五花八门,多种多样。有动物幻化类型的,有植物成精的,也有死后不能投胎滞留人间的冤魂。在《聊斋志异》中所描述的形态各异的女鬼则最为突出,她们大多都是……阿娇怎么了?高调回应永不结婚言论!身材严重走形脸像充气认不出虽说女人成功不一定必须要婚姻幸福,但是一段不幸的婚姻确实对身体,事业甚至精神上造成很大的损失!阿娇的故事就是娱乐圈最让人惋惜的事5月3日,阿娇一则高调回应自己永不结婚的消……嘉人红毯倪妮深V太撩人,李冰冰穿镂空胸衣,唐嫣美腿又白又直今晚,是2021年嘉人女性影响力之夜,许多女星又是争先斗艳、大展异彩啊!不过这次的红毯跟以往的活动有些不同,这次规定了衣服的主题:中性风的吸烟装。这种衣服有一些经典元素,……
友情链接:中准网快好知易事利快百科快传网七猫云快生活中准网快软网聚热点文好找快好找