Sto cercando di impostare la replica sincrona con Postgres 9.1, ma non riesco a farlo funzionare. Sono stato in grado di configurare la replica di streaming, ma non sincrono. Spero di non aver perso nulla di ovvio. Ho letto attentamente molte sezioni di ch 17, 18, 14, 25, 26 e 29 nella guida dell'amministratore.Come configurare la replica streaming sincrona in postgres?
Sono in esecuzione Ubuntu 12.04 e il mio padrone postgresql.conf ha queste, tra tutte le altre impostazioni standard:
listen_addresses = '*' # what IP address(es) to listen on;
wal_level = archive # minimal, archive, or hot_standby
archive_mode = on # allows archiving to be done
archive_command = 'test ! -f /data/pgWalArchive/%f && cp %p /data/pgWalArchive/%f'
wal_keep_segments = 100 # in logfile segments, 16MB each; 0 disables ??? What should this be ????
max_wal_senders = 3 # max number of walsender processes
mio pg_hba.conf ha questo, oltre alla roba standard:
host all all XX.6.35.0/24 md5
host replication postgres XX.6.35.0/24 md5
Il mio master db ha una sola sequenza, quindi è piccolo. Ho creato con successo un backup del maestro nel primario e la riconquistò:
sudo -u postgres pg_basebackup -D ~/backup -F tar -x -z -l ~/backup/base1 -v -h XX.6.35.51 -U postgres
Ho anche copiato i file di archivio WAL alla modalità standby. Il mio file standby.conf standby ha questo:
restore_command = '/usr/lib/postgresql/9.1/bin/pg_standby /data/pgWalArchive %f %p %r'
archive_cleanup_command = '/usr/lib/postgresql/9.1/bin/pg_archivecleanup /data/pgWalArchive %r'
standby_mode = on
primary_conninfo = 'host=XX.6.35.51 port=5432' # e.g. 'host=masterIpAddressOrName port=5432'
Entrambi i server si avviano senza problemi ei registri sembrano ok. Il mio standby ha questo:
2012-06-08 10:23:51 MDT LOG: shutting down
2012-06-08 10:23:51 MDT LOG: database system is shut down
2012-06-08 10:23:53 MDT LOG: database system was shut down in recovery at 2012-06-08 10:23:51 MDT
2012-06-08 10:23:53 MDT LOG: entering standby mode
2012-06-08 10:23:53 MDT LOG: consistent recovery state reached at 0/1D000078
2012-06-08 10:23:53 MDT LOG: record with zero length at 0/1D000078
2012-06-08 10:23:53 MDT LOG: streaming replication successfully connected to primary
2012-06-08 10:23:53 MDT LOG: incomplete startup packet
2012-06-08 10:23:54 MDT FATAL: the database system is starting up
2012-06-08 10:23:54 MDT FATAL: the database system is starting up
2012-06-08 10:23:55 MDT FATAL: the database system is starting up
2012-06-08 10:23:55 MDT FATAL: the database system is starting up
2012-06-08 10:23:56 MDT FATAL: the database system is starting up
2012-06-08 10:23:56 MDT FATAL: the database system is starting up
2012-06-08 10:23:57 MDT FATAL: the database system is starting up
2012-06-08 10:23:57 MDT FATAL: the database system is starting up
2012-06-08 10:23:58 MDT FATAL: the database system is starting up
2012-06-08 10:23:58 MDT FATAL: the database system is starting up
2012-06-08 10:23:59 MDT FATAL: the database system is starting up
2012-06-08 10:23:59 MDT LOG: incomplete startup packet
2012-06-08 10:24:40 MDT LOG: redo starts at 0/1D000078
Il problema è che quando rilascio dichiarazioni contro il maestro, si bloccano per sempre. Mi sto perdendo qualcosa?
sì, certo. Ho perso queste righe che ho nella configurazione. Per postgresql.sql ho questo:. Ho anche inserito l'indirizzo IP senza fortuna. In standby, ho –