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

标题: PG11以上版本调整WAL文件大小 [打印本页]

作者: 郑全    时间: 2023-12-23 17:52
标题: PG11以上版本调整WAL文件大小
我们知道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













欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2