postgresql – 关于checkpoint_segments参数

前端之家收集整理的这篇文章主要介绍了postgresql – 关于checkpoint_segments参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我不太清楚参数“checkpoint_segments”,我的个人观点是它意味着
沃尔玛日志文件数量;我将参数的值配置为64,但我可以看到131个文件
pg_xlog目录.

有人可以解释参数吗?

--detail
postgres=# show checkpoint_segments;
 checkpoint_segments 
---------------------
 64
(1 row)

[postgres@pg_root]$cd $PGDATA
[postgres@pg_root]$ls -lrt pg_xlog | wc -l
132
对于后台:WAL(预写日志记录)是确保在发生崩溃时可以恢复数据库而不需要在每次写入后刷新数据文件的机制.基本上,在将任何更改写入数据文件之前,首先会记录它.如果发生崩溃,可以使用日志重做任何未进入磁盘的更改.

pg_xlog中的每个文件都是WAL段. checkpoint_segments以及checkpoint_timeout控制何时完成WAL检查点(检查点在checkpoint_segments段已经填满或checkpoint_timeout秒已经过去之后完成,以先到者为准);检查点是保证数据文件已被刷新的时刻,因此重做过程不需要考虑检查点之前的日志中的任何事务.

根据the documentation(我在上面提到的大部分内容),在8.3之前,pg_xlog目录中通常会有2 * checkpoint_segments 1个段文件;从8.3开始,预期的数字是(2 checkpoint_completion_target)* checkpoint_segments 1(或9.0中的wal_keep_segments,如果更大).在任何情况下,checkpoint_segments为64的131个段文件都接近预期的最小值.

原文链接:https://www.f2er.com/postgresql/192482.html

猜你在找的Postgre SQL相关文章