postgressql——Xlog(3)

本文详细介绍了PostgreSQL的Xlog格式,包括XLOG RECORD的数据结构,如xl_info字段的高低四位信息。此外,还阐述了Xlog初始化过程,如wal_buffers参数的作用,以及pg_log、pg_xlog和pg_clog三者的功能和重要性。pg_log记录服务器状态和错误信息,pg_xlog保存事务日志,而pg_clog则存储事务元数据。在进行物理备份时,pg_xlog和pg_clog必须一同备份。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Xlog格式

typedef struct XLogPageHeaderData
{
【校验用magic数字】
	uint16		xlp_magic;		/* magic value for correctness checks */
【标志位信息】
	uint16		xlp_info;		/* flag bits, see below */
【时间线信息】
	TimeLineID	xlp_tli;		/* TimeLineID of first record on page */
【当前页面在日志文件中的位置】
	XLogRecPtr	xlp_pageaddr;	/* XLOG address of this page */
【日志跨页面保存,当前页面需要存的剩下的长度】
	uint32		xlp_rem_len;	/* total len of remaining data for record */
} XLogPageHeaderData;

日志之间有链接关系,xl_prev指向上一条日志的起始位置,下一条日志的位置用xl_tot_len可以找到,日志之间形成“双向链表”。

typedef struct XLogRecord
{
【日记长度】
	uint32		xl_tot_len;		/* total len of entire record */
【事务ID】
	TransactionId xl_xid;		/* xact id */
【上一条日志的LSN】
	XLogRecPtr	xl_prev;		/* ptr to previous record in log */
【产生这个记录的动作】
	uint8		xl_info;		/* flag bits, see below */
【日志记录对应的资源管理器】
	RmgrId		xl_rmid;		/* resource manager for this record */
	/* 2 bytes of padding here, initialize to zero
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值