PostgreSQL 11 新特性解读 : Initdb/Pg

  • 时间:
  • 浏览:2
  • 来源:大发5分排列5_极速5分排列3

WAL 日志文件大小默认为16MB,该值都要是1到1024之间的2的次方,增大WAL文件大小助于减少WAL日志文件的产生。

pg_resetwal 命令调整WAL日志文件大小为 64MB:

--wal-segsize=wal_segment_size

--wal-segsize=size

pg_resetwal 用来重置WAL日志和其他控制信息,常用于数据库恢复场景,助于于 万不得已不轻易使用,以下演示使用pg_resetwal命令调整WAL日志文件大小,仅供测试参考,生产环境慎用。

启动数据库提示 min_wal_size 参数要花费需设置成 wal_segment_size 大小为 2 倍。

链接:https://item.jd.com/12405774.html

Allow the WAL file size to be set via initdb (Beena Emerson)

Previously the 16MB default could only be changed at compile time.

发现 pg_wal 目录中原有的WAL日志被清理,一同生成了大小为64MB新的WAL文件。

修改 postgresql.conf 相关配置,之后 启动数据库。

Set the WAL segment size, in megabytes. This is the size of each individual file in the WAL log. The default size is 16 megabytes. The value must be a power of 2 between 1 and 1024 (megabytes). This option can only be set during initialization, and cannot be changed later.

It may be useful to adjust this size to control the granularity of WAL log shipping or archiving. Also, in databases with a high volume of WAL, the sheer number of WAL files per directory can become a performance and management problem. Increasing the WAL file size will reduce the number of WAL files.

initdb 命令关于修改 WAL 文件大小选项,如下:

下面分别演示通过 initdbpg_resetwal 修改 WAL 文件大小。

Set the new WAL segment size, in megabytes. The value must be set to a power of 2 between 1 and 1024 (megabytes). See the same option of initdb for more information.

验证WAL文件大小,如下:

启动数据库正常,如下:

最后推荐和张文升一同编写的《PostgreSQL实战》,本书基于PostgreSQL 10 编写,共18章,重点介绍SQL高级结构、并行查询、分区表、物理一键复制、逻辑一键复制、备份恢复、高可用、性能优化、PostGIS等,含高少许实战用例!

查看当前数据库的 pg_wal 目录,如下:

pg_resetwal 操作时都要关闭数据库,如下。

验证WAL文件大小,如下:

可见WAL文件大小为64MB。

PostgreSQL 11 版本的俩个多多 重要调整是支持 initdbpg_resetwal 修改 WAL 文件大小,而 11 版本之后 助于助于 在编译安装 PostgreSQL 时设置 WAL 文件大小。其他结构助于方便 WAL 文件的管理。

pg_resetwal 命令关于调整WAL文件大小的选项,如下:

根据提示调整 postgresql.conf,设置如下:

pg_wal 目录中已有少许WAL日志文件,WAL文件大小为16MB,计划将WAL日志文件调整成64MB。

以下演示在已有PostgreSQL实例基础上调整WAL日志文件大小。

初始化俩个多多 新的 PostgreSQL 数据库实例,指定WAL文件大小64MB,如下: