首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为wal_keep_segments设置PostgreSQL hot_standby

为wal_keep_segments设置PostgreSQL hot_standby
EN

Stack Overflow用户
提问于 2015-01-27 02:00:42
回答 1查看 8.1K关注 0票数 6

我在设置PostgreSQL hot_standby时遇到了麻烦。当尝试在运行pg_basebackup之后启动数据库时,我在postgresql.log中接收到FATAL: could not receive data from WAL stream: ERROR: requested WAL segment 00000001000006440000008D has already been removed。在IRC中进行了简短的讨论之后,我了解到错误很可能源于我的编写密集型数据库的wal_keep_segments设置太低。

如果可能的话,如何计算wal_keep_segments的适当设置?此设置的可接受值是什么?

我的工作是:

  • Postgresql 9.3
  • Debian 7.6
EN

回答 1

Stack Overflow用户

发布于 2015-06-19 18:33:14

wal_keep_segments可以估计为pg_xlog目录中每分钟新的WAL段的平均数量乘以希望安全的分钟数。请记住,在wal_level从其默认值minimal更改为archivehot_standby后,预期利率会增加。唯一的成本是磁盘空间,默认情况下,每段磁盘空间为16 MB。

我通常使用2的幂作为值。以每分钟1段的速度计算,256的值给我大约4小时的时间来设置待机时间。

您也可以考虑在pg_basebackup中使用WAL流。这是它的--xlog-method=stream选项。不幸的是,至少在2013年,根据关于PostgreSQL邮件列表的讨论,可能仍然建议将wal_keep_segments设置为非零值--这是为了防止流无法跟上。但是,如果您确实使用了pg_basebackup,也不要忘记--checkpoint=fast

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28162021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档