gpt4 book ai didi

linux - pgbouncer是否可以在不重启的情况下重新读取/etc/hosts文件

转载 作者:太空狗 更新时间:2023-10-29 12:24:42 26 4
gpt4 key购买 nike

pgbouncer 有没有办法在不重启的情况下强制重新读取 /etc/hosts 文件?我已经向 /etc/hosts 添加了一个新服务器,我希望 pgbouncer 能够以最少的麻烦连接到新服务器。

我知道发出 RELOAD; 命令会强制重新读取配置文件,但似乎这不适用于 /etc/hosts。同时运行命令 SHOW DNS_HOSTS(在更改配置和 /etc/hosts 之后)新的 hostname 值会出现,但是 addrs 值留空。

pgbouncer 版本:1.7.2 运行于 Ubuntu 14.04

最佳答案

请不要将此视为使用说明。这是更学术的兴趣——你需要做些什么来使 pgbouncer 1.7 重读 /etc/hosts 而无需重新启动:

第一个演示:

pgbouncer=# show dns_hosts;
hostname | ttl | addrs
----------+-----+-------------
one | 6 | 127.0.0.3:0
(1 row)

pgbouncer=# \! sudo sed -i 's/127.0.0.3/127.0.0.2/' /etc/hosts
pgbouncer=# pause test;
PAUSE
pgbouncer=# kill test;
KILL
pgbouncer=# resume test;
RESUME
pgbouncer=# \! psql -p 6432 -h 127.0.0.1 -U vao -d test -c "\! tail -1 /etc/hosts"
Password for user vao:
127.0.0.2 one
pgbouncer=# show dns_hosts;
hostname | ttl | addrs
----------+-----+-------------
one | 7 | 127.0.0.2:0
(1 row)

pgbouncer=# \! sudo sed -i 's/127.0.0.2/127.0.0.12/' /etc/hosts
pgbouncer=# pause test;
PAUSE
pgbouncer=# kill test;
KILL
pgbouncer=# resume test;
RESUME
pgbouncer=# \! psql -p 6432 -h 127.0.0.1 -U vao -d test -c "\! tail -1 /etc/hosts"
Password for user vao:
127.0.0.12 one
pgbouncer=# show dns_hosts;
hostname | ttl | addrs
----------+-----+--------------
one | 10 | 127.0.0.12:0
(1 row)

现在为什么:RELOAD 重新读取配置,因此在这里无济于事。 dns_max_ttl控制dns返回的几个reselves之间的roundroubin,这里就不玩了。记忆

Hostnames are resolved on connect time

我假设为了重新启动连接我需要删除现有连接(这样连接就不会从池中获取) - 两种方法 - 重启 pgbouncer 或 KILL db - 从 pgbouncer.ini [databases] 部分将影响隔离到只有一个数据库。所以我加了

test = host=one port=5432 dbname=t

对它和

127.0.0.3   one

/etc/hosts。其余部分在演示中。

我会把这个答案解释为作弊——我没有重新启动 pgbouncer,但是所有现有的到想要的数据库的连接都需要被删除。 (当然我们不会影响连接的其他数据库客户端,但仍然如此)。所以答案是 - 是的,您可以在不重新启动的情况下执行此操作,但是与该数据库的所有连接都将被删除,因此您不能在不删除与已更改主机的现有连接的情况下执行此操作。只是 PAUSE + RESUME 组合在这里无济于事,因为

Hostnames are resolved on connect time

关于linux - pgbouncer是否可以在不重启的情况下重新读取/etc/hosts文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45499817/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com