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 à l'aide du format custom ou directory.

Pour importer un fichier créé par l'outil pg_dump au format plain, consultez 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éparez 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 vous devez disposer 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 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, assurez-vous d'allouer suffisamment de stockage local à la VM Compute Engine pour accueillir le fichier DMP que vous importez.

  2. Installez gcloud CLI pour accéder en ligne de commande au fichier DMP dans le bucket Cloud Storage.

Importer le fichier DMP

Pour importer le fichier DMP, obtenez l'adresse IP de l'instance principale AlloyDB où se trouve votre base de données, puis utilisez 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 : ID 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 TOC qui met en commentaire 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 TOC à créer sur 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 TOC 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ée lors de la procédure d'importation.