我应该如何处理 postgres-xl gtm 故障转移

Posted

技术标签:

【中文标题】我应该如何处理 postgres-xl gtm 故障转移【英文标题】:how I should handle postgres-xl gtm failover 【发布时间】:2016-12-29 22:42:52 【问题描述】:

我有一个类似 node1(gtm)、node2(gtm-slave)、node3(gtm-proxy1、coord1、datanode1)的集群,我使用 pgxc_ctl 设置这些节点。 我正在测试 gtm 故障转移。这是我所做的:

    将 pgxc_ctl.conf 从 node1 复制到 node2 关闭节点1 ssh int node2 并输入 pgxc_ctl,然后输入 failover gtm ssh进入node3,输入gtm_ctl reconnect -Z gtm_proxy -D proxydir -o "-s node2 -t 20001" 尝试 psql 它给我错误“致命:无法从 GTM 获取事务 ID。GTM 可能已失败或失去连接”

所以我输入“stop all”和“init all”,看起来它解决了这个问题。 但我认为我不需要重新启动集群。大家有什么建议

【问题讨论】:

【参考方案1】:

好的,我找到了原因。添加第一个datanode后,需要stop all并init all。如果我不这样做,postgres 将连接到 gtm 服务器而不是 gtm-proxy。

【讨论】:

警告:'init all' 将初始化您的集群——它适用于测试集群,但对于实时集群,它将清除您的数据。不要这样做。您可能需要更改您的 postgresql.conf 上的参考,以获得新 GTM 的正确端口和 ip。但不要在正在运行的集群上运行“init all”。

以上是关于我应该如何处理 postgres-xl gtm 故障转移的主要内容,如果未能解决你的问题,请参考以下文章

我应该如何处理缓存设置?

我应该如何处理“'someFunction' 不是从 'namespace:somePackage' 导出的对象”错误? [关闭]

关于颠覆,我应该如何处理供应商目录?

我应该如何处理 RESTful API 中的对象层次结构?

我应该如何处理包中的头文件?

你应该如何处理 UIAlertAction 的闭包参数