奇怪的Postgres Xlog

时间:2017-05-15 03:19:15

标签: postgresql-9.4

我对Postgres xlog有疑问。根据Postgres文档,Postgres xlog应该采用这种格式0000000100000044000000FE,我不明白为什么xlog格式是我的数据库000000010000004400000**5**FE。来自哪里的额外5 ...

这里是postgres 9.4的真实数据库xlogs

cat PG_VERSION 9.4

ll pg_xlog/ | tail -n 10
-rw——- 1 postgres postgres 2097152 May 12 03:24 0000000100000044000005FE
-rw——- 1 postgres postgres 2097152 May 12 03:24 0000000100000044000005FF
-rw——- 1 postgres postgres 2097152 May 12 03:24 000000010000004400000600
-rw——- 1 postgres postgres 2097152 May 12 03:24 000000010000004400000601
-rw——- 1 postgres postgres 2097152 May 12 03:24 000000010000004400000602
-rw——- 1 postgres postgres 2097152 May 12 03:24 000000010000004400000603
-rw——- 1 postgres postgres 2097152 May 12 03:24 000000010000004400000604
-rw——- 1 postgres postgres 2097152 May 12 03:24 000000010000004400000605
-rw——- 1 postgres postgres 2097152 May 12 03:24 000000010000004400000606
drwx—— 2 postgres postgres 45056 May 12 15:10 archive_status/

提前谢谢

1 个答案:

答案 0 :(得分:0)

没有什么"奇怪的"关于文件名。您正确地说明了文件名应该是格式(实际名称非常实际上是不同的)。

Quote from the manual:

  

段名文件的名称越来越多,从000000010000000000000000开始。这些数字不会包装,但需要花费很长时间才能耗尽可用的数字库存。

因此文件名反映了一个增加的数字,其中包含一些结构。你不能期望那里有任何具体的价值,在繁忙的系统中他们会不断增加。

前8个数字(00000001)反映了WAL记录的timeline,如果我没有记错,剩下的就是该时间轴的WAL记录的序列号。