我正在尝试将协调器绑定为仅侦听特定接口。在协调器上的 postgresql.conf 中指定时,似乎忽略了 listen_addressses 选项。
在协调器数据目录中还有另一个名为 postmaster.opts 的文件,似乎每次 pgxc_ctl 连接到协调器以启动/停止它时都会重置它。
如果我可以在该文件中包含 -h 选项,那么协调器将绑定到我选择的 IP。
有趣的是,如果在 listen_addresses 中指定,GTM 将绑定到 IP。协调器和数据节点都不会。
我一般浏览了 postgres-xl 文档、pgxc_ctl 文档、邮件列表和谷歌,但找不到如何做到这一点。我最后的手段是通读代码库(我现在正在尝试这样做)。
--- 编辑 1:
listen_addressses
只要 postgres 不以-i
switch开头,似乎就很荣幸。由于某种原因,pgxc_ctl-i
在协调器上添加到 postmaster.opts 中的调用参数列表。
--- 编辑 2:
-i
启动协调器(和数据节点)时,似乎在源代码中添加了选项。因此,前进的唯一方法是从源头修补和重建。
--- 编辑 3:
-o -i
在对 datanode_cmd.c 和 coord_cmd.c 进行更改(从所有对 pg_ctl 的调用中删除了开关)进行构建时,我一直在测试 pgxc_ctl 。通过这样做,协调器和数据节点现在都绑定到接口,listen_addresses
如postgresql.conf
. -o -i
理解为什么是硬编码会很有趣。问题解决了。