概述我在
设置PostgreSQL hot_standby时遇到了麻烦.在运行pg_basebackup后尝试启动数据库时,我收到,FATAL:无法从WAL流接收数据:ERROR:请求的WAL段00000001000006440000008D已在 postgresql.log中删除.在IRC中进行了简短的讨论后,我开始明白错误可能源于我的写密集型数据库的wal_keep_segments设置太低. 如果 我在设置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.
总结
以上是内存溢出为你收集整理的为PostgreSQL hot_standby设置wal_keep_segments全部内容,希望文章能够帮你解决为PostgreSQL hot_standby设置wal_keep_segments所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
评论列表(0条)