复制失败;如何继续下去?


10

我在Ubuntu上运行Postgres 9.1.6,并且在主服务器和从服务器之间设置了流复制设置。一切都运行顺利,直到数据库崩溃为止,我们不得不重新启动这两个盒子。

现在,复制已停止,并且当检查两个框中的日志时,我看到以下消息:

CDT FATAL:请求的WAL段0000000100000224000000FA已被删除

一遍又一遍是同一段。从我的Google搜索中,似乎复制服务器正在尝试从主服务器检索此段,但是现在不再存在。好的,但是如何解决这个问题?我是否需要进行新的备份并将其重新同步到从站?有没有一种简单的方法可以使从站恢复同步?

Answers:


7

是的,您将不得不给从属服务器一个新的基础备份(对于流复制,仅步骤1至4)。

您的问题可能是由于wal_keep_segments的值太低而发生的。该值必须足够高,以便当从属服务器关闭一段时间后,主控服务器将不会开始回收分段,而该从属服务器尚未处理。


1

在以流方式将从设备连接到主要主机之前,请验证所需的WAL是否在您要从其还原的位置以进行初始还原

当您要从中恢复以进行初始恢复的位置中不存在WAL段时,可能会发生您的问题。

如果在这种情况下一切正常,则应检查中的restore_command recovery.conf


0

另一个解决方法是从主服务器执行wal backup_push,然后立即从备用从服务器执行backip_fetch并启动备用服务器。


2
请详细说明此过程为何有效
RolandoMySQLDBA 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.