Sauvegarder et restaurer une base de données PostgreSQL avec pg_dump et pg_restore

Sauvegarde et restaure une base de données PostgreSQL en utilisant pg_dump et pg_restore

La sauvegarde et la restauration d’une base de données est une tâche essentielle pour tout administrateur de base de données. Cela permet de s’assurer que les données sont protégées et peuvent être récupérées en cas de perte de données, de corruption ou de défaillance du système. PostgreSQL fournit deux utilitaires utiles, pg_dump et pg_restore, pour rendre cette tâche facile et fiable. Dans ce guide pas à pas, nous allons vous montrer comment utiliser ces utilitaires pour sauvegarder et restaurer une base de données PostgreSQL.

Conditions requises

Avant de commencer, assurez-vous que vous disposez des éléments suivants :

  • PostgreSQL installé sur votre système.
  • Une base de données à sauvegarder et à restaurer.

Comprendre pg_dump et pg_restore

pg_dump est un utilitaire PostgreSQL qui crée une sauvegarde d’une base de données en générant un fichier texte contenant des instructions SQL pour recréer le schéma et les données de la base. Il peut également être utilisé pour sauvegarder des tables spécifiques, des schémas ou même des enregistrements individuels. pg_dump crée un format de fichier portable qui peut être utilisé pour transférer des données entre différentes installations PostgreSQL ou même entre différents systèmes de gestion de base de données.

pg_restore est un utilitaire PostgreSQL qui restaure un fichier de sauvegarde créé par pg_dump ou un outil similaire. Il lit les instructions SQL du fichier de sauvegarde et les applique à une base de données nouvelle ou existante, créant ainsi une copie de la base de données originale. pg_restore peut être utilisé pour restaurer la base de données entière, des tables ou des schémas spécifiques, ou même des enregistrements individuels.

Étape 1 – Création d’une sauvegarde

La première étape consiste à créer une sauvegarde de votre base de données à l’aide de pg_dump. Cet utilitaire crée un fichier texte contenant des instructions SQL pour recréer le schéma et les données de la base de données.

Syntaxe

La syntaxe d’utilisation de pg_dump est la suivante :

$ pg_dump [options] [dbname] > [backup_file]
  • options: des options supplémentaires pour personnaliser le processus de sauvegarde, telles que le format, la compression, l’encodage ou l’exclusion d’objets.
  • dbname: le nom de la base de données à sauvegarder.
  • backup_file: le nom du fichier dans lequel écrire la sauvegarde.

Exemple

Pour créer une sauvegarde, ouvrez un terminal ou une invite de commande et exécutez la commande suivante :

$ pg_dump dbname > backup.sql

Remplacez dbname par le nom de la base de données que vous souhaitez sauvegarder et backup.sql par le nom que vous souhaitez donner au fichier de sauvegarde.

L’utilitaire pg_dump vous demandera le mot de passe de la base de données. Saisissez le mot de passe et appuyez sur Entrée.

Le processus de sauvegarde peut prendre un certain temps, en fonction de la taille de votre base de données.

Une fois la sauvegarde terminée, vous aurez un fichier nommé backup.sql dans votre répertoire courant.

Personnalisation de la sauvegarde

pg_dump propose de nombreuses options pour personnaliser le processus de sauvegarde. Certaines des options les plus utiles sont :

  • -F: spécifie le format de sauvegarde. Le format par défaut est le texte brut (-Fp), mais vous pouvez également utiliser les formats binaire (-Fc) ou répertoire (-Fd).
  • -j: spécifie le nombre de tâches parallèles à utiliser. Cette option permet d’accélérer le processus de sauvegarde sur les systèmes multicœurs.
  • -T: exclut les tables de la sauvegarde. Vous pouvez utiliser des caractères génériques ou des expressions régulières pour faire correspondre les noms de tables.
  • -n: exclut les schémas de la sauvegarde. Vous pouvez utiliser des caractères génériques ou des expressions régulières pour faire correspondre les noms des schémas.
  • -a: sauvegarde uniquement les données, et non le schéma. Cette option peut s’avérer utile lorsque vous souhaitez transférer les données entre deux bases de données ayant des structures de schéma différentes.

Étape 2 – Restauration d’une sauvegarde

L’étape suivante consiste à restaurer la sauvegarde à l’aide de pg_restore. Cet utilitaire lit les instructions SQL du fichier de sauvegarde et les applique à une nouvelle base de données.

Syntaxe

La syntaxe d’utilisation de pg_restore est la suivante :

$ pg_restore [options] [backup_file]
  • options: des options supplémentaires pour personnaliser le processus de restauration, telles que la base de données cible, le format, l’encodage ou le mappage du schéma.
  • backup_file: le nom du fichier à restaurer.

Exemple

Pour restaurer une sauvegarde, ouvrez un terminal ou une invite de commande et exécutez la commande suivante :

$ pg_restore backup.sql

Remplacez backup.sql par le nom du fichier de sauvegarde à partir duquel vous souhaitez effectuer la restauration.

L’utilitaire pg_restore vous demandera le mot de passe de la base de données. Saisissez le mot de passe et appuyez sur Entrée.

Le processus de restauration peut prendre un certain temps, en fonction de la taille de votre base de données.

Une fois la restauration terminée, vous disposerez d’une nouvelle base de données avec le même schéma et les mêmes données que la base de données d’origine.

Customizing the Restore

pg_restore fournit également de nombreuses options pour personnaliser le processus de restauration. Certaines des options les plus utiles sont :

  • -d: spécifie la base de données cible à restaurer. Par défaut, pg_restore crée une nouvelle base de données portant le même nom que la base de données d’origine.
  • -F: spécifie le format de sauvegarde. Le format par défaut est le texte brut (-Fp), mais vous pouvez également utiliser les formats binaire (-Fc) ou répertoire (-Fd).
  • -j: spécifie le nombre de tâches parallèles à utiliser. Cette option permet d’accélérer le processus de restauration sur les systèmes multicœurs.
  • -n: spécifie une correspondance de schéma entre le fichier de sauvegarde et la base de données cible. Cette option peut s’avérer utile lorsque vous souhaitez restaurer la sauvegarde dans un schéma différent de celui de la base de données d’origine.
  • -t: restaure uniquement les tables spécifiées. Vous pouvez utiliser des caractères génériques ou des expressions régulières pour faire correspondre les noms de tables.

Conclusion

La sauvegarde et la restauration d’une base de données est une tâche critique pour tout administrateur de base de données. Avec pg_dump et pg_restore, il est facile de créer une sauvegarde et de la restaurer dans une base de données nouvelle ou existante. En suivant les étapes décrites dans ce guide, vous pouvez vous assurer que vos données sont protégées et qu’elles peuvent être récupérées en cas de perte de données ou de défaillance du système.

Laisser un commentaire