欢迎来到天天文库
浏览记录
ID:41763196
大小:95.27 KB
页数:7页
时间:2019-09-01
《Postgres中的XLOG日志机制》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Postgres中的日志机制1.XLog的文件结构i.i块的头部WAT,文件以8K为一个文件块,16M为一个文件。每个文件块分为块头和XRecord的数据列表两部分。对于每条XRcord记录,又分为XLogRccord数据结构,头部和数据三部分。typedefstructXLogLongPageHeaderData{XLogPageHeaderDatastd;uint64xlp_sysia=1086799192;/*systemidentifierfranpg_oontrol■/uint32xlp_seg_size=l6777216;/Aj
2、ustasacross・uheuk*/uint32xlp_x1og_blcksz=8192;/*justasacross*/)XLogLongPogcHcadcrData;typftdefstructXLogPagftHftaderData(uintl6xlp_magic=D097;/*magicvalue,K]it{4*/uintl6xlp_info»0x2;/*flagbits,何如^defineXLP_LONG_HEADER0x0002*/TimeLinelDxlp^tli»l;/*TimeLinelDoffirstrecordonp
3、age*/XLogRecPtrxlp_pag©addr=16777216;/*XLOGaddressofthispage*/uint32xlp_rem_1en=0;/*正命=0。如果.上一贾没存完.保存木M♦IT的长戻.*/}XLogPageHeaderData;1Block8K1Block8KXLogLongPageHeadorDataXRecordXRecordXRecordXLogPageHeaderDataXRecordXRecordXRecordHeader:Data:XLogRecord每个元素以BLK工研头确组.BLK数组+M
4、AIN_DATADGeodeXLogRecord()函数分析KLogDumpDisplayRecord()函数分析每个文件第一个数据块的数据头是XLogLongPageHeaderData数据结构。其他数据块是XLogPageHeaderData数据结构。XLogPageHeaderData头部中,每个页面以D097为第一个字节作为magicnumber。xlpinfo定义了header的类型,如每个文件的第一个页的xlinfo是4MB(#defineXLP_LONG_HEADER0x0002)oxl_rem_len为上一个数据块没有放置完
5、的数据长度。上一个块如果某一个XRecord在一个块中放不下,在下一个块中继续,则下一个块的xl_info是(#defineXLP_FIRST_IS_CONTRECORD0x0001),下一个块的xl_rem_len是乘U余数据的长度。XIremlenpaddingXRecordXLogPageHeaderDataXRecordxlp_tli是该块中第一条记录的timelineoxlp_pagcaddr是该块的XLOG地址(注:不是该块第一条记录的地址),为块大小81<的倍数。xlp_magic=D097xlp_info=0x5xlp_tl
6、i=lxlp^pageac=22880256(0)xlp_rem_len=4624xlp_magic=D097xlp_magic=D097xlp_magic=D097xlp_magic=D097xlp_magic=D097xlp_magic=D097xlp_info=0x5xlp_info=0x5xlp_info=0x5xlp_info=0x5xlp_info=0x5xlp_info=0x5xlp_tli=lxlp_tli=lxlp_tli=lxlp_tli=lxlp_tli=lxlp_tli=l=22888448(0)xlp_j)agea
7、ddr=22896640(0)=22904832(0)=22913024(0)xlp_j)ageaddr=22921216(0)=22929408(0)xlp_rem_len=5984xlp_rem_len=l036xlp_rem_len=l128xlp_rem_len=1652xlp_rem_len=492xlp_rem_len=l084xlp_magic=D097xlp_info=0x5xlp_tli=l=22937600(0)xlp_rem_len=l676XLogLongPageHeaderData勾除了XLogPagGHeader
8、Dat:已的数据之夕卜,增加了三个固定值的字段用于有效性检查:系统Id,文件大小16M和块大小8K。如下:
9、xlp_magic=D0g7xlp_info=Qx2xlp_xlog_
此文档下载收益归作者所有