18
0
Fork 0

Ajout différentes corrections

This commit is contained in:
emorino 2020-10-28 15:13:15 +01:00
parent fa1aa2af2a
commit 5d86fe7916
1 changed files with 14 additions and 4 deletions

View File

@ -74,7 +74,11 @@ hostssl replication repl 192.0.2.2/32 md5
## Configuration du serveur réplica
> **Note** : Cette configuration est relative au serveur réplica, mais elle doit également être reprise à l'identique sur le serveur maître, en renommant le fichier `recovery.conf` pour qu'il ne soit pas pris en compte.
> *Note* 1 : A partir de Postgresql 10 il n'est plus necessaire de modifié la variable hot_standby, ni de créer au préalable le fichier recovery.conf, voir directement la section **Synchronisation initiale des données (Méthode courante)**
> *Note* 2 : Cette configuration est relative au serveur réplica, mais elle doit également être reprise à l'identique sur le serveur maître, en renommant le fichier `recovery.conf` pour qu'il ne soit pas pris en compte.
> *Note* 3 : En Debian 8 ou 9 et postgresql >v9 on ferra comme ceci :
Décommenter ou ajouter les directives suivantes dans le fichier `/etc/postgresql/9.6/main/postgresql.conf` :
@ -122,18 +126,24 @@ postgres$ psql -c "SELECT pg_stop_backup()"
## Synchronisation initiale des données (Méthode courante)
* Arrêter PostgreSQL sur le réplica ;
* Supprimer le contenu de _/var/lib/postgresql/9.6/main/*_
* Supprimer le contenu de `/var/lib/postgresql/<version>/<cluster>/*`
* Autorisé la connexion SSH par clé, de l'utilisateur postgres depuis le master vers le réplica, et également depuis le réplica vers le master.
* Faire la syncho des données avec pg_basebackup comme ceci :
~~~
# sudo -u postgres pg_basebackup -h IP_MASTER -D /var/lib/postgresql/9.6/main -P -v -U repl
# sudo -u postgres pg_basebackup -h IP_PRIMAIRE -D /var/lib/postgresql/<version>/<cluster> -P -R -v -U repl
~~~
L'option -D indique le PGDATA du secondaire.
L'option `-R` s'occupe de créer le fichier recovery.conf (ou postgresql.auto.conf si version suppérieure à 11) dans /var/lib/postgresql/<version>/<cluster>/
pg_basebackup s'occupe de faire un checkpoint du WAL courant (pg_start_backup) de transférer les fichiers des bases puis d'exécuter la fonction SQL _pg_stop_backup_
Pendant le transfert des fichiers, la base a pu subir des modifications. Le paramètre --xlog ordonne à _pg_basebackup_ de transférer également les derniers journaux de transactions pour les rejouer sur le réplica.
Pendant le transfert des fichiers, la base a pu subir des modifications. C'est pourquoi pg_basebackup attend que le primaire et fait un checkpoint dans sont WAL avant de tranférés les données, par défaut un checkpoint est fait toutes les 5 minutes, donc la commande pg_basebackup peux prendre 5 minutes avant de commencer a synchronisé les données.
Si on veux forcer un checkpoint sur le primaire, on peux utilisé la commande pg_basebackup avec l'option `-c fast`
* Créer un fichier `recovery.conf` situé dans le datadir avec les info suivantes :