我已经通过日志传送成功地设置了一个主节点和从节点的连续存档和恢复,并使用PostgreSQL 8.4。我使用“保持”来监视两个节点,并且可以成功地触发故障转移。
如果我在故障转移后立即将老主人带回到网上,那么日志传送就会立即恢复,主人就会坐在那里等待一个从未到达的WAL文件。这似乎是一个时间线问题,老主人正在寻找WAL文件,从它知道的最后一个时间表,但根据设计,新的主人提前了时间线。
我看到了一些相关的讨论,这些讨论似乎表明自动故障回退是不可能的,但它们似乎涉及更晚版本的postgres和流复制。
假设日志传送恢复按其应有的方式进行,那么自动故障回退是可能的,还是必须重新执行进行基本备份、将其复制到旧的主服务器,然后恢复日志传送的过程?
编辑:我突然意识到,我并不是指自动故障回退,而是希望旧的主服务器以备用的形式重新加入集群。
谢谢
发布于 2016-03-08 17:30:11
一般情况下,不可能将原始主机转换为新主机的备用,而不复制新主机,用所述副本替换旧主机的所有数据文件,并恢复日志传送。
这是因为,通常情况下,旧主机上的事务将丢失,而这些事务没有到达待机状态。
您可以使用rsync使副本运行得更快--因为两个数据库的内容可能非常相似。工具pg_rewind正是为此目的而发明的:它将“倒带”老主人到故障转移发生的时刻。
参见海基·林纳康加斯在http://hlinnaka.iki.fi/presentations/NordicPGDay2015-pg_rewind.pdf上对整个主题的出色介绍
https://dba.stackexchange.com/questions/131509
复制相似问题