pg_rewind:源集群和目标集群在同一时间线上

pg_rewind: source and target cluster are on the same timeline

我尝试通过以下命令使用 pg_rewindsource/target 集群之间进行同步。 而且我 100% 知道 source/target 簇中的内容不再相同。

/usr/pgsql-12/bin/pg_rewind --source-server="192.168.100.100 user=postgres password=mypassword"  -D /var/lib/pgsql/12/data --progress

pg_rewind 给出以下消息

pg_rewind: source and target cluster are on the same timeline
pg_rewind: no rewind required

我不明白 pg_walbase 目录的内容在 source/target 之间有何不同,但 pg_rewind 没有意识到!!

pg_rewind仅撤销目标服务器上晚于最新公共检查点的数据修改。

在最新的公共检查点之后在源服务器上发生的修改将被忽略——当目标服务器成为源服务器的备用服务器时,无论如何都会恢复这些修改。

所以目标服务器可能在源服务器升级之前就被彻底关闭了。

关于时间线的消息纯属巧合,并非第二条消息的原因。