Replica streaming e failover su PostgreSQL


14

Sto facendo una prova di concetto sulla replica di PostgreSQL. Dopo la discussione sul forum abbiamo deciso di procedere con la replica in streaming poiché le prestazioni sono buone rispetto ad altre soluzioni. PostgreSQL non fornisce il failover automatico per la replica in streaming. È possibile passare allo slave come master utilizzando un file trigger, ma non è gestibile. Quindi vorrei una soluzione con failover automatico e alta disponibilità.

Sono disponibili diverse soluzioni:

  1. repmgr
  2. Battito cardiaco Linux
  3. Pgpool-II (solo per failover automatico)
  4. Qualsiasi altro strumento nel caso tu l'abbia usato.

La mia domanda è: quale soluzione usare?

Risposte:


8

Nel nostro negozio abbiamo selezionato repmgr e pgbouncer invece di pgpool. repmgr ha alcuni strumenti utili per configurare e gestire il cluster di server di database replicati. Nel nostro caso 1 master e 2 slave (un failover e un test delle prestazioni di lettura live che possono diventare il failover del nuovo master). pgpool ha problemi con le modifiche alla configurazione, nella maggior parte dei casi è necessario riavviare il servizio e quindi avere dei tempi di inattività. Questo è un problema quando è necessaria la disponibilità 24x7x365.

repmgrd (il demone) aiuta a selezionare il nuovo master dopo un failover, in realtà non si desidera una situazione cerebrale divisa. Abbiamo un indirizzo IP virtuale per il database master, il database che è master in quel momento. Quando un altro server diventa master, questo è l'unico server che utilizza questo indirizzo. Ogni server di database ha anche il proprio indirizzo IP per le query di sola lettura.

repmgr è gestito dagli stessi ragazzi che hanno creato la replica in streaming in primo luogo, quindi sanno di cosa parlano. La versione 2.0 sta per essere rilasciata.

Preparati alla situazione peggiore, esegui dei test seri estraendo alcune prese di alimentazione e di rete! Quando qualcosa va storto, molte altre cose sono già andate male e ti morderanno alle spalle quando non te lo puoi permettere.

La replica è una cosa, un failover funzionante dopo alcuni seri problemi, è un'altra cosa.


1

Stiamo usando due diverse soluzioni contemporaneamente ...

Pgpool-II per la replica sincrona e Slony2 per la replica asincrona (innescata).

Le prestazioni sono eccellenti


Grazie per la risposta ... In realtà sto provando Pgpool-II con replica in streaming. Fornisce il failover automatico. Ma se avvierò di nuovo il nodo primario, pgpool-II potrà ricominciare da capo o nodo di standby?
Saurabh,

Per quanto ne so sicuramente no. dovrai fare un ripristino manuale del nodo primario. La nostra configurazione è leggermente diversa. è un progetto multi master e tutti i nodi hanno uguali diritti. Se un nodo non è sincronizzato, i servizi di bilanciamento del carico rifiutano il reindirizzamento dei client su questo nodo.
user5701
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.