pg调整wal_segment_size(默认是16MB)大小
环境:
OS:Centos 7
DB:pg14
pg默认的wal_segment_size是16MB,下面可以通过如下命令修改
1.关闭数据库
systemctl stop postgresql-14
2.修改wal默认大小
[root@dsc1 bin]# /usr/pgsql-14/bin/pg_resetwal --wal-segsize=64 -D /opt/pg14/data
pg_resetwal: error: cannot be executed by "root"
pg_resetwal: You must run pg_resetwal as the PostgreSQL superuser.
切换到postgres用户下执行
[root@dsc1 ~]# su - postgres
-bash-4.2$ /usr/pgsql-14/bin/pg_resetwal --wal-segsize=64 -D /opt/pg14/data
Write-ahead log reset
执行命令后会清空之前的wal日志,重新生成大小为64MB的日志
[root@dsc1 pg_wal]# ls -al
total 65540
drwx------. 3 postgres postgres 60 May 22 15:41 .
drwx------. 19 postgres postgres 4096 May 22 15:43 ..
-rw-------. 1 postgres postgres 67108864 May 22 15:43 000000010000000000000001
drwx------. 2 postgres postgres 6 May 22 15:41 archive_status
3.设置 min_wal_size
min_wal_size 参数至少需设置成 wal_segment_size 大小为2倍.
min_wal_size=128
4.启动数据库
systemctl start postgresql-14
5.登录查看
-bash-4.2$ psql -h localhost -U postgres -p5432
psql (15.6, server 14.11)
Type "help" for help.
postgres=# show wal_segment_size;
wal_segment_size
------------------
64MB
(1 row)
有主从关系的环境,从库会报如下错误:
2024-05-22 16:31:11 CST [17300]: [2-1] user=,db=,app=,client=FATAL: could not receive data from WAL stream: ERROR: requested WAL segment 000000010000000000000001 has already been removed
这种情况只能是重新部署从库.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2019-05-22 ogg主库更新从库没有该记录的处理办法