PostgreSQL est gratuit, open-source et l'un des systèmes de gestion de bases de données relationnelles les plus populaires, alimentant des millions d'applications. Si vous êtes un administrateur de base de données utilisant PostgreSQL dans un environnement de production, il est essentiel de sauvegarder votre base de données afin de pouvoir restaurer rapidement votre système en cas de perte de votre base de données.
Dans ce tutoriel, nous allons vous montrer comment sauvegarder et restaurer la base de données PostgreSQL sous Linux.
Prérequis
- Un nouveau VPS Ubuntu 20.04 avec PostgreSQL installé sur la plate-forme cloud Atlantic.net.
- Si vous n'avez pas déjà installé PostgreSQL, vous pouvez consulter ce blog pour savoir comment installer et configurer PostgreSQL.
- Un mot de passe root configuré sur votre serveur.
1 - Créer un serveur cloud Atlantic.Net
Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur en choisissant Ubuntu 20.04 comme système d'exploitation avec au moins 1 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.
Une fois que vous êtes connecté à votre serveur Ubuntu 20.04, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.
apt-get update -y
2 - Comprendre la syntaxe de base de pg_dump
PostgreSQL est livré avec des utilitaires intégrés appelés pg_dump pour créer et restaurer facilement des sauvegardes.
La syntaxe de base de la commande pg_dump est illustrée ci-dessous :
pg_dump [OPTION]... [DBNAME]
Une brève explication de chaque option est présentée ci-dessous :
-d, –dbname=NOMBASEDONNEES : Utilisé pour spécifier la base de données que vous souhaitez sauvegarder.
-h, –host=HOSTNAME : Utilisé pour spécifier le nom d'hôte de votre serveur de base de données.
-U, –username=USERNAME : Utilisé pour spécifier le nom d'utilisateur PostgreSQL.
-w, –no-password : Utilisé pour ignorer l'invite de mot de passe.
-p, –port=PORT : Utilisé pour spécifier le numéro de port du serveur PostgreSQL.
-W, –password : Utilisé pour forcer l'invite de mot de passe.
–role=ROLENAME : SET ROLE avant le vidage.
3 - Sauvegarder et restaurer une seule base de données
Vous pouvez sauvegarder et restaurer une seule base de données à l'aide de l'utilitaire pg_dump. La syntaxe de base pour sauvegarder une seule base de données est illustrée ci-dessous :
pg_dump -d [source-database] -f [database_backup.sql]
Par exemple, pour sauvegarder une seule base de données nommée testdb et générer un fichier de sauvegarde nommé testdb_backup.sql, exécutez la commande suivante :
su - postgres pg_dump -d testdb -f testdb_backup.sql
Vous pouvez également restaurer une seule base de données à l'aide de la commande psql. La syntaxe de base pour restaurer une seule base de données est illustrée ci-dessous :
psql -d [destination_database] -f [database_backup.sql]
Par exemple, pour restaurer une seule base de données nommée testdb à partir d'un fichier de sauvegarde nommé testdb_backup.sql, exécutez la commande suivante :
su - postgres psql -d testdb -f testdb_backup.sql
Vous devriez obtenir le résultat suivant :
SET SET SET SET SET set_config ------------ (1 row) SET SET SET SET
Si vous souhaitez arrêter le processus de restauration de la base de données en cas d'erreur, exécutez la commande suivante :
psql -d testdb --set ON_ERROR_STOP=on -f testdb_backup.sql
Remarque : Avant de restaurer une base de données, il est recommandé de mettre fin à toutes les connexions à cette base de données et de préparer le fichier de sauvegarde.
Sauvegarder et restaurer toutes les bases de données
Vous pouvez sauvegarder toutes les bases de données dans PostgreSQL à l'aide de l'utilitaire pg_dumpall. La syntaxe de base pour sauvegarder toutes les bases de données comme indiqué ci-dessous :
pg_dumpall -f [alldatabase_backup.sql]
Par exemple, pour sauvegarder toutes les bases de données dans PostgreSQL et générer un fichier de sauvegarde nommé alldb_backup.sql, exécutez la commande suivante :
pg_dumpall -f alldb_backup.sql
Pour restaurer toutes les bases de données à partir d'un fichier de sauvegarde nommé alldb_backup.sql, exécutez la commande suivante :
psql -f alldb_backup.sql
Sauvegarder et restaurer une seule table
PostgreSQL vous permet également de sauvegarder une seule table à partir de la base de données spécifique. Vous pouvez y parvenir en utilisant la syntaxe suivante :
pg_dump -d [source-database] -t [table_name]-f [dbtable_backup.sql]
Par exemple, pour sauvegarder une table nommée mytab à partir de la base de données nommée testdb et générer un fichier de sauvegarde nommé testdb_mytab.sql, exécutez la commande suivante :
pg_dump -d testdb -t mytab -f testdb_mytab_backup.sql
Si vous souhaitez restaurer cette table à partir du fichier de sauvegarde, exécutez la commande suivante :
psql -d testdb -f testdb_mytab_backup.sql
Sauvegarder et restaurer la base de données compressée
Vous pouvez également sauvegarder la base de données PostgreSQL et la compresser au format .gz pour réduire la taille de la sauvegarde.
Pour effectuer une sauvegarde de la base de données nommée testdb et générer un fichier de sauvegarde compressé nommé testdb_compressed.sql.gz, exécutez la commande suivante :
pg_dump -d testdb | gzip > testdb_compressed.sql.gz
Vous pouvez également restaurer la sauvegarde à partir du fichier compressé à l'aide de la commande suivante :
gunzip -c testdb_compressed.sql.gz | psql -d testdb
Conclusion
Dans le guide ci-dessus, vous avez appris plusieurs façons de sauvegarder et de restaurer une base de données PostgreSQL pour vous aider à effectuer des opérations de sauvegarde de base de données au jour le jour. Commencez dès aujourd'hui avec une base de données PostgreSQL sur l'hébergement VPS d'Atlantic.Net !