失去对 Postgres-XL 数据节点的访问权限应该有多透明?
How transparent should losing access to a Postgres-XL datanode be?
我已经设置了一个具有以下架构的测试 Postgres-XL 集群:
- gtm - vm00
- coord1+datanode1 - vm01
- coord2+datanode2 - vm02
我创建了一个新数据库,其中包含一个通过复制分发的 table。这意味着我应该在每个数据节点中都有 table 的精确副本。
在 table 上执行操作效果很好,我可以看到在连接到所有协调器节点时复制的更改。
然而,当我模拟其中一个数据节点发生故障时,虽然我仍然可以很好地读取 table 中的数据,但我无法添加或修改任何内容,并且收到以下错误:
ERROR: Failed to get pooled connections
我正在考虑将 Postgres-XL 部署为相当数量的应用程序的高可用性数据库后端,但我无法控制这些应用程序如何与数据库交互(如果这些应用程序无法写入,这可能是个大问题在一个数据节点关闭时连接到数据库)。
据我了解,Postgres-XL 应该以一种非常透明的方式为复制的 table 实现高可用性,并且应该能够支持丢失一个或多个数据节点(只要至少有一个仍然可用) - 同样,这仅适用于复制的 tables),但情况似乎并非如此。
这是预期的行为吗?为了能够承受一个或多个数据节点宕机,可以做些什么?
所以事实证明它根本不透明。令我惊讶的是,Postgres-XL 没有构建高可用支持或恢复。这意味着如果您丢失一个节点,数据库就会失败。如果您使用循环法或散列 DISTRIBUTED BY 选项,如果您在节点中丢失了一个磁盘,那么您将丢失整个数据库。我简直不敢相信,但事实就是如此。
他们确实有一个 "stand by" 服务器选项,它只是您拥有的每个节点的镜像节点,但即使这样也需要手动将其设置为恢复并使您需要的节点数量加倍。为了保护数据,您将不得不使用 REPLICATION DISTRIBUTED BY 选项,该选项速度慢得多,并且同样没有故障转移支持,因此您将不得不手动重新启动它并重新配置它以不使用故障节点。
https://sourceforge.net/p/postgres-xl/mailman/message/32776225/
https://sourceforge.net/p/postgres-xl/mailman/message/35456205/
我已经设置了一个具有以下架构的测试 Postgres-XL 集群:
- gtm - vm00
- coord1+datanode1 - vm01
- coord2+datanode2 - vm02
我创建了一个新数据库,其中包含一个通过复制分发的 table。这意味着我应该在每个数据节点中都有 table 的精确副本。
在 table 上执行操作效果很好,我可以看到在连接到所有协调器节点时复制的更改。
然而,当我模拟其中一个数据节点发生故障时,虽然我仍然可以很好地读取 table 中的数据,但我无法添加或修改任何内容,并且收到以下错误:
ERROR: Failed to get pooled connections
我正在考虑将 Postgres-XL 部署为相当数量的应用程序的高可用性数据库后端,但我无法控制这些应用程序如何与数据库交互(如果这些应用程序无法写入,这可能是个大问题在一个数据节点关闭时连接到数据库)。
据我了解,Postgres-XL 应该以一种非常透明的方式为复制的 table 实现高可用性,并且应该能够支持丢失一个或多个数据节点(只要至少有一个仍然可用) - 同样,这仅适用于复制的 tables),但情况似乎并非如此。
这是预期的行为吗?为了能够承受一个或多个数据节点宕机,可以做些什么?
所以事实证明它根本不透明。令我惊讶的是,Postgres-XL 没有构建高可用支持或恢复。这意味着如果您丢失一个节点,数据库就会失败。如果您使用循环法或散列 DISTRIBUTED BY 选项,如果您在节点中丢失了一个磁盘,那么您将丢失整个数据库。我简直不敢相信,但事实就是如此。
他们确实有一个 "stand by" 服务器选项,它只是您拥有的每个节点的镜像节点,但即使这样也需要手动将其设置为恢复并使您需要的节点数量加倍。为了保护数据,您将不得不使用 REPLICATION DISTRIBUTED BY 选项,该选项速度慢得多,并且同样没有故障转移支持,因此您将不得不手动重新启动它并重新配置它以不使用故障节点。
https://sourceforge.net/p/postgres-xl/mailman/message/32776225/
https://sourceforge.net/p/postgres-xl/mailman/message/35456205/