Postgresql çoğaltma bağlantısını kabul etmiyor


19

Düz eski akış çoğaltma. PostgreSQL: 9.2.7 Windows 8.1 64 bit

Birincil ve ikincil kümelerim aynı windows makinesinde. Zaten pg_start_backup () ve her şeyi yaptım , böylece her iki düğüm de aynı verileri var.

Şimdi çoğaltma ile ilgili sorun köle sunucudan "çoğaltma bağlantısı" birincil sunucuya bağlanmak değil ama psql kabuk kullanarak aynı params kullanarak bağlanabilirsiniz. Sanırım suçlu köle kurtarma.conf bağlantı dizesidir:

primary_conninfo = 'host = 127.0.0.1 port = 5432 user = postgres password = postgres'

Yerel günlük, 0.0.0.0, lan IP her şeyi denedim ama pg log diyor ki:

 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

Şimdi Efendimin pg_hba.conf dosyasına bakın:

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

Sanki her olası bağlantıya izin verdim ama köle bağlanamıyor. Yardım edebilir misin?

Yanıtlar:


25

Veritabanı adı, çoğaltma bağlantılarını kapsamaz replicationgibi olmalıdır all.

host    replication    postgres             127.0.0.1/0               trust

PostgreSQL belgelerine ayrıca diyor ki:

Değer replication, çoğaltma bağlantısı istendiğinde kaydın eşleşeceğini belirtir (çoğaltma bağlantılarının belirli bir veritabanı belirtmediğini unutmayın). Aksi takdirde, bu belirli bir PostgreSQL veritabanının adıdır. Birden çok veritabanı adı virgülle ayırarak sağlanabilir. Veritabanı adlarını içeren ayrı bir dosya, dosya adının önüne geçilerek belirtilebilir @.


çoğaltma veritabanı oluşturmamız gerekiyor mu? ya da dahili ??
gimibarak

Dahili değildir ve çoğaltmayı ayarlamanız gerekir. İşte referans: digitalocean.com/community/tutorials/…
Sachin Verma

Bunun mantıksal çoğaltma için geçerli olmadığını unutmayın .
mlissner

3

Aşağıdaki satırı eklemek pg_hba.confve yeniden yüklemek benim için çalıştı. Türün 'yerel' olduğu düşünüldüğünde, açıkça bir adres belirtilmesi gerekli değildir.

# TYPE  DATABASE        USER            ADDRESS                 METHOD
local   replication     postgres                                peer

Ve hatırla pg_ctl reload


2

Burada karşılaştığım başka bir olası çözüm. Mantıksal çoğaltma yapıyorsanız ve DATABASE'i çoğaltmaya ayarladıysanız, çalışmaz. Sadece düzenli bir parametre alması gerekiyor. replicationParametre fiziksel çoğaltma değil, mantıksal çoğaltma içindir.

Adamım, bunun anlaşılması için biraz uğraştım. Umarım bu yardımcı olur!


1
Bunun daha fazla onaylanması gerekiyor. Ben bulana kadar wal2json eklentisi sorun giderme saat geçirdim ve bu benim için doğru cevap oldu. Görünüşe göre wal2json eklentisi mantıksal çoğaltma kullanıyor, bu yüzden örnek pg_recvlogical komutunu çalıştırmak için pg_hba.conf 'replikasyon' anahtar kelimesi yerine 'test' veritabanı adını kullanacak şekilde ayarlamam gerekiyordu
Alf47
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.