丢失对Postgres-XL数据节点的访问权限应该是多么透明?

时间:2016-08-25 16:26:39

标签: database postgres-xl

我已经建立了一个测试Postgres-XL集群,其架构如下:

  • gtm - vm00
  • coord1 + datanode1 - vm01
  • coord2 + datanode2 - vm02

我创建了一个新数据库,其中包含一个通过复制分发的表。这意味着我应该在每个单独的datanode中拥有该表的精确副本。

对表进行操作很有效,我可以看到连接到所有协调节点时复制的更改。

然而,当我模拟其中一个数据节点发生故障时,我仍然可以正常读取表中的数据,我无法添加或修改任何内容,并且收到以下错误:

ERROR:  Failed to get pooled connections

我正在考虑将Postgres-XL部署为适用于相当数量的应用程序的高可用数据库后端,我无法控制这些应用程序如何与数据库交互(如果这些应用程序无法写入,则可能会出现问题。当一个datanode关闭时到数据库。)

据我了解,Postgres-XL应该以非常透明的方式实现复制表的高可用性,并且应该能够支持丢失一个或多个datanode(只要至少有一个仍然可用 - 再次,这只是为了复制表),但似乎并非如此。

这是预期的行为吗?为了能够承受一个或多个数据节点的下降,可以做些什么?

1 个答案:

答案 0 :(得分:0)

因此事实证明它根本不透明。令我惊讶的是,Postgres-XL没有高效的支持或恢复。意味着如果丢失一个节点,数据库将失败。如果您使用round robbin或hash DISTRIBUTED BY选项,如果丢失了节点中的磁盘,则会丢失整个数据库。我简直不敢相信,但事实就是这样。

他们有一个“待机”服务器选项,它只是您拥有的每个节点的镜像节点,但即使这样也需要手动设置它以恢复并使您需要的节点数量翻倍。对于数据保护,您必须使用REPLICATION DISTRIBUTED BY选项,该选项速度较慢并且没有故障转移支持,因此您必须手动重新启动它并重新配置它以不使用故障节点。

https://sourceforge.net/p/postgres-xl/mailman/message/32776225/

https://sourceforge.net/p/postgres-xl/mailman/message/35456205/

相关问题