Postgres pg_dump & pg_restore
Ce sujet décrit comment créer une sauvegarde de votre base de données Lakebase à l'aide de l'utilitaire Postgres pg_dump et comment restaurer une sauvegarde à l'aide de pg_restore.
Quand utiliser pg_dump & pg_restore
Utilisez pg_dump et pg_restore pour les exigences de reprise après sinistre et de continuité des activités, ou lorsque vous devez stocker des sauvegardes complètes en dehors de Lakebase. Cette méthode fournit des exportations complètes de bases de données qui peuvent être stockées indépendamment et restaurées sur n’importe quel système compatible Postgres.
Prérequis
Avant de commencer, assurez-vous que :
pg_dumpetpg_restoresont installés. Vous pouvez vérifier en exécutantpg_dump -V.- Vous utilisez les dernières versions de
pg_dumpetpg_restore. - La version client correspond à la version Postgres de votre projet Lakebase.
- Un projet Lakebase avec un rôle Postgres configuré
Nous recommandons d'utiliser l' authentification native par mot de passe Postgres lors de l'utilisation de pg_dump et pg_restore. Les mots de passe Postgres natifs n'expirent pas toutes les heures comme les jetons OAuth, ce qui les rend mieux adaptés aux opérations de sauvegarde et de restauration. Consultez la présentation de l'authentification pour plus de détails sur les méthodes d'authentification.
Installer pg_dump et pg_restore
Si vous n'avez pas les utilitaires pg_dump et pg_restore installés localement, installez-les sur votre plateforme préférée.
Windows :
Installez PostgreSQL à l'aide de l'installeur officiel de postgresql.org. Les utilitaires pg_dump et pg_restore sont installés par défaut et se trouvent dans le répertoire bin de PostgreSQL.
**macOS** : Installer PostgreSQL à l'aide de Homebrew :
brew install postgresql
Linux (Ubuntu/Debian) :
sudo apt-get install postgresql-client
**Docker :**
Exécutez pg_dump à l’aide d’un conteneur Docker Postgres :
docker run --rm postgres:17 pg_dump --version
Créer une sauvegarde avec pg_dump
Pour créer une sauvegarde de base de données localement :
-
Accédez à l'application Lakebase en cliquant sur le sélecteur d'applications dans le coin supérieur droit de votre Workspace.
-
Sélectionnez votre projet.
-
Cliquez sur Connecter pour ouvrir la fenêtre modale de connexion à la base de données.
-
Sélectionnez un rôle Postgres dans la liste déroulante (nous vous recommandons d'utiliser un rôle Postgres natif avec authentification par mot de passe).
-
Copiez la chaîne de connexion.
Votre chaîne de connexion ressemble à ceci :
postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require -
Créez une sauvegarde de votre base de données Lakebase en exécutant la commande
pg_dumpsuivante :Bashpg_dump -Fc -v -d "<lakebase_database_connection_string>" -f <dump_file_name>Après avoir ajouté votre chaîne de connexion de base de données Lakebase et un nom de fichier de vidage, votre commande ressemble à ceci :
Bashpg_dump -Fc -v -d "postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require" -f mydatabase.bak
arguments de la commande pg_dump
La commande pg_dump inclut les arguments suivants :
-Fc: Envoie la sortie vers une archive au format personnalisé, adaptée à l'entrée danspg_restore.-v: Exécutepg_dumpen mode détaillé, vous permettant de surveiller ce qui se passe pendant l'opération de vidage.-d: Spécifie la chaîne de connexion de votre base de données Lakebase.-f <dump_file_name>: Le nom du fichier de vidage. Vous pouvez choisir n'importe quel nom (par exemple,mydumpfile.bak).
Restaurer une sauvegarde avec pg_restore
Pour restaurer une base de données à l'aide de l'utilitaire pg_restore à partir d'un fichier de sauvegarde créé à l'aide de pg_dump:
-
Créer un nouveau projet Lakebase.
-
Créez une base de données avec le même nom que celle que vous avez sauvegardée.
-
Accédez à l'application Lakebase en cliquant sur le sélecteur d'applications dans le coin supérieur droit de votre Workspace.
-
Sélectionnez votre projet et cliquez sur Connecter pour ouvrir la fenêtre modale de connexion à la base de données.
-
Sélectionnez un rôle Postgres dans la liste déroulante (nous vous recommandons d'utiliser un rôle Postgres natif avec authentification par mot de passe).
-
Copiez la chaîne de connexion.
Votre chaîne de connexion ressemble à ceci :
postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require -
Restaurez vos données dans la base de données cible dans Lakebase avec
pg_restore:Bashpg_restore -v -d "<lakebase_database_connection_string>" <dump_file_name>Après avoir ajouté votre chaîne de connexion de base de données Lakebase et le nom du fichier de vidage, votre commande ressemble à ceci :
Bashpg_restore -v -d "postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require" mydatabase.bak
Arguments de commande pg_restore
La commande pg_restore inclut les arguments suivants :
-v: Exécutepg_restoreen mode détaillé, ce qui vous permet de surveiller ce qui se passe pendant l'opération de restauration.-d: Spécifie la base de données Lakebase à laquelle se connecter. La valeur est une chaîne de connexion de base de données Lakebase.<dump_file_name>: Le nom du fichier de dump que vous avez créé avecpg_dump.
Exemple complet
L'exemple suivant montre comment les données sont vidées d'une base de données source nommée databricks_postgres dans un projet Lakebase et restaurées vers une base de données databricks_postgres dans un autre projet Lakebase.
Avant d’effectuer cette procédure :
- Un nouveau projet Lakebase a été créé pour la base de données de destination (qui inclut la base de données
databricks_postgresdefault) - Les chaînes de connexion pour les bases de données source et de destination ont été collectées :
- Source :
postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require - Destination :
postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require
- Source :
Procédure de sauvegarde et de restauration :
# Create a directory for the dump
mkdir mydump && cd mydump
# Create the backup
pg_dump -Fc -v -d "postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require" -f mydatabase.bak
# Verify the backup file was created
ls
mydatabase.bak
# Restore the backup to the destination database
pg_restore -v -d "postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require" mydatabase.bak