postgresql - 在 PostgreSQL 中重用旧的 master 作为 slave

标签 postgresql database-replication failover wal

我有一个主节点 (A) 和一个从节点 (B)。

假设在时刻 T 发生了一个检查点,并且自检查点以来已经完成了一些事务(脏页尚未保存在磁盘上)。假设交易后的WAL位置为X。

现在节点 A 出现故障,我已经将 B 提升为 master。

我想修复节点 A 并将其作为从节点附加到 B(当前主节点)。

我的疑问是,节点 A(旧主节点 A)中发生的事务是否会被重播,然后它会重播来自当前主节点(B)的流式 wal??

我的问题是,

1) 在这种情况下,wal 将从哪个点开始从新的主服务器流式传输到新的从服务器?从检查站还是从X位置?

2)当老主人被重用为奴隶时,重播从哪里开始?重播节点中存在的任何较旧的 wal?

最佳答案

如果节点A在节点B之前,则需要使用pg_rewind将其倒回到可以用作 B 的备用状态。

它所做的是确定最后一个公共(public)检查点并替换所有自此发生更改的 block 。

关于postgresql - 在 PostgreSQL 中重用旧的 master 作为 slave,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52637569/

相关文章:

python - Django 迁移被杀死

MySQL 查询表已满

在 xampp 上使用 phpmyadmin 复制 mysql 数据库

RabbitMQ HA 和故障转移

hadoop - 分布式系统-主服务器故障

postgresql - 如何批量刷新postgres数据库

python - 事务管理错误?

ruby-on-rails - 在生产环境中使用 Postgres 配置 Rails

postgresql - Postgres 重启/复制

load-balancing - 如何实现高可用?