范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

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

  上一篇mysql面试的文章之后收到不少朋友的意见,希望深入讲讲复制、日志的格式这些,今天,我们就来深挖一下mysql的复制机制到底有哪一些,以及binlog和relay-log的结构到底是什么样子的。binlog作用
  binlog的主要作用是记录数据库中表的更改,它只记录改变数据的sql,不改变数据的sql不会写入,比如select语句一般不会被记录,因为他们不会对数据产生任何改动。
  用一个实际的场景看下binlog产生的过程,准备sql:create table test(text varchar(20)); insert into test values ("test_text"); select * from test; flush logs;
  查看binlogshow binlog events in "binlog.000029";
  显示的结果如下:
  另外,也可以使用mysqlbinlog工具来查看binlog的内容:show variables like "log_%"; #查看日志目录 mysqlbinlog --short-form --force-if-open --base64-output=never /usr/local/var/mysql/binlog.000029
  从日志我们可以看到执行了创建表的语句以及一个Format_desc头和Ratate轮换事件,这个我们会在后面讲到,先看几个字段代表的含义。
  Log_name代表日志文件的名称,比如我这里的查询是直接查询binlog.000029,默认的写法是show binlog events,但是这样只会查询到第一个binlog,并不是当前激活状态的binlog,如果你不知道binlog有哪些,可以用命令:show binary logs; #查看binlog列表 show master status; #查看最新的binlog
  Pos代表文件开始的位置。
  Event_type代表事件的类型。
  Server_id是创建事件的服务器ID。
  End_log_pos代表事件在文件中的结束位置,以上面为例,第一次查询的结束位置是723,第二次insert之后文件的开始位置就是从723开始。
  Info代表事件信息,是一段可读的文本内容。binlog日志结构
  binlog日志的结构大概是长这样的,它由索引文件和binlog文件组成,其中binlog事件又包含通用头、提交头和事件体3个部分组成。
  首先说说索引文件,索引文件的每一行都包含了一个binlog文件的完整文件名(类似host-bin.001),一些命令比如flush logs将所有日志写入磁盘会影响到索引文件。
  每个binlog文件以若干个binlog事件组成,以格式描述事件(Format_description)作为文件头(上面的binlog图片Format_desc事件),以日志轮换事件(rotate)作为文件尾。
  Format_description包含binlog文件的服务器信息、文件状态的关键信息等。如果服务器关闭或者重启,则会创建一个新的binlog文件,同时写入一个新的format_description。他的格式大致如下。2                binlog-version string[50]       mysql-server version 4                create timestamp 1                event header length string[p]        event type header lengths
  日志轮换事件则包含下一个binlog的文件名以及开始读取的位置,它由服务器写完binlog后添加到文件尾,轮换事件并不会每次都存在,格式如下。if binlog-version > 1 { 8              position } string[p]      name of the next binlog
  binlog事件包含若干个事务组成的组(group),每个组对应一个事务,如果是create alter语句不属于事务语句的话,则他们本身就是一个组,每个组要么全部执行,要么都不执行。
  binlog事件结构
  每个binlog事件由3个部分组成:通用头,包含binlog中所有事件具备的基本信息。提交头,对于不同类型的事件来说,提交头的内容也不尽相同事件体,存储事件的主要数据,同样对于不同类型事件也不同。binlog轮换和清理
  从上面的例子我们也可以看出来,binlog并非只有一个,而基于真实的场景来说,始终写一个binlog文件肯定也是不可取的,而binlog轮换主要有3个场景:服务器启动,每次服务器启动都会生成一个新的binlog文件。达到最大大小,可以通过binlog-cache-size控制大小,达到最大大小后将更换。显示刷新,flush logs将所有日志写入磁盘,这时候会创建一个新的文件写入,从第一个例子也能看出来执行完之后生成了一个新的日志binlog.000030的文件并且开始的位置是4。
  随着时间的推移,我们的binlog文件会越来越多,这时候有两种方式可以清除binlog:通过设置expire-logs-days控制想保留的binlog日志文件天数,系统将会自动清理。通过PURGE BINARY LOGS手动清理relay-log结构
  relay-log中继日志是连接master和slave的核心,我们来深入了解一下它的结构和使用。
  relay-log的结构和binlog非常相似,只不过他多了一个master.info和relay-log.info的文件。
  master.info记录了上一次读取到master同步过来的binlog的位置,以及连接master和启动复制必须的所有信息。
  relay-log.info记录了文件复制的进度,下一个事件从什么位置开始,由sql线程负责更新。
  上一篇文章我们提到了整个复制流程的过程大概是这个样子:
  知道binlog和relay-log的结构之后,我们重新梳理一下整个链路的流程,这里我们假定master.info和relay-log.info都是存在的情况:Master收到客户端请求语句,在语句结束之前向二进制日志写入一条记录,可能包含多个事件。此时,一个Slave连接到Master,Master的dump线程从binlog读取日志并发送到Slave的IO线程。IO线程从master.info读取到上一次写入的最后的位置。IO线程写入日志到relay-log中继日志,如果超过指定的relay-log大小,写入轮换事件,创建一个新的relay-log。更新master.info的最后位置SQL线程从relay-log.info读取进上一次读取的位置SQL线程读取日志事件在数据库中执行sql更新relay-log.info的最后位置Slave记录自己的binlog日志
  但是在这里IO和SQL线程有会产生重复事件的问题,举一个场景:先记录中继日志,然后更新master.info位置此时服务器崩溃,写入master.info失败服务器恢复,再次同步从master.info获取到的是上一次的位置,会导致事件重复执行
  既然会有这个问题还为什么要这样做呢?假设反过来,先更新master.info再记录中继日志,这样带来的问题就是丢失数据了。而mysql认为丢失比重复更严重,所以要先刷新日志,保大还是保小mysql帮你做了决定。
  私信回复666获取更多技术硬核面试资料。
  - END -

