重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 940|回复: 0
打印 上一主题 下一主题

PG11以上版本调整WAL文件大小

[复制链接]
跳转到指定楼层
楼主
发表于 2023-12-23 17:52:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我们知道PG默认WAL文件是16M,有时为了性能原因,可能需要把 这个WAL文件调整到更大的大小,比如64M

在PG 11之前,只能在 CONFIGURE 源码阶段设置WAL的大小,从PG 11开始,可以在INITDB阶段调整大小,也是使用pg_resetwal 来调整大小,下面我们以 pg_resetwal  命令为例来调整大小。


1.关闭PG实例
   要调整WAL大小,必须要关闭PG实例,否则报错,如下:
   [postgres@dbserver1 ~]$ pg_resetwal --wal-segsize=64 /postgresql/pgdata
   pg_resetwal: error: lock file "postmaster.pid" exists
   pg_resetwal: hint: Is a server running?  If not, delete the lock file and try again.

   所以,先关闭PG实例

   [postgres@dbserver1 ~]$ pg_ctl stop
   waiting for server to shut down.... done
   server stopped

2.调整 WAL大小
   [postgres@dbserver1 ~]$ pg_resetwal --wal-segsize=64 /postgresql/pgdata
   Write-ahead log reset

3.验证大小
   [postgres@dbserver1 ~]$ ls -ltr $PGDATA/pg_wal

   总计 65536
   drwx------. 2 postgres postgres        6 11月27日 23:32 archive_status
   -rw-------. 1 postgres postgres 67108864 12月23日 17:25 000000010000000000000001

4.调整min_wal_size 为 wal 大小的2倍
  否则,直接启动会报错 ,如下:
  [postgres@dbserver1 ~]$ pg_ctl start
   waiting for server to start....2023-12-23 17:26:24.989 CST [3370] FATAL:  "min_wal_size" must be at least twice "wal_segment_size"
   2023-12-23 17:26:24.989 CST [3370] LOG:  database system is shut down
   stopped waiting
   pg_ctl: could not start server
   Examine the log output.

   直接修改POSTGRESQL.CONF
   修改后,如下:
   [postgres@dbserver1 pgdata]$ grep -i min_wal postgresql.conf
   min_wal_size = 128MB


5.启动PG
   [postgres@dbserver1 pgdata]$ pg_ctl start
   waiting for server to start....2023-12-23 17:28:50.565 CST [3406] LOG:  redirecting log output to logging collector process
    2023-12-23 17:28:50.565 CST [3406] HINT:  Future log output will appear in directory "pg_log".
    done
    server started


6.使用PG去验证
   --查看参数去验证
   postgres@:5432/postgres-3417#=show wal_segment_size;
   wal_segment_size
   ------------------
   64MB
   (1 row)

   --使用查看控制文件信息去验证
   [postgres@dbserver1 pgdata]$ pg_controldata  |grep segment
   Blocks per segment of large relation: 131072
   Bytes per WAL segment:                67108864








分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-11-25 04:20 , Processed in 0.101528 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表