PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Restaurer un fichier de sauvegarde postgres à l'aide de la ligne de commande ?

Il existe deux outils à examiner, selon la façon dont vous avez créé le fichier de vidage.

Votre première source de référence devrait être la page de manuel pg_dump(1) car c'est ce qui crée le vidage lui-même. Il dit :

Les vidages peuvent être produits dans des formats de fichier de script ou d'archive. Les vidages de script sont des fichiers en texte brut contenant les commandes SQL requises pour reconstruire la base de données dans l'état où elle se trouvait au moment de son enregistrement. Pour restaurer à partir d'un tel script, alimentez-le topsql(1). Les fichiers de script peuvent être utilisés pour reconstruire la base de données même sur d'autres machines et d'autres architectures; avec quelques modifications, même sur d'autres produits de base de données SQL.

Les formats de fichier d'archive alternatifs doivent être utilisés avec pg_restore(1) pour reconstruire la base de données. Ils permettent à pg_restore d'être sélectif sur ce qui est restauré, ou même de réorganiser les éléments avant d'être restaurés. Les formats de fichiers d'archives sont conçus pour être portables d'une architecture à l'autre.

Cela dépend donc de la façon dont il a été vidé. Vous pouvez probablement le comprendre en utilisant l'excellent file(1) commande - si elle mentionne du texte ASCII et/ou SQL, elle doit être restaurée avec psql sinon vous devriez probablement utiliser pg_restore

La restauration est assez simple :

psql -U username -d dbname < filename.sql

-- For Postgres versions 9.0 or earlier
psql -U username -d dbname -1 -f filename.sql

ou

pg_restore -U username -d dbname -1 filename.dump

Consultez leurs pages de manuel respectives - il existe de nombreuses options qui affectent le fonctionnement de la restauration. Vous devrez peut-être nettoyer vos bases de données "en direct" ou les recréer à partir de template0 (comme indiqué dans un commentaire) avant de restaurer, selon la façon dont les vidages ont été générés.