城市直播房产教育博客汽车
投稿投诉
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

SQLSERVER事务日志LSN到底是什么?

5月17日 失了心投稿
  一:背景1。讲故事
  大家都知道数据库应用程序它天生需要围绕着数据文件打转,诸如包含数据的。mdf,事务日志的。ldf,很多时候深入了解这两类文件的合成原理,差不多对数据库就能理解一半了,关于。mdf的合成前面的文章已经有所介绍,这篇我们来聊一下。ldf的一些内部知识,比如LSN。二:对LSN的理解1。什么是LSN
  如果大家玩过SQLSERVER的发布订阅或者AlwaysOn或多或少都见过LSN,比如下面的格式:00000030:00018090:0002,这一串编号到底是什么意思呢?本质上指示的是。ldf文件的某一个物理位置上的偏移,画个图大概如下:
  从图中可以看到其实是由虚拟文件号:日志段起始扇区编号:槽号编号三部分组成,要了解这三部分就需要明白。ldf文件是如何进行逻辑划分的,画个简图如下:
  通过上面的图很容易就能明白其中的逻辑关系,事务日志文件被划分成了多个虚拟文件,虚拟文件又划分成了多个日志段,日志段又划分成了多个扇区,日志段中日志记录位置存储在槽号中,有了这些理论基础,接下来用一个案例来加深大家的理解吧。2。一个案例演示
  新建一个MyLSN数据库,再创建一个test表,插入3w条记录,sql如下:
  spanstylecolor:a626a4;lineheight:26CREATEspanspanstylecolor:a626a4;lineheight:26DATABASEspanMyLSN
  spanstylecolor:a626a4;lineheight:26GOspan
  spanstylecolor:a626a4;lineheight:26USEspanMyLSN
  spanstylecolor:a626a4;lineheight:26GOspan
  spanstylecolor:a626a4;lineheight:26CREATEspanspanstylecolor:a626a4;lineheight:26TABLEspanspanstylecolor:a626a4;lineheight:26testspan(aspanstylecolor:c18401;lineheight:26INTspanspanstylecolor:a626a4;lineheight:26IDENTITYspan,bspanstylecolor:c18401;lineheight:26CHARspan(spanstylecolor:986801;lineheight:2610span)spanstylecolor:a626a4;lineheight:26DEFAULTspanspanstylecolor:50a14f;lineheight:26aaaaaaaaaaspan)
  spanstylecolor:a626a4;lineheight:26SETspanNOCOUNTspanstylecolor:a626a4;lineheight:26ONspan
  spanstylecolor:a626a4;lineheight:26INSERTspanspanstylecolor:a626a4;lineheight:26INTOspanspanstylecolor:a626a4;lineheight:26testspan(b)spanstylecolor:a626a4;lineheight:26DEFAULTspanspanstylecolor:a626a4;lineheight:26VALUESspan
  spanstylecolor:a626a4;lineheight:26GOspanspanstylecolor:986801;lineheight:2630000span
  spanstylecolor:a626a4;lineheight:26SETspanNOCOUNTspanstylecolor:a626a4;lineheight:26OFFspan
  接下来通过fndblog来查询和dbo。test表相关的事务日志记录。
  spanstylecolor:a626a4;lineheight:26SELECTspan〔spanstylecolor:a626a4;lineheight:26CurrentspanLSN〕,
  Operation,
  spanstylecolor:a626a4;lineheight:26Contextspan,
  AllocUnitName,
  〔RowLogspanstylecolor:a626a4;lineheight:26Contentsspanspanstylecolor:986801;lineheight:260span〕,
  〔spanstylecolor:a626a4;lineheight:26Logspanspanstylecolor:c18401;lineheight:26Recordspan〕,
  〔spanstylecolor:a626a4;lineheight:26Logspanspanstylecolor:c18401;lineheight:26Recordspanspanstylecolor:a626a4;lineheight:26Lengthspan〕
  spanstylecolor:a626a4;lineheight:26FROMspanfndblog(spanstylecolor:0184lineheight:26span,spanstylecolor:0184lineheight:26span)
  spanstylecolor:a626a4;lineheight:26WHEREspanAllocUnitNamespanstylecolor:a626a4;lineheight:26LIKEspanspanstylecolor:50a14f;lineheight:26
  从图中可以看到这是一个INSERT的事务日志记录,这里就拿编号00000030:00000db0:0002去定位。ldf中的物理偏移位置吧,要想获取物理偏移就要知道下面偏移值才可以。0x30虚拟文件号的偏移值是多少?
  要想知道这个信息,可以用DBCCloginfo命令,查看FSeqNo下的StartOffset偏移值即可,即0n48对应的4071424,截图如下:0xdb0扇区号的偏移是多少?
  大家都知道磁盘的扇区是512byte,sqlserver为了更好的写入磁盘,也用了512byte这个粒度,所以偏移值就是5120xdb0。
  综合上面就能定位到日志段的物理偏移值为:
  lkd?spanstylecolor:986801;lineheight:260spann4071424(spanstylecolor:986801;lineheight:260spann3504spanstylecolor:986801;lineheight:260spann512)
  Evaluateexpression:spanstylecolor:986801;lineheight:265865472spanspanstylecolor:986801;lineheight:2600000000spanspanstylecolor:986801;lineheight:2600598000span
  接下来用WinHex来定位MyLSNlog。ldf文件偏移00598000的位置,定位之前先将数据库离线。spanstylecolor:a626a4;lineheight:26ALTERspanspanstylecolor:a626a4;lineheight:26DATABASEspanMyLSNspanstylecolor:a626a4;lineheight:26SETspanspanstylecolor:a626a4;lineheight:26OFFLINEspan
  前面的0x0003表示该日志段只有3条记录,后面的0x019E表示该日志段的大小为414byte,接下来就是槽号了,槽号位置的物理偏移计算规则如下:
  lkd?spanstylecolor:986801;lineheight:2600598000spanspanstylecolor:986801;lineheight:26019spanEspanstylecolor:986801;lineheight:261span
  Evaluateexpression:spanstylecolor:986801;lineheight:265865885spanspanstylecolor:986801;lineheight:2600000000spanspanstylecolor:986801;lineheight:260059819spand
  从图中可以看到,slot2的偏移值为00C8,即物理偏移值为005980c8。
  lkd?spanstylecolor:986801;lineheight:2600598000spanspanstylecolor:986801;lineheight:2600spanC8
  Evaluateexpression:spanstylecolor:986801;lineheight:265865672spanspanstylecolor:986801;lineheight:2600000000spanspanstylecolor:986801;lineheight:26005980spanc8
  从上面框出的内容可以轻松的看到,事务日志中记录了Insert的aaaaaaaaaa值,太棒了,起始就是fndblog查出来的LogRecord值。三:总结
  对LSN有一个深度的理解,对各种数据库事务日志暴涨的故障分析都会有一个很好的理论基础,后面我们再聊这些话题。
  END
  工作中的你,是否曾遇到。。。
  1。sql语句性能差
  2。数据库损坏
  3。数据库CPU暴涨
  4。数据库死锁
  等急需解决的事件,全公司都指望着你能解决。。。危难时刻才能展现你的技术价值,作为专注于。NET高级调试的技术博主,欢迎微信搜索:一线码农聊技术,免费协助你分析,希望我能将你的踩坑经验分享给更多的人。
