Table of Contents
Replica PostgreSQL
Slony
Slony è un sistema di replica asincrono da singolo master a slave multipli. Le principali limitazioni sono:
- Richiede pl/pgSQL su tutti i database
- Richiede una PKEY per ogni tabella
- Bisogna dichiarare ogni tabella da copiare
- Bisogna raggruppare in set le tabelle correlate (FOREIGN KEY)
- Vengono propagate automaticamente solo le modifiche a tabelle e sequenze
- Le modifiche allo schema devono essere propagate a mano
- Le funzioni devono essere propagate a mano
- Le view devono essere propagate a mano.
- You should not directly use
pg_dump
to dump schemas on subscribers (slaves).
Pgpool-II
Come verificare se pgpool è in esecuzione:
/etc/init.d/pgpool2 status
Il file di configurazione è /etc/pgpool.conf
.
port | Porta su cui accetta le connessioni. Default è 9999, per presentarsi agli applicativi in modo trasparente si può usare 5432. |
---|---|
pcp_port | Porta per interfaccia di controllo PCP, default 9898. |
log_statement | Print all statements to the log: true or false. |
L'interfaccia di controllo via network di pgpool è pcp, normalmente in ascolto sulla porta 9898. Il file di configurazione con login/password è /etc/pcp.conf
.
Per sapere quanti nodi sono nel pool, attached o detached (supponendo che postgres/postgres siano le credenziali):
pcp_node_count 30 localhost 9898 postgres postgres 2
Per avere informazioni su ciascun nodo (si inizia a contare da zero):
pcp_node_info 30 localhost 9898 postgres postgres 0 host3b 5432 2 1073741823.500000
Oltre al nome dell'host e la porta sulla quale viene contattato, il terzo parametro indica lo stato del nodo:
- 0 - This state is only used during the initialization. PCP will never display it.
- 1 - Node is up. No connections yet.
- 2 - Node is up. Connections are pooled.
- 3 - Node is down.
L'ultimo parametro è il normalized load balance weight.
Pitr
La principale limitazione di Pitr è: A PITR replica remains dormant until you apply logs and start up the database. You cannot use the database and apply updates simultaneously. It is like having a “standby server” which cannot be used without it ceasing to be “standby.”