Importer un fichier DMP

Cette page explique comment importer dans une base de données AlloyDB un fichier DMP créé par l'outil pg_dump au format custom ou directory.

Pour importer un fichier créé par l'outil pg_dump au format plain, consultez la section Importer un fichier SQL.

La procédure d'importation implique les tâches suivantes:

  1. Importez le fichier DMP dans un bucket Cloud Storage.

  2. Préparer un hôte client pour effectuer l'opération d'importation

  3. Importez le fichier DMP dans la base de données.

  4. Nettoyez les ressources créées pour effectuer la procédure.

Avant de commencer

  • Vous devez disposer du rôle IAM de base "Propriétaire" (roles/owner) ou "Éditeur" (roles/editor) dans le projet Google Cloud que vous utilisez, ou des rôles IAM prédéfinis suivants :
    • Administrateur AlloyDB (roles/alloydb.admin) ou Lecteur AlloyDB (roles/alloydb.viewer)
    • Administrateur de l'espace de stockage (roles/storage.admin)
    • Administrateur d'instances Compute (v1) (roles/compute.instanceAdmin.v1)

Importer le fichier DMP

Pour importer le fichier DMP, créez un bucket Cloud Storage, puis importez-y le fichier DMP.

  1. Créez un bucket de stockage régional pour le stockage standard dans le projet et la région où se trouve votre base de données AlloyDB.

  2. Importez le fichier DMP dans le bucket de stockage que vous avez créé.

Préparer un hôte client

Pour préparer un hôte client à effectuer l'opération d'importation, vous devez créer une VM Compute Engine pouvant se connecter à l'instance principale AlloyDB où se trouve votre base de données, puis installer l'outil pg_restore et la Google Cloud CLI sur cette VM.

  1. Suivez les instructions de la section Connecter un client psql à une instance pour créer une VM Compute Engine avec la connectivité appropriée et l'outil pg_restore installé. Lorsque vous suivez ces instructions, veillez à allouer suffisamment d'espace de stockage local à la VM Compute Engine pour accueillir le fichier DMP que vous importez.

  2. Installez gcloud CLI pour fournir un accès en ligne de commande au fichier DMP dans le bucket Cloud Storage.

Importer le fichier DMP

Pour importer le fichier DMP, vous devez obtenir l'adresse IP de l'instance principale AlloyDB où se trouve votre base de données, puis utiliser l'outil pg_restore pour importer le fichier dans la base de données.

  1. Obtenez l'adresse IP de l'instance principale AlloyDB où se trouve votre base de données en affichant ses détails.
  2. Connectez-vous en SSH à la VM Compute Engine.

    Console

    1. Dans la console Google Cloud, accédez à la page Instances de VM.

      Accéder à la page Instances de VM

    2. Dans la liste des instances de machine virtuelle, cliquez sur SSH sur la ligne de l'instance que vous avez créée.

      bouton SSH en regard du nom de l'instance.

    gcloud

    Utilisez la commande gcloud compute ssh pour vous connecter à l'instance que vous avez créée.

    gcloud compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME

    Remplacez les éléments suivants :

    • PROJECT_ID: identifiant du projet contenant l'instance.
    • ZONE: nom de la zone dans laquelle se trouve l'instance.
    • VM_NAME : nom de l'instance
  3. Copiez le fichier DMP dans le système de fichiers local de l'hôte client:
    gcloud storage cp gs://BUCKET_NAME/DMP_FILE_NAME .
  4. Exécutez la commande suivante pour créer un fichier de table des matières qui commente toutes les instructions EXTENSION:
    pg_restore \
    -l DMP_FILE_NAME | sed -E 's/(.* EXTENSION )/; \1/g' > TOC_FILE_NAME
    • DMP_FILE_NAME: fichier DMP sur le système de fichiers local.
    • TOC_FILE_NAME: indiquez un nom de fichier pour le fichier de table des matières à créer dans le système de fichiers local.
  5. Importez le fichier DMP:
    pg_restore -h IP_ADDRESS -U postgres \
      -d DB_NAME \
      -L TOC_FILE_NAME \
      DMP_FILE_NAME
    
    • IP_ADDRESS : adresse IP de l'instance principale.
    • DB_NAME: nom de la base de données dans laquelle importer les données.
    • TOC_FILE_NAME: fichier de table des matières que vous avez créé à l'étape précédente.
    • DMP_FILE_NAME: fichier DMP.

    La commande pg_restore fournit plusieurs options supplémentaires pour contrôler l'opération d'importation de données.

Effectuer un nettoyage des ressources

Une fois le fichier DMP importé, vous pouvez supprimer le bucket Cloud Storage et la VM Compute Engine que vous avez utilisées lors de la procédure d'importation.