这篇文章主要介绍“PostgreSQL中REDO point分析”,在日常操作中,相信很多人在PostgreSQL中REDO point分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PostgreSQL中REDO point分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!checkpointer进程启动时,从pg_control文件中获取Redo point并存储在内存中,在执行checkpoint时更新Redo point为当前即将写XLOG Record的位置,checkpoint执行成功后把Redo point更新到pg_control文件中.
类似的,数据库启动需要执行恢复时,从pg_control文件中获取REDO point进行恢复.
pg_control文件位于$PGDATA/global目录中,可通过命令pg_controldata查看文件中的内容.其中记录的信息即为REDO point.1.查看当前的REDO pointREDO point为1/48448150.2.执行DML操作
插入3条记录查看1/48448150后的XLOG Record最后一个XLOG Record记录的位置为1/48448470,加上记录大小34(十六进制为0x22),位置为1/48448492,按理论上来说,如果现在执行checkpoin免费主机域名t,该位置为REDO point.3.执行checkpoint查看pg_control文件内容再次查看XLOG Record记录可以看到1/48448498是最后一条checkpoint记录的起始写入位置,REDO point为1/48448498,比预想的要多出6个字节(这6个字节都是0x00,用于补齐?).4.dump WAL segment file
再次使用hexdump工具查看WAL segment file文件.1/48448470开始的”COMMIT”记录XLOG Record的头部首先是XLogRecord结构体,第一个域是uint32的record的大小,即0x00000022,十进制为34(大小无异).后续的6个字节
均为0x00XLOG Record for checkpoint大小为0x0000006A,即106B(头部XLogRecord 24B + XLogRecordDataHeaderShort 2B + Checkpoint 80B ).
从FF 50为XLogRecordDataHeaderShort结构体的内容,0xFF为标志位,0x50为Data的大小(即80B).
checkpoint记录的内容详见Checkpoint结构体,该结构体免费主机域名第一个域字段为8个字节的LSN–>0x00000001 48448498,
即REDO point:1/48448498.到此,关于“PostgreSQL中REDO point分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注云技术网站,小编会继续努力为大家带来更多实用的文章!
这篇文章主要讲解了“Oracle VPD的相关功能有哪些”,文中的讲解内容简单清晰,易于学习与理解免费主机域名,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle VPD的相关功能有哪些”吧!测试用的数据表使用Oracle的示例Schema Sc…