【问题标题】:could we bind source IP for postgresql streaming replication?我们可以为 postgresql 流复制绑定源 IP 吗?
【发布时间】:2014-03-12 09:09:36
【问题描述】:

我正在使用内置流复制设置 postgresql HA 集群,由于 2 台服务器上的多个 NIC 配置,我想将 postgresql 复制网络流量限制到第二个 NIC(eth1),但我没有找到配置或文件来实现它。 任何线索表示赞赏,谢谢。

谢谢, 埃姆雷

【问题讨论】:

    标签: postgresql networking replication database-replication


    【解决方案1】:

    listen_addresses in postgresql.conf

    这与所有其他连接使用的设置相同。无法为流复制绑定不同的侦听 IP。

    pg_hba.conf 可用于控制哪些源 IP 可以实际进行复制连接以及它们需要什么凭据。它也可能需要 SSL。

    【讨论】:

    • 所以您的意思是,listen_addresses 用于incomingoutgoing 连接以进行流复制?
    • 不,出站连接与任何其他 tcp/ip 连接一样,它们将遵循默认源地址选择。如果不能基于目标地址/网络,可以使用策略路由来控制。
    【解决方案2】:

    不,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。

    另请注意,通过设置路由,您将定义到主服务器的所有流量,而不仅仅是复制流量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-20
      • 2017-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-10
      • 2017-06-05
      相关资源
      最近更新 更多