投诉 评论 转载

SQLSERVER事务日志LSN到底是什么?一:背景1。讲故事大家都知道数据库应用程序它天生需要围绕着数据文件打转,诸如包含数据的。mdf,事务日志的。ldf,很多时候深入了解这两类文件的合成原理,差不多对数据库就……广东省的第二大河韩江韩江是广东省的第二大河,因下游潮州市过去为韩愈滴居之地而得名。一、韩江的南北二源韩江的上源由自北向南的汀江和自南向北偏东流的梅江组成,在广东省大埔县三河坝汇合后始称……机构看中这些股近五日大手笔净买入证券时报数据宝统计,3月27日沪指收盘报3251。40点,跌14。26点,跌幅为0。44,近五日涨跌幅为0。51。近五日A股成交量3709。28亿股,成交金额46621。77亿……长孙晟丨李世民的岳父,绝代智谋,上兵伐交,分化瓦解突厥第一人说起长孙晟这个人,可能很多人对他没什么印象,甚至根本不认识他。反倒是他的儿子一辈中涌现了众多著名人物,比如,他的儿子叫长孙无忌,是唐朝著名权臣,女儿是唐太宗李世民的皇后,……乒乓球的发球我认为天生一半苦练一半大伙怎么认为?其实不仅仅是乒乓球,所有的体育运动项目要真正出成绩,必须要有天赋。选拔运动员首先要看他的身体条件是否符合项目要求,这是基础。然后在符合运动的基础之上再加以科学的训练……交广会客厅志愿之星朱智勋在此次呼和地区疫情突发以来,传播者、坚守者、接力员的称号成为了许多逆行冲锋人的标签。有这样一名党员职工在他所居住小区临时党支部的队伍中被贴上了志愿之星的服务标签,他就是呼和浩特……百万年薪聘导游浙江开化有妙招考察点位、拍摄短片、记录要点春节假期一结束,浙江省开化县各景区景点就迎来20位导游。他们带着挖掘景区景点故事、寻找旅游营销亮点的任务,开始踩线活动。去年12月,开化县向全……麦卡锡窜台时间确定,就在今年春季,解放军会采取什么行动?据多家国外媒体报道,美国众议院议长麦卡锡将在今年春季某个时间点窜访台湾,美国五大大楼正在为此做准备,这意味着麦卡锡将可能会在今年上半年窜访台湾。虽然国外媒体消息来看仅是一……周琦和郭艾伦领衔全运会辽宁男篮天团,能干掉宿敌广东吗?先说我的预测结果:辽宁完爆广东。没错,看我的期望就知道我就是某些球迷口中的辽吹,但是请你认真看看我的分析再确定是不是在吹。假如全运会男篮只允许五个人参加,那么广东队……芙蓉国评论丨抢春时忙备耕,端稳端牢中国饭碗在湖南省湘乡市梅桥镇一处高标准农田建设现场,工人驾驶挖掘机平整土地。新华社记者谢奔摄段宗科人勤春来早,备耕正当时。春节刚过,从东北沃野到华北平原,再到长江两岸、南海……不服输成就中国纺织大工匠在企业粗纱岗位上,她从同时进厂的员工中脱颖而出,14年间练就了粗纱操作绝活儿。而她独创的粗纱机前接头采用从下部转管、双手并用、交叉结合的方法,使机前速度最快达到30秒,这一创新……绝了!天意cp官宣和好,陈奕辰度过张天考核期,合影性张力爆表8月,来自《心动的信号》第二季的意难忘,天意cp没有意外地官宣和好了!第五季已经开始预热的今天,第二季的cp还能有这样的热度,恋综流量天花板,无疑。生于1996年的……
中国男足0比2不敌日本队,晋级卡塔尔世界杯无望,你怎么看?大学学医是考地方院校好,还是部队军医大学好?中国历史上七大未解谜案,到底哪一个更令人着迷教育部发布新农科人才培养引导性专业指南一个泳池里到底有多少尿?17的人曾在里面小便,10升水就有1女子全职带娃十年,离婚获赔十万元,网友表示太便宜了如何评价漯河小伙辞职去旅行,5个月徒步尼泊尔和印度这件事?主播读诗丨小寒瑞信银行破产案,有中国富豪赔得连底裤都没了陕西国际商贸学院师生获全国大赛银奖老人的退休金,直接影响了一家人的生活质量,这话是谬论吗?江苏女主晒出149新家全屋没有一丝俗气,堪称装修教科书赠奉律上人(律公精于维摩经)《斑羚飞渡》读后感风景这边独好三下乡社会实践报告五篇男生脸比较大适合剪什么发型韩式发型修颜效果极佳搬床岁月从不败美人!秦岚42岁生日单身也精彩,同龄歌手萧潇活成少“迎新生”并非拉个横幅那么简单儿童腹泻可以按摩拿下穴位老三样是哪三样?永远的模样作文800字育儿观念孩子第一次犯错是教育的黄金时机

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找