“无法创buildIPv6套接字”postgresql备用错误

我正在尝试使用以下步骤创buildPostgresql 9.1热备份:

  1. configuration2个虚拟linux机器。 主人的ip:10.10.10.1,备用的ip:10.10.10.2。 平测通过。
  2. 在两者上恢复相同的数据库备份。
  3. 主编的pg_hba。 补充行:

    host replication postgres 10.10.10.2/32 md5 
  4. 编辑硕士的postgresql.conf:

     listen_address = '*' wal_level = hot_standby max_wal_senders = 3 
  5. 在Standby上创buildrecovery.conf:

     standby_mode = 'on' primary_conninfo = 'host=10.10.10.1' 

添加recovery.conf后,我无法启动备用服务器。 在启动日志中,我得到一个错误:

 > could not create IPv6 socket 

我错过了什么吗?

当内核中没有启用IPv6时,会发生这种情况,但IPv6地址在某处发布。

有时候/etc/hosts localhost指定127.0.0.1 (IPv4)和::1 (IPv6)。 在这种情况下,您可以删除IPv6别名以避免这种错误。

统计信息收集器(由PostgreSQL启动的一个单独的进程)使用硬编码的名字localhost ,所以这个问题将使它无法启动提到的错误信息。 但是,这不应该阻止PostgreSQL本身的启动。

如果*碰巧包含有问题的IPv6地址,则可以通过在listen_addresses进行select来解决问题(无论如何,这是一个很好的做法):

listen_addresses = 127.0.0.1,10.10.10.1#如果需要添加其他接口

要禁用IPv6错误,您必须执行以下步骤。

  1. 将下面的代码粘贴到这个文件中(/etc/sysctl.conf)

    net.ipv6.conf.all.disable_ipv6 = 1

  2. 在postgresql.conf文件中,将监听地址更改为0.0.0.0

    listen_address ='0.0.0.0'

就是这样,重新启动postgreSQL服务。