02) Réplication dump

Created mercredi 17 février 2016
Dite réplication à chaud.
C'est la réplication binaire, par création de fichier texte. Le dump exporte simplement les données vers un fichier, quiselon le formatage, conservera la structure de la base avec plus ou moins de performances, c'est selon le cas de figure.

Un dump permet un export rapide et précis, sur les table et les données.

pg_dump

Dumper une seule base

1 >~ pg_dump jarvis > /home/username/backup/jarvis.sql

Restauration
1 >~ psql dbname < infile

A distance

En pipant le fichier vers psql vers un autre serveur sur lequel existe aupréalable une base du même nom.

1 >~ pg_dump jarvis | psql -h 172.25.3.70 jarvis
1 postgres@gally:~$ pg_dump jarvis | psql -h 172.25.3.70 jarvis
2 Mot de passe : 
3 SET
4 SET
5 SET
6 SET
7 SET
8 SET
9 CREATE EXTENSION
10 COMMENT
11 SET
12 SET
13 SET
14 CREATE TABLE
15 ALTER TABLE
16 COPY 0
17 REVOKE
18 REVOKE
19 GRANT
20 GRANT

Resultat

1 centralivres=# \c jarvis
2 psql (9.5.1, serveur 9.4.6)
3 Vous êtes maintenant connecté à la base de données « jarvis » en tant qu utilisateur « postgres ».
4 jarvis=#

pg_dumpall

C'est un dump complet de toutes les bases.
Le dump sera enregistrée dans le répertoire par défault : /var/lib/postgres en protégeant tout les droits, données etc, etc.

1 postgres@tpsql:~$ pg_dumpall > pg_global.sql

Restauration

Puisque nous souhaitons restaurer nos bases dans la version du serveur postgresql 9.5 ; il faut se connecter sur un autre socket UNIX, le port 5433, postgressql change simplement de port.

1 postgres@tpsql:~$ psql -p 5433
2 psql (9.5.1)
3 Saisissez « help » pour l'aide.
4 
5 postgres=# \i pg_global.sql

Résultat

1 postgres@tpsql:~$ psql -p 5433
2 psql (9.5.1)
3 Saisissez « help » pour l'aide.
4 
5 postgres=# \l
6 								   Liste des bases de données
7 	 Nom      | Propriétaire | Encodage | Collationnement | Type caract. |    Droits d'accès     
8 --------------+--------------+----------+-----------------+--------------+-----------------------
9  centralivres | postgres     | UTF8     | fr_FR.UTF-8     | fr_FR.UTF-8  | postgres=CTc/postgres+
10 			  |              |          |                 |              | =CTc/postgres
11  postgres     | postgres     | UTF8     | fr_FR.UTF-8     | fr_FR.UTF-8  | 
12  template0    | postgres     | UTF8     | fr_FR.UTF-8     | fr_FR.UTF-8  | =c/postgres          +
13 			  |              |          |                 |              | postgres=CTc/postgres
14  template1    | postgres     | UTF8     | fr_FR.UTF-8     | fr_FR.UTF-8  | postgres=CTc/postgres+
15 			  |              |          |                 |              | =c/postgres
16  test2        | xtbushido    | UTF8     | fr_FR.UTF-8     | fr_FR.UTF-8  | 
17 (5 lignes)

Aprés une restauration, il est préconisé d’analyser les bases.

1 postgres@tpsql:~$ vacuumdb -a -z
2 vacuumdb : exécution de VACUUM sur la base de données « centralivres »
3 vacuumdb : exécution de VACUUM sur la base de données « postgres »
4 vacuumdb : exécution de VACUUM sur la base de données « template1 »
5 vacuumdb : exécution de VACUUM sur la base de données « test2 »