Exportez et importez des données à l'aide de fichiers de vidage SQL.

Cette page décrit comment exporter et importer des données dans des instances Cloud SQL à l'aide de fichiers de vidage SQL.

L'exportation depuis Cloud SQL vers un fichier de vidage SQL n'est pas compatible avec SQL Server.

Avant de commencer

Les exportations utilisent des ressources de base de données, mais elles n'interfèrent pas avec les opérations de base de données normales, sauf si l'instance est sous-provisionnée.

Pour obtenir des conseils, consultez la page Bonnes pratiques pour l'importation et l'exportation de données.

Une fois l'opération d'importation terminée, vérifiez les résultats.

Exporter des données depuis Cloud SQL pour SQL Server

L'exportation depuis Cloud SQL vers un fichier de vidage SQL n'est pas compatible avec SQL Server.

Importer des données dans Cloud SQL pour SQL Server

Rôles et autorisations requis pour l'importation dans Cloud SQL pour SQL Server

Pour importer des données de Cloud Storage dans Cloud SQL, l'utilisateur qui lance l'importation doit disposer de l'un des rôles suivants :

De plus, le compte de service de l'instance Cloud SQL doit disposer de l'un des rôles suivants :

  • Le rôle IAM storage.objectAdmin
  • Un rôle personnalisé comprenant les autorisations suivantes :
    • storage.objects.get
    • storage.objects.list (pour l'importation par bandes uniquement)

Pour obtenir de l'aide sur les rôles IAM, consultez la page Identity and Access Management.

Importer un fichier de dump SQL dans Cloud SQL pour SQL Server

Les fichiers SQL sont des fichiers au format texte brut comportant une séquence de commandes SQL.

Dans la procédure suivante, préparez la spécification d'une base de données existante à partir de laquelle importer vos fichiers SQL.

Console

  1. Dans Google Cloud Console, accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Cliquez sur Import (Importer).
  4. Dans la section Sélectionnez le fichier à partir duquel vous souhaitez importer des données, saisissez le chemin d'accès au bucket et au fichier de vidage SQL à utiliser pour l'importation, ou accédez à un fichier existant.

    Vous pouvez importer un fichier compressé (.gz) ou non compressé (.sql).

  5. Pour le paramètre Format, sélectionnez SQL.
  6. Sélectionnez la base de données dans laquelle vous souhaitez importer les données.

    Cloud SQL exécute alors l'instruction USE DATABASE (Utiliser la base de données) avant l'importation.

  7. Si vous souhaitez spécifier un utilisateur pour effectuer l'importation, sélectionnez-le.

    Si votre fichier d'importation contient des instructions devant être exécutées par un utilisateur spécifique, utilisez ce champ pour le spécifier.

  8. Cliquez sur Importer pour démarrer l'importation.

gcloud

  1. Créer un bucket Cloud Storage
  2. Importez le fichier dans le bucket.

    Pour obtenir de l'aide concernant l'importation de fichiers dans des buckets, consultez la page Importer des objets.

  3. Décrivez l'instance dans laquelle vous réalisez l'importation :
    gcloud sql instances describe INSTANCE_NAME
    
  4. Copiez le champ serviceAccountEmailAddress.
  5. Utilisez gsutil iam pour accorder le rôle IAM storage.objectAdmin au compte de service du bucket.
    gsutil iam ch serviceAccount:SERVICE-ACCOUNT:objectAdmin \
    gs://BUCKET_NAME
      
    Pour obtenir de l'aide sur la définition des autorisations IAM, consultez la page Utiliser des autorisations IAM.
  6. Importez la base de données :
    gcloud sql import sql INSTANCE_NAME gs://BUCKET_NAME/IMPORT_FILE_NAME \
    --database=DATABASE_NAME
    

    Pour plus d'informations sur l'utilisation de la commande import sql, consultez la page de référence de la commande sql import sql.

    Si la commande affiche une erreur de type ERROR_RDBMS, vérifiez les autorisations. Cette erreur est souvent liée à des problèmes d'autorisation.

  7. Si vous n'avez pas besoin de conserver les autorisations IAM que vous avez définies précédemment, supprimez-les en utilisant gsutil iam.

REST v1

  1. Créer un bucket Cloud Storage
  2. Importez le fichier dans le bucket.

    Pour obtenir de l'aide concernant l'importation de fichiers dans des buckets, consultez la page Importer des objets.

  3. Attribuez à votre instance les rôles IAM legacyBucketWriter et objectViewer pour votre bucket. Pour obtenir de l'aide sur la définition des autorisations IAM, consultez la page Utiliser des autorisations IAM.
  4. Importez le fichier de vidage :

    Avant d'utiliser les données de requête, effectuez les remplacements suivants :

    • project-id : ID du projet
    • instance-id : ID de l'instance
    • bucket_name : nom du bucket Cloud Storage
    • path_to_sql_file : chemin d'accès au fichier SQL
    • database_name : nom d'une base de données dans l'instance Cloud SQL

    Méthode HTTP et URL :

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import

    Corps JSON de la requête :

    {
     "importContext":
       {
          "fileType": "SQL",
          "uri": "gs://bucket_name/path_to_sql_file",
          "database": "database_name"
        }
    }
    
    

    Pour envoyer votre requête, développez l'une des options suivantes :

    Vous devriez recevoir une réponse JSON de ce type :

    Pour obtenir la liste complète des paramètres de cette requête, consultez la page instances:import.
  5. Si vous n'avez pas besoin de conserver les autorisations IAM que vous avez définies précédemment, supprimez-les dès maintenant.

REST v1beta4

  1. Créer un bucket Cloud Storage
  2. Importez le fichier dans le bucket.

    Pour obtenir de l'aide concernant l'importation de fichiers dans des buckets, consultez la page Importer des objets.

  3. Attribuez à votre instance le rôle IAM storage.objectAdmin pour votre bucket. Pour obtenir de l'aide sur la définition des autorisations IAM, consultez la page Utiliser des autorisations IAM.
  4. Importez le fichier de vidage :

    Avant d'utiliser les données de requête, effectuez les remplacements suivants :

    • project-id : ID du projet
    • instance-id : ID de l'instance
    • bucket_name : nom du bucket Cloud Storage
    • path_to_sql_file : chemin d'accès au fichier SQL
    • database_name : nom d'une base de données dans l'instance Cloud SQL

    Méthode HTTP et URL :

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import

    Corps JSON de la requête :

    {
     "importContext":
       {
          "fileType": "SQL",
          "uri": "gs://bucket_name/path_to_sql_file",
          "database": "database_name"
        }
    }
    
    

    Pour envoyer votre requête, développez l'une des options suivantes :

    Vous devriez recevoir une réponse JSON de ce type :

    Pour obtenir la liste complète des paramètres de cette requête, consultez la page instances:import.
  5. Si vous n'avez pas besoin de conserver les autorisations IAM que vous avez définies précédemment, supprimez-les dès maintenant.

Étape suivante