首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在发生致命错误后恢复Postgres复制从服务器

如何在发生致命错误后恢复Postgres复制从服务器
EN

Database Administration用户
提问于 2015-10-25 13:58:35
回答 1查看 9.6K关注 0票数 4

在4台Debian 8 Jessie服务器上,我有PostgreSQL 9.4.3主+3奴隶。在主服务器上的大量数据更改之后,从日志显示了以下错误:

LOG: started streaming WAL from primary at 182/0 on timeline 1 FATAL: could not receive data from WAL stream: ERROR: requested WAL segment 000000010000018200000000 has already been removed

我需要哪些步骤来恢复/重建奴隶?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2015-10-25 17:18:38

如果您设置了一个archive_command,并将您的WAL段保存到其他地方,那么您只需在WAL存档的每个次要文件中指向recovery.conf中的一个restore_command,它们就会抓住下一个所需的段并愉快地继续进行。

如果您没有设置一个archive_command,那么您需要在您的每个次要文件上使用一个pg_basebackup,因为没有这个WAL段,它们就永远赶不上了。既然是9.4,我建议还设置一个复制槽,这将防止主服务器回收流副本所需的WAL段。

您可以在复制槽文档中找到更多关于这一点的信息。

否则,您需要有一个archive_command集,它可以将WAL保存到其他地方才能赶上,或者您需要在主服务器上调整足够高的wal_keep_segments,使其不会在系统负载很重的情况下回收文件。

archive_command文档中介绍了在postgresql.conf中设置连续归档与时间点恢复

场外复制问题及解决方法中介绍了一个类似于您所处的情况的示例,以及防止这种情况的一个潜在解决方案。

希望这是足够的信息,让你的副本回到工作状态。=)

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

https://dba.stackexchange.com/questions/119114

复制
相关文章

相似问题

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