Zwykła replikacja przesyłania strumieniowego. PostgreSQL: 9.2.7 Windows 8.1 64 bit
Moje podstawowe i dodatkowe klastry znajdują się na tym samym komputerze z systemem Windows. Zrobiłem już pg_start_backup () i wszystko, więc oba węzły mają dokładnie takie same dane.
Teraz problem z replikacją polega na tym, że „połączenie replikacji” z serwera podrzędnego nie łączy się z serwerem podstawowym, ale mogę łączyć się przy użyciu tych samych parametrów przy użyciu powłoki psql. Moim zdaniem winowajcą jest ciąg połączenia w procesie odzyskiwania slave.conf:
primary_conninfo = 'host = 127.0.0.1 port = 5432 user = postgres password = postgres'
Próbowałem localhost, 0.0.0.0, LAN IP wszystko oprócz dziennika pg mówi:
FATAL: could not connect to the primary server: FATAL: no pg_hba.conf entry for replication connection from host "127.0.0.1", user "postgres", SSL off
Teraz spójrz na pg_hba.conf mojego Mistrza:
host all all 0.0.0.0/0 trust
host all postgres 127.0.0.1/0 trust
# IPv6 local connections:
host all all ::1/128 md5
hostnossl all postgres 127.0.0.1/32 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#host replication postgres 127.0.0.1/32 md5
#host replication postgres ::1/128 md5
To tak, jakbym zezwolił na każde możliwe połączenie, ale Slave nie może się połączyć. Czy możesz mi pomóc?
źródło
Dodanie poniższego wiersza
pg_hba.conf
i ponowne załadowanie działało dla mnie. Biorąc pod uwagę, że typ jest „lokalny”, jawne określenie adresu nie jest konieczne.I pamiętajcie o tym
pg_ctl reload
źródło
Jeszcze jedno możliwe rozwiązanie, na które wpadłem. Jeśli wykonujesz replikację logiczną, a dla opcji DATABASE ustawiono opcję replikacji, nie zadziała. Musi tylko uzyskać zwykły parametr. Ten
replication
parametr służy do replikacji fizycznej, a nie logicznej.Człowieku, zajęło to trochę pracy, żeby to rozgryźć. Mam nadzieję, że to pomoże!
źródło