加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

为PostgreSQL hot_standby设置wal_keep_segments

发布时间:2020-12-13 18:10:18 所属栏目:百科 来源:网络整理
导读:我在设置PostgreSQL hot_standby时遇到了麻烦.在运行pg_basebackup后尝试启动数据库时,我收到,FATAL:无法从WAL流接收数据:ERROR:请求的WAL段00000001000006440000008D已在 postgresql.log中删除.在IRC中进行了简短的讨论后,我开始明白错误可能源于我的写
我在设置PostgreSQL hot_standby时遇到了麻烦.在运行pg_basebackup后尝试启动数据库时,我收到,FATAL:无法从WAL流接收数据:ERROR:请求的WAL段00000001000006440000008D已在 postgresql.log中删除.在IRC中进行了简短的讨论后,我开始明白错误可能源于我的写密集型数据库的wal_keep_segments设置太低.

如果可能,我如何计算wal_keep_segments的正确设置?此设置的可接受值是多少?

我在做什么:

> Postgresql 9.3
> Debian 7.6

wal_keep_segments可以估算为pg_xlog目录中每分钟新WAL段的平均数乘以您想要安全的分钟数.请记住,在将wal_level从其默认值minimal更改为archive或hot_standby之后,预计该速率会增加.唯一的成本是磁盘空间,默认情况下,每个段为16 MB.

我通常使用2的幂作为值.以每分钟大约1个段的速率,值256给我大约4小时来设置备用.

您也可以考虑使用带有pg_basebackup的WAL流.这是根据其–xlog-method = stream选项.不幸的是,至少从2013年开始,按照discussion on a PostgreSQL mailing list,仍然可以建议将wal_keep_segments设置为非零值 – 这是为了防止流无法跟上.如果你确实使用了pg_basebackup,也不要忘记–checkpoint = fast.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读