关于复制 RDS PostgreSQL 实例的建议?

tha*_*llo 6 postgresql replication aws amazon-rds

在我的公司,我们正在寻找将 PostgreSQL 实例复制到另一个数据库的替代方法。在我们的场景中,我们有一个生产PostgreSQL 9.5 数据库服务器,新条目一直在传入,我们必须将它们同步到副本服务器

但我们面临着一些挑战:

  • 我们需要能够写入副本数据库,因为我们还希望包含来自其他来源的数据。我们尝试使用 AWS 自己的 PostgreSQL,但显然它不允许写入副本。
  • 它需要复制 PostgreSQL 特殊类型,例如计算索引、枚举类型和 JSON 列。我们研究过的一些工具不适用于这些类型。
  • 此外,此工具必须在没有超级用户权限的情况下运行,因为数据库托管在 AWS RDS 中,并且它不会授予您超级用户权限。

我们研究了几种解决方案,甚至自己编写了,但是我们在副本中存在一致性问题(即一些失败的补丁),以及一些ALTER TABLE无法复制的 s。我们仍然没有想出一种方法来隔离和纠正源代码中的这些问题。

鉴于所有情况,我们正在研究替代方案,并希望听到有类似问题的人的意见。

tha*_*llo 1

经过深入研究这个问题后,我们选择了AWS自己的数据库迁移服务。它允许我们从生产源实例到目标操作副本(两个 PostgreSQL 实例)进行 CDC 复制。在操作副本中,我们也可以复制其他类型的数据。

它还具有能够复制到其他类型目标的额外好处,例如 MySQL、S3 或 RedShift(我们也使用它们)。

缺点是它与 AWS 生态系统相关,但对于我们的用例来说这还可以,因为我们所有其他东西都已经在 AWS 上了。请注意,只有 DMS 和 RDS 必须在 AWS 上运行。您的目标 PostgreSQL 实例可以托管在 AWS 外部。