上下文:Postgres 9.4 上的主从复制,从几周前死了:
- 从站从主站复制了一个 WAL 文件,
- 告诉主人文件被复制了,
- 主人删除了wal文件,
- 奴隶试图播放损坏的 wal 文件,
- 发现文件已损坏,
- 并放弃启动。
与此同时,master 积累的日志比数据库本身还多。
我如何告诉 master 复制已经结束(重新配置复制)?任何一般性意见如何处理这种情况?
上下文:Postgres 9.4 上的主从复制,从几周前死了:
与此同时,master 积累的日志比数据库本身还多。
我如何告诉 master 复制已经结束(重新配置复制)?任何一般性意见如何处理这种情况?
您必须使用复制槽。它导致主服务器保留日志文件,因为它仍然认为副本将需要它们。(这就是复制槽的目的)。 找到插槽并将其删除。然后为您需要播种的新副本创建一个新副本。
pg_archivecleanup
某些操作系统(例如 Windows Server)和 NAS 配置上的命令可能会在其某些内部检查中被错误地指示无法删除文件(尽管文件权限允许删除文件),尽管如果内部省略检查,则文件被成功删除。这解决了我提出的一些问题,目前尚不清楚如何“取消注册”备用从站。如果奴隶走了
SELECT * FROM pg_replication_slots
就是空的。如果重新安装了复制,则可能需要增加max_wal_senders
,因为“旧”复制继续使用一个连接。