Postgres中的XLOG日志机制.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Postgres中的日志机制 XLog的文件结构 i.i块的头部 WAT,文件以8K为一个文件块,16M为一个文件。每个文件块分为块头和XRecord的 数据列表两部分。对于每条XRcord记录,又分为XLogRccord数据结构,头部和数据三部 分。 typedef struct XLogLongPageHeaderData { XLogPageHeaderData std; uint64 xlp_sysia=1086799192; /* system identifier fran pg_oontrol ■/ uint32 xlp_seg_size=l6777216; /A just as a cross?uheuk */ uint32 xlp_x 1 og_blcksz =8192; /* just as a cross*/ )XLogLongPogcHcadcrData; typftdef struct XLogPagftHftaderData ( uintl6 xlp_magic=D097; /* magic value, K] it{4 */ uintl6 xlp_info?0x2; /* flag bits,何如 ^define XLP_LONG_HEADER 0x0002*/ TimeLinelD xlp^tli?l; /* TimeLinelD of first record on page */ XLogRecPtr xlp_pag?addr= /* XLOG address of this page */ uint32 xlp_rem_ 1 en=0; /*正命=0。如果.上一贾没存完.保存木M?IT的长戻.*/ } XLogPageHeaderData; 1 Block 8K 1 Block 8K XLogLongPageHeadorDataXRecord XLogLongPageHeadorData XRecord XRecord XRecord XLogPageHeaderData XRecord XRecord XRecord Header: Data: XLogRecord 每个元素以BLK工研头确组. BLK 数组 + MAIN_DATA DGeodeXLogRecord ()函数分析 KLogDumpDisplayRecord ()函数分析 每个文件第一个数据块的数据头是XLogLongPageHeaderData数据结构。其他数据 块是 XLogPageHeaderData 数据结构。 XLogPageHeaderData头部中,每个页面以D097为第一个字节作为magic number。 xlp info定义了 header的类型,如每个文件的第一个页的xl info是 4 MB (#defineXLP_LONG_HEADER 0x0002)o xl_rem_len为上一个数据块没有放置完的数据长度。上一个块如果某一个XRecord 在一个块中放不下,在下一个块中继续,则下一个块的xl_info是(#define XLP_FIRST_IS_CONTRECORD 0x0001),下一个块的 xl_rem_len 是乘U余数据的长度。 XI rem lenpaddingXRecord XI rem len padding XRecord XLogPageHeaderData XRecord xlp_tli是该块中第一条记录的timelineo xlp_pagcaddr是该块的XLOG地址(注:不是该 块第一条记录的地址),为块大小81<的倍数。 xlp_magic=D097 xlp_info=0x5 xlp_tli=l xlp^pageac 0) xlp_rem_len=4624 xlp_magic=D097 xlp_magic=D097 xlp_magic=D097 xlp_magic=D097 xlp_magic=D097 xlp_magic=D097 xlp_info=0x5 xlp_tli=l xlp^pageac 0) xlp_rem_len=4624 xlp_magic=D097 xlp_magic=D097 xlp_magic=D097 xlp_magic=D097 xlp_magic=D097 xlp_magic=D097 xlp_info=0x5 xlp_info=0x5 xlp_info=0x5 xlp_info=0x5 xlp_info=0x5 xlp_info=0x5 xlp_tli=l xlp_tli=l xlp_tli=l xlp_tli=l xlp_tli=l xlp_tli=l

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档