PostgreSQL - 使用逻辑复制通过一个副本实现高可用性

问题描述 投票:0回答:1

场景:

  1. 逻辑复制配置为从系统1到系统2(系统1为主)
  2. 当系统1出现故障时,我们切换到系统2进行事务(系统2成为主系统)
  3. 当系统 1 再次启动时,我们希望从系统 2 到系统 1 进行逻辑复制(系统 2 继续作为主系统,直到出现故障)
  4. 当系统2出现故障时,我们切换到系统1进行事务(系统1成为主系统)
  5. 一次仅使用1个PostgreSQL节点进行事务,其他系统PostgreSQL节点此时不会有任何事务
  6. 物理复制不是一个选项,因为我们需要触发器来触发处于备用状态的辅助系统。物理复制使其只读
  7. 任何数据丢失都不是一个选择
  8. 可以使用Postgres扩展(但没有授权的第三方工具)

对 PostgreSQL 复制了解不多,但据我了解,逻辑复制槽存在一些问题,并且在故障转移/回退期间不安全。

使用最新版本的PostgreSQL,如果我们想使用逻辑复制来实现高可用性,可能存在哪些缺点? (使用一个主系统和一个辅助系统进行故障转移/回退)

postgresql replication
1个回答
0
投票

为了避免数据丢失,最好的方法是使用流式同步复制。

如果您无法使用它并且更喜欢使用逻辑复制,则在这种情况下避免数据丢失的最安全方法是在每次故障转移过程后重建订阅者节点。

请记住,您需要首先创建架构或在订阅者节点中恢复备份,因为数据库架构和 DDL 命令不会在逻辑复制中复制

© www.soinside.com 2019 - 2024. All rights reserved.