我对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/
提前谢谢
答案 0 :(得分:0)
没有什么"奇怪的"关于文件名。您正确地说明了文件名应该是格式(实际名称非常实际上是不同的)。
段名文件的名称越来越多,从
000000010000000000000000
开始。这些数字不会包装,但需要花费很长时间才能耗尽可用的数字库存。
因此文件名反映了一个增加的数字,其中包含一些结构。你不能期望那里有任何具体的价值,在繁忙的系统中他们会不断增加。
前8个数字(00000001
)反映了WAL记录的timeline,如果我没有记错,剩下的就是该时间轴的WAL记录的序列号。