Standby'ı elle yapılandır (standby.signal + primary_conninfo)
PostgreSQLReplikasyonKomut
# Standby'da, PostgreSQL kapalıyken (PGDATA bir yedekten/kopyadan geldi):
touch $PGDATA/standby.signal
cat >> $PGDATA/postgresql.auto.conf <<'EOF'
primary_conninfo = 'host=<primary_host> port=5432 user=replicator application_name=<standby_name>'
primary_slot_name = '<slot>'
EOF
pg_ctl -D $PGDATA start
# PG13+: çalışan standby'da bağlantıyı restart'sız değiştir (ör. yeni primary'ye yönlendir):
psql -X -c "ALTER SYSTEM SET primary_conninfo = 'host=<new_primary_host> port=5432 user=replicator application_name=<standby_name>'" -c "SELECT pg_reload_conf();"Ne yapar?
standby.signal dosyası sunucunun standby olarak açılmasını sağlar; primary_conninfo streaming bağlantısını, primary_slot_name kullanılacak replication slot'u tanımlar. PG13+ ile primary_conninfo ve primary_slot_name reload ile değiştirilebilir.
Ne zaman kullanılır?
pg_basebackup -R kullanılmadan (pgBackRest, snapshot, rsync ile) hazırlanan bir veri dizinini standby yapmak veya mevcut standby'ı yeni primary'ye yönlendirmek için.
Dikkat
Slot primary'de önceden oluşturulmalı (pg_create_physical_replication_slot), yoksa walreceiver sürekli hata verir. Parolayı conninfo yerine ~/.pgpass'e koy. application_name, synchronous_standby_names'teki adla birebir eşleşmeli. standby.signal unutulursa sunucu primary olarak açılır ve ayrı bir timeline'a geçer.