Я пытаюсь создать горячий резерв Postgresql 9.1, выполнив следующие действия:
Отредактировал pg_hba на master. Добавлена строка:
host replication postgres 10.10.10.2/32 md5
Отредактированный Мастер postgresql.conf:
listen_address = '*'
wal_level = hot_standby
max_wal_senders = 3
Создал recovery.conf в режиме ожидания:
standby_mode = 'on'
primary_conninfo = 'host=10.10.10.1'
После добавления recovery.conf мне не удалось запустить резервный сервер. В журнале запуска появляется ошибка:
> could not create IPv6 socket
Я что-то пропустил?
Это происходит, когда IPv6 не включен в ядре, но адреса IPv6 где-то объявлены.
Иногда localhost
в /etc/hosts
обозначает оба 127.0.0.1
(IPv4) и ::1
(IPv6). В этом случае вы можете удалить псевдоним IPv6, чтобы избежать такой ошибки.
Сборщик статистики (отдельный процесс, запускаемый PostgreSQL) использует жестко заданное имя localhost
, поэтому из-за этой проблемы он не запустится с указанным сообщением об ошибке. Однако это не должно препятствовать запуску самого PostgreSQL.
Если *
содержит проблемные адреса IPv6, вы можете решить проблему, выбрав listen_addresses
(что в любом случае является хорошей практикой):
listen_addresses = 127.0.0.1,10.10.10.1 # при необходимости добавить другие интерфейсы
Чтобы отключить ошибку IPv6, вам необходимо выполнить следующие действия.
вставьте следующий код в этот файл (/etc/sysctl.conf)
net.ipv6.conf.all.disable_ipv6 = 1
В файле postgresql.conf измените адрес прослушивания на 0.0.0.0
listen_address = '0.0.0.0'
Вот и все и перезапустите службу postgreSQL.