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

再深入一点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 -

亚历克鲍德温分享梦境梦见特朗普因煽动叛乱罪名被审判上周末,亚历克鲍德温对唐纳德特朗普进行了令人担忧的抨击。亚历克鲍德温是在好莱坞最直言不讳的批评者之一,他在推特上透露,他梦见特朗普因煽动罪受审,并暗示法院外有绞刑架在等着特朗普。我安吉丽娜朱莉将出售丘吉尔送给罗斯福的画作温斯顿丘吉尔的一幅兼具政治和好莱坞历史的画作即将被拍卖。佳士得拍卖行周一说,摩洛哥景观Koutoubia清真寺塔丘吉尔送给美国总统富兰克林罗斯福的礼物,是被安吉丽娜朱莉下个月估计销伊丽莎白女王的表侄因性侵被判入狱,监禁10个月英国女王伊丽莎白二世的一位亲戚(表侄)星期二在苏格兰因性侵一名妇女被判入狱。斯特拉斯莫尔伯爵西蒙鲍尔斯里昂承认于2020年2月在格拉姆斯城堡的卧室里性侵了这名女子。他被判10个月监美国歌后玛丽亚凯莉被亲姐姐起诉,要求125万美元精神损失费玛丽亚凯莉正面临着新的法律挑战。据人物杂志报道,凯莉的姐姐艾莉森已经向法院提起诉讼,要求超级巨星妹妹凯莉支付125万美元。在诉讼中,艾莉森声称,50岁的歌手凯莉在最近出版的回忆录玛接受你的好却不肯跟你确定关系,大多是因为她真正想要的你给不了双向奔赴的爱情是最美好的!你的付出有人看到感受到,并愿意回馈同等的感情,两个人都希望能够通过自己的努力,给感情升温,这样的感情是11大于2的,两个人都会被爱情滋养,而不只是消耗。但婆媳关系处理不好,那是因为你不懂这4条婆媳相处秘诀婆媳关系,自古以来就是家庭中最复杂的,无论是影视剧中还是现实生活中,都会看到各种各样的婆媳矛盾,有人说婆媳是天敌,婆媳关系是世纪难题,无解。很多婚姻失败的导火索都是婆媳关系不和谐引因菲利普亲王病重,哈里王子夫妇被请求推迟奥普拉节目的播出哈里王子和梅根马克尔近日接受奥普拉温弗瑞的采访,一些评论家敦促CBS推迟该节目的播出,他们将发起抨击皇室家族,对菲利普亲王的前景担忧。哈里王子在节目中告诉奥普拉,他离开王室是因为他梅根马克尔解释曾经考虑自杀的原因退出王室后的原因梅根马克尔和哈里王子备受期待的接受奥普拉温弗瑞的采访,就这对夫妇退出王室一事,爆出了几则爆炸性新闻。在周日播出的内容广泛的采访中,哈里和梅根描述了王室关于儿子皮肤颜色的痛苦讨论,失梅根马克尔同父异母的姐姐萨曼莎预测哈里王子可能会离婚梅根马克尔疏远的同父异母姐姐萨曼莎对梅根马克尔和哈里王子的婚姻并不太有信心。萨曼莎近年来一直在公开谈论她同父异母的妹妹,最近马克尔在接受奥普拉温弗瑞采访时就曾说过两人关系疏远,她还网友偶遇汪涵陪儿子学游泳,站岸边不停为沐沐鼓掌加油,超有爱3月2日,有网友在社交平台晒出偶遇汪涵陪着6岁儿子学游泳的画面,并发文透露小沐沐游泳的过程中,汪涵站在岸边一边回复着微信语音,一边看着小沐沐,而且,每次小沐沐快到泳池边的时候,他都柳红陈莹晒开工照,生二胎7个月脸部圆润,眼角细纹明显2月24日,曾在还珠格格中饰演柳红一角的陈莹久违在个人社交平台晒出自拍照,她写到今年第一飞,祝一切顺利,亲们咱们银幕见,言辞中尽显喜悦之情。照片中,陈莹留着一头清爽干练的短发,身穿
奚梦瑶怀二胎后现身活动,挺孕肚不再遮掩,嫁豪门后无心再做超模奚梦瑶不久前正式宣布自己怀上了二胎,这一次没有像第一次怀孕一样遮遮掩掩,反而是第一时间就向网友们公布了这一喜讯,也受到了网友们的祝福,自从顺利嫁入豪门以后,奚梦瑶似乎也早已无心超模真相未出,错换人生电影将开拍!许敏哥哥等真相大白吧错换人生28年事件在持续发酵,相关当事人之间矛盾纠葛不断,姚策虽然已经离去,但问题远未了结。许敏一方在持续追寻真相,但开封警方和淮河医院相继都明确了错换只是因为管理混乱,除了赔偿似有种真实叫谢娜,二胎身材发胖太难顶,网友关心卸货没在产后,很多女性都会为身体发福感到困扰,本以为孩子出生了,自己的身材就会恢复如初,可是令人没想到的是,孩子虽然生了,但是自己身上的肥肉却没见少!所以很多女性在产后会变得非常不自信,火的人才配上难听热搜,是真的难听还是路人逆反?最近这段时间小编可是发现了一些有趣的事情,总是会有一些和明星大名无关的词条登上热搜,例如难听这个光是小编看到就已经三次了。点进去之后每次关联的明星也都不同,这个月首当其冲就是张哲瀚好妈妈张柏芝,你的美丽掩盖不了你满嘴的谎言我很喜欢张柏芝真的,不管她好妈妈人设是不是特意凹出来的我都挺佩服她的,这些年很不容易,可是她有一个非常大的毛病。爱说谎,仗着一张漂亮脸,满嘴跑火车。下面我来盘点下张柏芝的谎言!1连2021年还没过半,就又出了6部烂剧,我就没见过这么猥琐的男主烂剧年年有,今年特别多,这部5月还没过完,6大烂剧就出来了。你要说这剧有多烂,细说就是烂得千奇百怪,从剧情到人设,从妆发到演员,就没有一处能贴上的。说不多说,八姑姑这就带着大家一起蒋勤勤和陈建斌的情感往事,一封情书诠释15年夫妻爱情从花儿与少年到欢乐颂琅琊榜以及最近的热播综艺妻子的浪漫旅行5,刘涛一直在很刻意地想要立各种人设,从一开始能够照顾弟弟妹妹勤俭持家的国民媳妇到后来一个霸道总攻人设,也不知道是不是这个郑爽妈妈关注心理咨询师,被曝已接受精神治疗,家人为其发声力挺郑爽妈妈关注心理咨询师,被曝已接受精神治疗,家人为其发声力挺对于郑爽网友们应该都很熟悉了,郑爽出道多年在娱乐圈中也算是比较受大众欢迎的一位女星了,虽然出道这么多年关于郑爽的负面评价错换人生事件要拍成电影了!片名为错换人生28年,力邀她饰演许敏姚策和郭威的错换人生事件引起了社会的高度关注,1992年姚策和郭威在淮河医院被抱错,直到28后姚策患上肝癌后许敏准备割肝救子的时候才发现宠爱了28年的儿子并非自己亲生,后来许敏夫妇大女儿没得到的陪伴,张艺谋全给了陈婷的3个孩子,呵,男人一晃升级到2。0版本了,生日快乐!我的阳光大男孩,愿你在成长的道路上不慌不忙扎扎实实,拿起勤奋与乐观的武器不断打怪升级,成为更好的自己。张艺谋的妻子陈婷在社交平台上发文,为大儿子张如萍,104岁生日快乐,想必你和杜飞已经儿孙满堂了吧5月18日,陆如萍迎来了她的104岁生日。这样一个存在于琼瑶小说中虚拟人物,能够一直被观众记得,并每年为她庆生,足以见得这部作品的国民度之高。2001年,电视剧情深深雨蒙蒙热播,当