Répliquer en Streaming

DESCRIPTION DE CE PROJET :

Machine 1 (master 192.168.1.146) Machine 2 (slave 192.168.1.145)

Mise en Application

Installer les différents outils sur les 2 serveurs

Apt-get install postgresql-9.5

cette commande va installer les sources listes de postgres y compris son client (postgresql-client-9.5) et bien d’autre source.

Apt-get install openssh-server

pour installer le serveur ssh

Apt-get install rsync

Qui va nous Permettre de transférer les fichiers du répertoire data du serveur Master vers le répertoire data de PostgreSQL du serveur slave.

Procédure à Suivre :

1- ) Se connecter sur le terminal en tant que postgres et genérer la clé publique de la machine sur laquelle on s’y trouve avec la commande ssh-keygen -t rsa . (Faire cela sur les 2 machines)

2-) En tant qu’user « postgres », Copier la clé publique du serveur master et la coller sur le serveur slave par la commande

Scp /chemin de la cle public du master/id_rsa compte_d’utilisateur_du slave@adresse_du_slave:/chemin_de_destination. (vice versa pour la clé publique du slave).

3-) Après les copies des deux clés on va se connecter en tant que « root » et écrire le contenu du fichier de la clé publique du serveur slave dans le fichier authorized_keys se trouvant sur le serveur master à l’emplacement suivant /var/lib/postgresql/.ssh/authorized_keys par la commande suivante :

Cat /chemin de la clé publique du slave se trouvant sur le master >> /var/lib/postgresql/.ssh/authorized_keys (faire aussi la même chose pour la clé publique du master se trouvant sur le serveur slave)

4-) Configurer le fichier de configuration sshd_config se trouvant dans /etc/ssh/sshd_config en retirant le « # » se trouvant devant la ligne souhaité. (Voir capture..)

5-) Apres cette configuration de l’étape 4 en tant que « root » nous allons changer le propriétaire du fichier authorized en « postgres »

et nous connecter en tant que « postgres » pour tester la connexion via ssh sur l’une des machines distante avec la commande ssh postgres@adresse_ip_du slave..

Puis se déconnecter avec la commande exit

NB : Faire la même chose concernant l’étape 5 sur le serveur slave.

6-) Configuration des fichiers de configuration de postgresql.

 

Nous allons configurer les fichiers postgresql.conf et pg_hba.conf du serveur master identique à la configuration des fichiers du serveur slave.

Ceci nous permet d’éviter de modifier la configuration des fichiers du slave si nous voulons le faire passer en master. Sauf le fichier « recovery » sera déplacé pour la nouvelle machine qui prendra la place de serveur slave.

 

NB : bien vouloir arrêter les services de postgres avant toutes configuration

 

—configuration de postgresql.conf —–

Listen_address = ‘ localhost, adresse_ip_la machine’ ou bien mettre ‘*

Port = 5432 ou 5433

Wal_level = hot_standby

Max wal_sender = 1

Archive = on

Archive command = ‘cd .

Hot_standby = on

 

—configuration de pg_hba.conf—–

–IPV4—

type database user address method

host all all 0.0.0.0/0 md5

–IPV6—

type database user address method

host all all 0.0.0.0/0 md5

–REPLICATION PRIVILEGE—

host replication rep 0.0.0.0/0 md5

 

« rep » ici représente l’utilisateur rep que nous allons créer et le donner les droits de réplication . on pouvait mettre « all » pour dire tous les utilisateurs.

 

NB : faire la même configuration sur le serveur slave.

7-) Arrêter les service de postgres sur le serveur slave, puis démarrer les service de postgresql sur le serveur master et se connecter en tant que « postgres ».

Ensuite nous allons faire un pg_backup_start (sauvegarde online) des fichiers du serveur master et les copier sur le serveur slave puis arrêter la sauvegarde online avec pg_stop_backup.

Ensuite copier les fichiers sauvegarder du master pour les envoyer sur le slave en excluant le postmaster.pid ou en le copiant.

Puis on arrête le backup online

Apres cette étape on doit créer le fichier « recovery » et mettre les informaion comme sur cette image ci-dessous

puis redémarrer les services de postgresql sur le serveur slave et s’ils démarrent et que la connexion est effective alors il ne nous reste qu’à créer une base de données sur le serveur master et voir s’il sera répliqué sur le serveur slave.

Le tout est joué!!!!