备注:
PG版本:14.3
Table of Contents
一. 问题描述
今天早上到公司,突然发现备库停了,然后主库这边没找到报错日志,备库这般看到的日志是WAL日志的缺失
2023-06-15 01:50:56.778 UTC [55410] FATAL: 08P01: could not receive data from WAL stream: ERROR: requested WAL segment 0000000200005B5C000000A8 has already been removed
复制
TPS
pgAmin工具上看到,TPS在3000左右
最高峰TPS居然高达30W+
疑问:
真的有这么高的TPS吗,后面我运行sql脚本查看,没有这么高的并发,TPS大概在250上下。
PG服务器配置:
PG服务器的硬件配置还不错
二. 解决方案
因为主库没有设置归档(历史遗留问题),无奈只能重建备库了。
PG重建完成后,需做如下操作:
1. 需要开启归档模式: archive_mode = on archive_command ='cp %p /data/pgsql/14/data/pg_wal/archive_status/%f' archive_timeout = 1800s 2. 调整WAL空间参数 因为TPS较高,目前参数设置的是20GB,只能保存2个小时不到的WAL max_wal_size = 500GB 3. 开启复制槽 开启复制槽后,如主库WAL日志未被备库应用,则不会被主库删除 https://www.modb.pro/db/484613 https://www.postgresql.org/docs/14/warm-standby.html#STREAMING-REPLICATION-SLOTS 4. 定期清理WAL日志 我看备库下WAL目录有2000多日志 WAL目录下的archive_status 也有2000多日志
复制
后面发现问题依旧存在,又重新调整了一次参数;
我看了下官网: checkpoint如果太频繁会导致WAL日志较多 因为每次checkpoint完成后,第一个DML发生,会将整个数据块写入到WAL,后面再进行增量更新,所以checkpoint太频繁,会导致WAL较多。 PG参数调整: shared_buffers = 128GB (25%内存,之前是8G) checkpoint_timeout = 30min (之前是20分钟) max_wal_size = 256GB (shared buffers的两倍) min_wal_size = 64GB (shared buffer的一半) wal_keep_size = 128GB (之前是100GB) checkpoint_completion_target = 0.9 (之前是0,5) 另外现在主库和从库的资源不对等,从库同步压力较大,可以考虑给现有从库增加资源。
复制
参考:
- https://www.modb.pro/db/484613
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
外国CTO也感兴趣的开源数据库项目——openHalo
小满未满、
2029次阅读
2025-04-21 16:58:09
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
383次阅读
2025-04-15 14:48:05
QPlus V6.3 更新,新增PostgreSQL与PolarDB PG支持,OceanBase 容灾管理重磅上线
沃趣科技
261次阅读
2025-05-13 09:39:27
4月“墨力原创作者计划”获奖名单公布!
墨天轮编辑部
206次阅读
2025-05-13 16:21:59
中国PostgreSQL培训认证体系新增PGAI应用工程师方向
开源软件联盟PostgreSQL分会
192次阅读
2025-05-06 10:21:13
华象新闻 | PostgreSQL 18 Beta 1、17.5、16.9、15.13、14.18、13.21 发布
严少安
170次阅读
2025-05-09 11:34:10
PG生态赢得资本市场青睐:Databricks收购Neon,Supabase融资两亿美元,微软财报点名PG
老冯云数
167次阅读
2025-05-07 10:06:22
SQL 优化之 OR 子句改写
xiongcc
152次阅读
2025-04-21 00:08:06
告别老旧mysql_fdw,升级正当时
NickYoung
128次阅读
2025-04-29 11:15:18
PostgreSQL中文社区亮相于第八届数字中国峰会
PostgreSQL中文社区
119次阅读
2025-05-07 10:06:20