GNU/Linux >> Tutoriels Linux >  >> Linux

Comment sauvegarder et restaurer une base de données dans PostgreSQL

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 !


Linux
  1. Comment sauvegarder et restaurer le référentiel SVN sous Linux

  2. Comment sauvegarder et restaurer la base de données Postgres

  3. Comment sauvegarder et restaurer les données et les configurations de RabbitMQ

  4. Comment sauvegarder et restaurer la base de données MySQL à l'aide de la ligne de commande

  5. Comment créer et restaurer une sauvegarde dans Plesk

Comment sauvegarder et restaurer une carte SD pour Raspberry Pi

Comment utiliser Timeshift pour sauvegarder et restaurer Linux

Comment effectuer une sauvegarde et restaurer la base de données MSSQL/MySQL dans Plesk

Comment restaurer la sauvegarde de la base de données à l'aide de JetBackup 5 ?

Comment installer la base de données PostgreSQL et pgAdmin sous Linux

Comment sauvegarder et restaurer un site Web WordPress