1

例如,如果我有 5 台服务器(A、B、C、D、E)

我们可以设置复制因子为 3 的数据分布吗?(例如一个写入到ABC,其他记录到ABD,其他记录到ABE,等等),所以当节点C发生一些硬件故障时,仍然有一些记录存在。

我们是否也可以添加一个新节点,然后在不停机的情况下将存储的数据平衡到新节点?

4

1 回答 1

5

是的,它可以做到这一点,但不是你想的那样。您所描述的是 NoSQL 设置。Postgres-XL 是一个 MPP 数据库。

当您创建一个表时,您定义它的“分发方式”选项,它可以是复制、循环、哈希、取模等。您需要查看每个选项的详细信息。您还可以将表空间定义为位于已定义节点上。

您的设置将类似于

  • Node1 事务管理器
  • Node2 事务管理器代理
  • 节点 3 协调器 1 和数据节点 1
  • 节点 4 协调器 2 和数据节点 2
  • 节点 5 数据节点 3

注意:重要的是要指出,正如我刚刚发现的那样,Postgres-XL 没有 HA 或故障转移支持。这意味着如果单个节点发生故障,则数据库将关闭并且需要手动干预。更糟糕的是,如果您使用循环、哈希、模共享选项,如果您丢失了单个节点上的磁盘,则您完全丢失了数据库。

您可以拥有镜像每个节点的备用节点,但这将使您需要的节点数量增加一倍,并且仍然不会进行故障转移。您必须手动配置它以使用备用节点并重新启动它。

于 2017-02-28T21:49:57.200 回答