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. |