Catégorie : PostgreSQL

PostgreSQL – Faire de la réplication entre 2 serveurs

Divers : 

Serveur maitre : 192.168.250.111

Serveur esclave : 192.168.250.112

/!\ Dans les fichiers supprimer le “#” pour décommenter la ligne

Pré requis :

Arrêter le service postgresql sur les 2 serveurs

Ouvrir le port 5432 sur le par feu sur les 2 serveurs

Maitre :

1) Fichier « postgresql.conf »

listen_addresses =  ‘*’

wal_level = hot_standby

max_wal_senders = 1

wal_keep_segments = 32

archive_mode = on

archive_command = ‘copy « %p » « P:\PostgreSQL\9.1\data\pg_xlog\%f »‘

2) Fichier  « pg_hba.conf »

host    replication     postgres      192.168.250.0/24             trust

3)Démarrer le service postgresql

 

Esclave :

1)  Ouvrir une commande DOS

Allez dans P:\PostgreSQL\9.1\bin\

Executer la commande :

pg_basebackup –U “postgres” –P -D /srv/pgsql/standby –host=192.168.250.111 –port=5432

2) Supprimer le contenu du répertoire « P:\PostgreSQL\9.1\data\ »

3) Copier le contenu du répertoire « P:\srv\pgsql\standby » dans « P:\PostgreSQL\9.1\data\ »

5) Aller dans le répertoire « P:\PostgreSQL\9.1\data\ »

4) Fichier  « pg_hba.conf »

host    replication     postgres      192.168.250.0/24             trust

5) Fichier « postgresql.conf »

hot_standby = on

6) Créer un fichier recovery.conf

standby_mode          = ‘on’

primary_conninfo      = ‘host=192.168.250.111 port=5432 user=postgres’

restore_command = ‘copy « P:\PostgreSQL\9.1\data\pg_xlog\%f » « %p » ‘

7) Démarrer le service postgresql

FAQ :

 Erreurs avec pg_basebackup :

  • directory exist but is not empty / le dossier existe mais n’est pas vide :
  • Allez dans « P:\srv\pgsql\standby » est tout supprimer
Publicités