人间精灵周迅,婚姻似乎不适合于她粉红色的乔治202012251657周迅,她就是一个人间精灵,灵动而又美丽,小巧而又精致。有人这样评价她她有一张未婚妻的脸,因为她永远对未来包有期待,期待明天,仿佛明天对她全无恶意被称为北欧精灵公主的她,五官太美了,身材高挑,直角肩完美试问哪个女生不想拥有直角肩,毕竟直角肩可以令自己气质加分同时增加女性独有的妩媚性感,让自己的精神更加抖擞同时让身材更加高挑。上图中女生的美丽有没有惊讶到你呀,她可是被称为落入凡间的瑞典健身博主,金发碧眼,身材紧致耐看,get3个动作,练女神同款这可能就是来自北欧森林的仙女吧!头顶花环的金发碧眼健身女神菲利帕弗兰森,近日得到一众网友的疯狂点赞,因为仙女长得美,身材又好到离谱,这样的美女我要要为她打Call!包臀长裙凸显出来街拍小精灵cos服装,走到哪里都能成为焦点女生在夏天的衣服是最多的,不同的衣服款式展现不同的女性魅力,在大街上也会莫名地出现小精灵风格的美女,小精灵服装也可以成为令人眼花缭乱的风景,来一个小精灵服装过一把瘾,小精灵服装的款徐冬冬摆脱性感路线圣诞节晒照清纯可人,美得像雪夜的精灵徐冬冬在个人社交平台晒出了一组白色写真,可以说是非常应圣诞节的景,节日气氛满满。徐冬冬还配出了文案表示愿雪花像节日里真挚的祝福,飘落在你的身上。这组白色写真可以说是相当的唯美,一改中国女排张常宁真的好敢穿,高开叉西装裙,这大长腿太吸睛文susie西装外套大家应该很熟悉了吧?它可以用气质优雅干练等形容词来描绘。混迹职场的各位应该了解,西装外套一直是有它的一席之地。接下来我们一起看看张常宁的穿搭,中国女排张常宁真的孙俪笑起来好甜,利落短发配蓝色碎花裙,可爱的小女人模样文SusieHi,我是Susie,时尚搭配不踩雷区,让我们继续变美吧!随着年纪的增加,越来越多的人想要一直年轻美丽,但是岁月的痕迹多多少少还是会体现在容颜上。想要自己看上去更加的显年轻时的黄贯中被评价韩范十足但那明明是港风八九十年代风靡亚洲随着综艺披荆斩棘的哥哥的播出,不少网友被这些哥哥们的舞台魅力所折服,比如看起来有点严肃很COOL的黄贯中,很多人都知道他是Beyond乐队的成员,但在披荆斩棘的哥哥之前很多人对他的田岷年轻时曾和英达传绯闻,如今演刘茵妈妈手撕邬君梅婆婆的镯子正在热播中,田岷饰演的刘茵妈妈性格鲜明,霸道泼辣偏心又自私,吸引了许多观众的目光。今天,我们来聊聊这个角色以及演员的故事。在剧中,刘妈妈出场时,穿着一件丝绸华服,戴着珍珠周海媚年轻时的美貌该有多绝?金庸愿为她改写周芷若的结局谈到让人心动的古装美女,周海媚当属其中的一个。周海媚的颜,不是现在流行的骨感型美女,但又不属于肉肉的可爱系。却有着十分惊艳的美,带着人类对美的喜爱,让人类承受着颜值的暴击。周海媚将黑寡妇斯嘉丽约翰逊的美容健康习惯和瘦身保养经验斯嘉丽约翰逊的美容秘诀和健身秘诀斯嘉丽约翰逊,这位来自好莱坞的金发美女,在银幕上的表演似乎总是让人心潮澎湃。作为现代的美丽象征,她美丽的身材和诱人的外表使她成为许多男人渴望的对象。
揪心!郑州暴雨已致12人遇难!约10万人转移7月20日,河南省遭遇极端强降雨,郑州市多个国家级气象观测站日降雨量突破有气象记录以来历史极值。受强降雨影响,河南省郑州市二七区郭家咀水库水位快速上涨。当地已提前转移水库下游群众。为何拒绝美副国务卿访华?面对记者提问,赵立坚的回应无声胜有声如果,在你的楼下住着一位恶邻,经常没事找事对你家破口大骂或者传播一些对你不利的风言风语。但是,突然有一天,这位恶邻想要拜访你家,还露出一副与你亲近熟络的样子,你的第一反应是什么?相腾讯阿里生态或将互通,让人砍一刀的拼多多,终于也被人砍了一刀让人砍一刀的拼多多,终于也被人砍了一刀。为什么这么说呢?因为隔壁阿里和腾讯有可能要逐步相互开放打通了,肯定有吃瓜群众想问了,就算打通了那又怎样呢?说一点你可能就明白了,之前鹅厂的微四川又一县市被发现,不是成都不是广安,未来将势如破竹随着祖国的发展,我国这些城市也相应迎来了光明,自从我国在国际上有了一席之地,城市的发展也汹涌而来,也因此出现了很多优秀的城市,而这样当地居民也是幸福的,下面我来看看我国哪些特色城市拉文解除隔离将与三名总决赛球员奔赴东京,美国男篮能一雪前耻吗齐鲁晚报齐鲁壹点记者冯子涵北京时间7月21日,美国男篮官方宣布,此前因为触发健康与安全条例而没有随队前往东京的公牛球星扎克拉文,目前已经解除了健康安全协议,他将会在本周五前飞往东京保罗加盟湖人联手浓眉詹皇?画面太美不敢想象兄弟联手据名记Spears报道,消息人士透露,勒布朗詹姆斯和洛杉矶湖人队一直在寻找经验老道的控卫,而保罗刚好在这份名单上。值得一提的是,保罗和太阳的合同将在下赛季结束后到期,其中下刘志轩手术成功!单臂引心酸,推进手术室时满脸担忧,杨鸣头疼了之前辽宁官宣刘志轩会手术的情况下,目前刘志轩的手术确实已经成功了。不过就曝出的整个手术过程来看确实有点让人心疼了。首先是在刘志轩手术之前,其实他一直都在进行静养。因为专家正在确定手关晓彤复工遇麻烦,现身发热门诊近况堪忧,网友早就发现问题关晓彤一直深受大家喜爱,虽然年龄不大,但是绝对称得上戏骨级演员,可以说是在荧屏里长大的女生。如今在时尚综艺领域也有所尝试,可谓全面开花。特别是和鹿晗的恋情,让无数粉丝羡慕,希望目前赵丽颖更新动态,1张背影照引热议,这种33岁的气质别人模仿不来自从结婚之后,赵丽颖的热度似乎一下子就下去了,可实际上这样的热度下降对于赵丽颖而言是一件好事,可以让她有着更多的时间去提升自己,不用担心面临舆论压力。不过在近期,赵丽颖低调的想法还吴亦凡事件再升级,引网友众怒今晚,都美竹再发长文怒斥吴亦凡事情发展到这个地步,我已经不想关注他嘴臭的队友,小生是谁,嗤笑完吴签的两三分钟后更值得我们关注的是吴亦凡可能涉嫌强奸,诱奸,迷奸未成年人虽然他是加拿大李纯黑桃纹身,惹网友不快昨日,李纯一张照片在知乎掀起热议。图中李纯脚踝的黑桃纹身,被知乎不少用户称是媚黑标志。并说哪怕李纯不知道,纹身师肯定知道黑桃纹身的意思。小编表示被科普到了。what今日李纯回应称自