Привязать координатор postgres-xl для прослушивания только на определенном интерфейсе
Я пытаюсь привязать координатор, чтобы прослушивать только определенный интерфейс. Кажется, опция listen_addressses игнорируется, когда указывается в postgresql.conf для координатора.
В каталоге данных координатора есть еще один файл с именем postmaster.opts, который, по-видимому, сбрасывается каждый раз, когда pgxc_ctl подключается к координатору для его запуска / остановки.
Если бы я мог включить опцию -h в этот файл, тогда координатор был бы привязан к IP по моему выбору.
Интересно, что GTM будет связываться с IP, если он указан в listen_addresses. Координатор, ни узел данных не будут.
Я просмотрел документацию по postgres-xl, документацию по pgxc_ctl, список рассылки и Google в целом, но не смог найти, как это сделать. Мое последнее средство - прочитать кодовую базу (что я сейчас пытаюсь сделать).
--- редактировать 1:
Похоже на то listen_addressses
почитается до тех пор, пока postgres не начинается с -i
переключатель. По какой-то причине pgxc_ctl добавляет -i
список параметров вызова в postmaster.opts, когда на координатора.
--- редактировать 2:
Похоже на то -i
опция добавляется в исходный код при запуске координатора (и узла данных). Так что единственный способ двигаться вперед - это исправлять и перестраивать из исходников.
--- редактировать 3:
Я тестировал pgxc_ctl при сборке с изменениями, внесенными в datanode_cmd.c, а также ordin_cmd.c (удален -o -i
переключается со всех вызовов на pg_ctl). Благодаря этому координатор и узел данных теперь привязываются к интерфейсу, как указано в listen_addresses
в postgresql.conf
, Было бы интересно понять, почему -o -i
был жестко закодирован. Задача решена.