【发布时间】:2014-03-12 09:09:36
【问题描述】:
我正在使用内置流复制设置 postgresql HA 集群,由于 2 台服务器上的多个 NIC 配置,我想将 postgresql 复制网络流量限制到第二个 NIC(eth1),但我没有找到配置或文件来实现它。 任何线索表示赞赏,谢谢。
谢谢, 埃姆雷
【问题讨论】:
标签: postgresql networking replication database-replication
我正在使用内置流复制设置 postgresql HA 集群,由于 2 台服务器上的多个 NIC 配置,我想将 postgresql 复制网络流量限制到第二个 NIC(eth1),但我没有找到配置或文件来实现它。 任何线索表示赞赏,谢谢。
谢谢, 埃姆雷
【问题讨论】:
标签: postgresql networking replication database-replication
listen_addresses in postgresql.conf
这与所有其他连接使用的设置相同。无法为流复制绑定不同的侦听 IP。
pg_hba.conf 可用于控制哪些源 IP 可以实际进行复制连接以及它们需要什么凭据。它也可能需要 SSL。
【讨论】:
incoming 和outgoing 连接以进行流复制?
不,listen_addresses 绝对不是这样做的正确位置,而且您不会以这种方式完成您想要的。
流复制由备用(从)服务器启动,基本上它将决定使用哪些网卡。意思是slave上需要做如下配置:
1) 如果您想强制使用主服务器上的特定 NIC(IP 地址),您将在从属服务器上的 recovery.conf 文件中设置适当的 IP。比如:
primary_conninfo = 'host=192.168.1.1 port=5432 ...
这样您将确保在主服务器上使用 192.168.1.1 IP(因此对应的 NIC)。当然你需要确保主服务器被配置为监听这个地址(在 postgresql.conf 中提到了listen_addresses)。
2) 如果您想确保使用从属服务器上的特定 NIC,您可以通过设置适当的路由(再次在从属服务器上)来完成此操作。假设您的主节点将在 192.168.1.1 联系,并且您的从节点有两个 NIC(eth0 192.168.1.3 和 eth1 192.168.1.4),并且您要确保使用 eth1。然后可以添加如下路由:
route add 192.168.1.1/32 dev eth1
这样,您将确保无论何时从站与主站 (192.168.1.1) 通信,它将使用 eth1 (192.168.1.4)。在主服务器上,您需要确保 pg_hba.conf 中可以接受 192.168.1.4。
另请注意,通过设置路由,您将定义到主服务器的所有流量,而不仅仅是复制流量。
【讨论】: