3

我想要一个 Postgres 数据库,它与我的生产数据库同步,就像一个只读副本,但我也想写入那个数据库。AWS 为 MySQL 和 MariaDB 而不是 Postgres 提供可写的只读副本。有没有其他方法可以实现这一目标?

4

1 回答 1

2

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

亚马逊自己声明只读副本用于只读流量:

您可以为给定的源数据库实例创建一个或多个副本,并为来自多个数据副本的大容量应用程序读取流量提供服务,从而提高总读取吞吐量。

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

当需要成为独立数据库实例时,还可以提升只读副本。

但是,RDS 本身不支持 MySQL 的多主部署。

对于 PostgreSQL,情况甚至更“糟糕”。AWS RDS for Postgres(在撰写本文时)不支持只读副本的自动提升,因此您只能选择多可用区。

在 RDS 之外,PostgreSQL 的多主部署(听起来像您正在寻找的)需要更精细的设置。您可以在他们的 wiki 的集群部分找到更多信息。

作为一般说明,水平扩展关系/SQL 数据库可能不会让您有很多乐趣,并且您一定会在此过程中遇到问题。

那是因为它们根本不是为水平扩展而设计的,就像更新的“NoSQL”数据库一样(看看MongoDBCassandra等)。你最好垂直缩放它们,因为这会带你(它会带你相当长的一段路)。

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

于 2017-02-10T20:43:26.240 回答