将 AWS RDS postgres db 与可写 RDS postgres db 同步

Sync AWS RDS postgres db with writable RDS postgres db

我想要一个像只读副本一样与我的生产数据库同步的 Postgres 数据库,但我也想写入该数据库。 AWS 为 MySQL 和 MariaDB 提供了可写的只读副本,但 Postgres 不提供。还有其他方法可以实现吗?

好吧,根据定义,只读副本是不可写的,所以恐怕我认为您不会对这种方法有太多好感。

Amazon themselves state 只读副本用于只读流量:

You can create one or more replicas of a given source DB Instance and serve high-volume application read traffic from multiple copies of your data, thereby increasing aggregate read throughput.

现在,正如您所说,对于 MySQL 只读副本可以 提升 为主(因此变得可写),但要特别注意 "when needed" 下面:

Read replicas can also be promoted when needed to become standalone DB instances.

但是,RDS 本身不支持 multi-master 部署 MySQL。

对于 PostgreSQL 甚至 "worse"。 AWS RDS for Postgres(在撰写本文时)不支持 read-replicas 的自动提升,让您只有 Multi-AZ 作为您唯一的选择。

在 RDS 之外,multi-master 部署 PostgreSQL(这听起来像您正在寻找的)需要更精细的设置。您可以在 clustering section of their wiki.

中找到更多信息

一般来说,横向扩展关系型/SQL 数据库可能不会让您有很多乐趣,而且您一定会 运行 遇到问题。

那是因为它们根本不是为水平扩展而设计的,就像较新的 "NoSQL" 数据库一样(看看 MongoDB or Cassandra,等等)。你最好垂直缩放它们,因为它会带你走多远(而且它会带你走很多路)。

据我所知,唯一(正在)构建用于横向扩展的关系数据库是 CockroachDB,但尽管这是一个非常有前途的解决方案,但它仍处于测试阶段——还没有 1.0 版本。