2014-06-23 15 views
5

Non sono esattamente un DBA, quindi apprezzerei le risposte facili da comprendere. Devo fornire la replica al nostro DB e pgpool sembra più conveniente perché se una istanza postgresql fallisce, i client non sono tenuti a cambiare nulla per continuare a lavorare, giusto? Quindi, in questo caso, ha più senso usare pgpool, ma la parte di configurazione sembra (per me) molto più complicata e confusa. Ad esempio, devo impostare WAL su entrambi i server Postgresql? O questo è necessario solo se voglio impostare la replica postgresql? Più cerco di ottenere una risposta a queste domande, meno diventa chiaro. Forse ho dimenticato come google ...Qual è la differenza tra la replica pgpool II e la replica postgresql?

+0

io preferirei la replica incorporato in oltre replica di pgPool. Un ottimo strumento per gestire la replica è http://repmgr.org/ Di solito le persone usano quindi un IP virtuale per puntare al "cluster" ma puoi anche usare pgPool per agire come proxy sul server replicato –

+0

Se tu? Non avere esperienza, attenersi alla replica di streaming integrata con il fallover di archiviazione WAL. 'Repmgr' aiuta con questo. Usa un proxy come PgBouncer (con uno script che cambia il server di destinazione al failover), o qualcosa come HAProxy, se vuoi renderlo trasparente al client. Non tentare il failover completamente automatico, utilizzare il failover con script attivato manualmente e * testarlo * periodicamente. –

risposta

4

La replica fornita da postgresql (replica di streaming, warm standby, hot standby) si basa sulla spedizione di registri di scrittura in anticipo su tutto il server di standby. Le istruzioni di scrittura andranno al master e al il master invierà i registri ai server di standby (o ad altri master in caso di replica master-master).

Mentre pgpool è un tipo di middleware di replica basato sull'istruzione (come un proxy del database), vale a dire che le istruzioni effettivamente passano a pgpool e pgpool lo inoltra a tutti i server da replicare.

Un grande svantaggio dell'utilizzo di pgpool in quanto se il server che esegue pgpool si blocca, allora l'intero cluster di asvailability intero fallisce (single point of failure).

Per maggiori informazioni: http://www.postgresql.org/docs/9.4/static/different-replication-solutions.html