Exporter une base de données PostgreSQL sans stocker sur le serveur lui-même

Exporter une base de données PostgreSQL sans stocker sur le serveur lui-même

Récemment, j’ai eu un cas ou j’ai du exporter une base de données depuis un serveur distant. Le problème était que le stockage était très limité, et ne permettait pas de contenir la base de données elle-même ainsi que son extraction. Il est possible de faire un dump de la base de données, et de rediriger l’output de la commande à travers la connexion SSH pour stocker les données sur son poste de travail.

Cette marche à suivre ne fonctionne que si le serveur hôte de la base de données est sous Linux/UNIX.
Elle n’a pas été testée dans le cas de figure ou le service PostgreSQL tourne sur un serveur hôte Windows (sachant que Windows ne propose pas nativement du SSH).

Marche à suivre pour poste client Linux/UNIX

Sur un poste fonctionnant sous Linux/UNIX, il suffit de se rendre dans le dossier où socker le dump, puis de taper la commande suivante dans un terminal:

ssh -t USER@SERVEUR "pg_dump -Fp -U postgres DATABASE" > DUMP_FILE.sql
Remplacer USER par un utilisateur autorisé à se connecter en SSH au serveur.
Remplacer SERVEUR par l’adresse IP ou le nom du serveur à se connecter.
Remplacer DUMP_FILE.sq par le nom du fichier souhaité qui sera créé, et qui contiendra l’extraction.
Dans notre exemple, l’utilisateur postgres est utilisé pour se connecter à la base de données, mais il faut bien sûr utiliser celui qui permet de s’y connecter pour l’administration du serveur de base de données.

Marche à suivre pour poste client Windows

Le fonctionnement est similaire que si l’opération est effectuée depuis un poste en Linux/UNIX. Il faut taper la commande dans une fenêtre Powershell une fois que nous nous sommes rendu dans le dossier souhaité pour la récupération.