Progetto

Generale

Profilo

PostgresStreamReplication » Cronologia » Versione 1

Simone Piccardi, 21-11-2019 12:34

1 1 Simone Piccardi
h1. Replicazione di PostgresSQL
2
3
*ATTENZIONE*: questo articolo è una bozza, al momento è nello stato di insieme di appunti sparsi senza un'ordine specifico
4
5
PostgreSQL supporta diversi meccanismi di replicazione, tratteremo in questo articolo solo uno di questi, la cosiddetta _streaming replication_. 
6
7
8
h2. Come ripristinare una replica
9
10
Se per un qualunque motivo la _streaming replication_ si interrompe (la ragione più comune è che non si è previsto sul primario la retention di un sufficiente numero di segmenti WAL a coprire le differenze da trasmettere al secondario) occorre ripristinare manualmente da zero la stessa.
11
12
Per farlo è disponibile, a partire dalla versione 9.4 di PostgreSQL il comando @pg_basebackup@ (si legga la documentazione su https://www.postgresql.org/docs/10/app-pgbasebackup.html) che consente di eseguire il ripristino direttamente dal secondario. I passi da seguire per farlo sono i seguenti:
13
14
* fermare postgresql:
15
<pre>
16
service postgresql stop
17
</pre>
18
* vuotare la directory dei dati (o spostarne i contenuti altrove):
19
<pre>
20
mkdir oldpgdir/
21
mv /var/lib/postgresql/9.6/main/* oldpgdir/
22
</pre>
23
* collegarsi con l'utente postgres:
24
<pre>
25
su postgres
26
</pre>
27
* ripristinare il DB e la replicazione con:
28
<pre>
29
pg_basebackup -h IP.DEL.DB.MASTER -U replication -D /var/lib/postgresql/9.6/main/ -P -Xs -R
30
</pre>
31
quest'ultimo comando chiederà la password dell'utente @replication@ usato per gestire la replicazione e provvederà alla ricostruzione.