Bonnes pratiques pour l'importation et l'exportation
Voici les bonnes pratiques à adopter lors de l'importation et de l'exportation de données :
- Ne pas utiliser les buckets "Paiements" du demandeur Cloud Storage
- Minimiser l'impact sur les performances des exportations
- Utiliser les options appropriées lors de la création d'un fichier de vidage SQL
- Compresser les données afin de réduire les coûts
- Réduire les processus d'importation et d'exportation de longue durée
- Vérifier la base de données importée
Ne pas utiliser les buckets "Paiements" du demandeur Cloud Storage
Vous ne pouvez pas utiliser de buckets Cloud Storage pour lesquels les paiements du demandeur sont activés pour réaliser des importations et des exportations depuis Cloud SQL.
Minimiser l'impact sur les performances des exportations
Pour une exportation standard depuis Cloud SQL, l'exportation est exécutée tant que la base de données est en ligne. Lorsque la quantité des données exportées est faible, l'impact est susceptible d'être minime. Toutefois, en cas de bases de données ou d'objets volumineux, tels que des BLOB dans la base de données, il est possible que l'exportation réduise les performances de la base de données. Cela peut avoir un impact sur le temps nécessaire pour exécuter des requêtes et des opérations sur la base de données. Une fois que vous avez lancé une exportation, il n'est pas possible de l'arrêter si votre base de données commence à répondre lentement.
Pour éviter les réponses lentes lors d'une exportation, vous pouvez agir de la façon suivante :
Effectuer l'exportation à partir d'une instance dupliquée avec accès en lecture. Cette option peut être appropriée si vous effectuez des exportations fréquemment (tous les jours ou plus souvent), mais que la quantité de données exportées est faible. Pour effectuer une exportation depuis une instance dupliquée avec accès en lecture, utilisez les fonctions d'exportation de la console Google Cloud, de
gcloud
ou de l'API REST sur votre instance dupliquée avec accès en lecture. Pour en savoir plus sur la création et la gestion des instances dupliquées avec accès en lecture, consultez la page Créer des instances dupliquées avec accès en lecture.Utiliser l'exportation sans serveur. Avec l'exportation sans serveur, Cloud SQL crée une instance temporaire distincte pour décharger l'opération d'exportation. Le déchargement de l'opération d'exportation permet aux bases de données de l'instance principale de continuer à diffuser des requêtes et d'effectuer des opérations au débit de performances habituel. Une fois l'exportation des données terminée, l'instance temporaire est automatiquement supprimée. Cette option est judicieuse si vous effectuez une exportation ponctuelle d'une grande base de données. Utilisez les fonctions d'exportation de la console Google Cloud, de
gcloud
ou de l'API REST avec l'optionoffload
pour effectuer une opération d'exportation sans serveur.Lors d'une opération d'exportation sans serveur, vous pouvez effectuer d'autres opérations, telles que la modification, l'importation et le basculement d'instances. Toutefois, si vous sélectionnez
Consultez le tableau suivant pour découvrir les opérations pouvant être bloquées lorsqu'une opération d'exportation sans serveur est en cours d'exécution :delete
, l'opération d'exportation s'arrête après la suppression de l'instance et n'exporte aucune donnée.Opération en cours Nouvelle opération Blocage ? Toute opération Exportation sans serveur Oui Exportation sans serveur Toute opération, à l'exception de l'exportation sans serveur Non Toute opération, à l'exception de l'exportation sans serveur Toute opération, à l'exception de l'exportation sans serveur Oui Une exportation sans serveur prend plus de temps qu'une exportation standard, car la création de l'instance temporaire prend du temps. La durée minimale est de 5 minutes, mais pour les bases de données plus volumineuses, cela peut prendre plus de temps. Prenez en compte l'impact sur le temps, les performances et les coûts avant de déterminer le type d'exportation à utiliser.
Utiliser les indicateurs appropriés lors de la création d'un fichier de vidage SQL
Si vous n'utilisez pas la bonne procédure lorsque vous exportez des données vers un fichier de vidage SQL, l'importation peut échouer. Pour en savoir plus sur la création d'un fichier de vidage SQL à importer dans Cloud SQL, consultez la page Exporter des données.
Compresser les données afin de réduire les coûts
Cloud SQL permet d'importer et d'exporter des fichiers compressés ou non. Grâce à la compression, vous pouvez économiser un espace de stockage considérable sur Cloud Storage et réduire les coûts de stockage, en particulier lorsque vous exportez des instances volumineuses.
Lorsque vous exportez un fichier de vidage SQL ou CSV, utilisez l'extension de fichier.gz
pour compresser les données. Lorsque vous importez un fichier avec une extension .gz
, il est automatiquement décompressé.
Réduire les processus d'importation et d'exportation de longue durée
L'exécution d'opérations d'importation dans Cloud SQL et d'exportations à partir de Cloud SQL peut prendre beaucoup de temps selon la taille des données traitées. Cela peut avoir les conséquences suivantes :
- Vous ne pouvez pas arrêter une opération d'instance Cloud SQL de longue durée.
- Vous ne pouvez effectuer qu'une seule opération d'importation ou d'exportation à la fois pour chaque instance, tandis qu'une importation ou une exportation de longue durée bloque d'autres opérations, telles que les sauvegardes automatiques quotidiennes. Les exportations sans serveur vous permettent d'exécuter d'autres opérations, comme la modification d'instances, l'importation, le basculement et le déblocage des sauvegardes quotidiennes.
Vous pouvez réduire le temps nécessaire à l'exécution de chaque opération en utilisant la fonctionnalité d'importation ou d'exportation Cloud SQL avec de plus petits lots de données.
Pour les exportations, vous pouvez effectuer l'exportation à partir d'une instance dupliquée avec accès en lecture ou utiliser l'exportation sans serveur afin de minimiser l'impact sur les performances de la base de données et de permettre que d'autres opérations s'exécutent sur votre instance pendant l'exécution d'une exportation.
Pour obtenir plus de conseils, consultez la section Diagnostiquer les problèmes liés aux instances Cloud SQL.Vérifier la base de données importée
Une fois l'importation terminée, connectez-vous à votre base de données et exécutez les commandes de base de données appropriées pour vous assurer que le contenu est correct. Par exemple, connectez et répertoriez les bases de données, les tables et les entrées spécifiques.
Limites connues
Pour obtenir la liste des limites connues, consultez la section Problèmes d'importation et d'exportation des données.
Automatiser les opérations d'exportation
Bien que Cloud SQL ne dispose pas d'une méthode intégrée pour automatiser les exportations de base de données, vous pouvez créer votre propre outil d'automatisation à l'aide de plusieurs composants Google Cloud. Pour en savoir plus, consultez ce tutoriel.
Dépannage
Résoudre les problèmes liés aux opérations d'importation
Problème | Dépannage |
---|---|
Message d'erreur : permission denied for schema public |
Pour PostgreSQL 15 et versions ultérieures, si la base de données cible est créée à partir de template0 , l'importation des données peut échouer. Pour résoudre ce problème, fournissez les droits de schéma public à l'utilisateur cloudsqlsuperuser en exécutant la commande SQL GRANT ALL ON SCHEMA public TO cloudsqlsuperuser . |
HTTP Error 409: Operation failed because another operation was already in progress |
Une opération est déjà en attente pour votre instance. Il n'est possible d'exécuter qu'une seule opération à la fois. Envoyez votre requête lorsque l'opération en cours est terminée. |
L'opération d'importation prend trop de temps. | Un trop grand nombre de connexions actives peut interférer avec les opérations d'importation.
Fermez les opérations inutilisées. Vérifiez l'utilisation du processeur et de la mémoire de votre instance Cloud SQL pour vous assurer que de nombreuses ressources sont disponibles. Le meilleur moyen de s'assurer de la présence d'un nombre maximal de ressources pour l'opération d'importation consiste à redémarrer l'instance avant de lancer l'importation. Un redémarrage :
|
Une opération d'importation peut échouer lorsqu'un ou plusieurs utilisateurs référencés dans le fichier de dump n'existent pas. | Avant d'importer un fichier de dump, tous les utilisateurs de la base de données qui possèdent des objets ou disposent d'autorisations sur les objets qu'elle contient doivent exister dans la base de données cible. Si ce n'est pas le cas, l'opération d'importation ne parvient pas à recréer les objets en rétablissant les propriétaires ou les autorisations d'origine.
Créez les utilisateurs de la base de données avant de l'importer. |
Après l'importation des données, votre taille d'espace disque de données utilisée est beaucoup plus élevée. | L'importation des données peut conduire à une utilisation inattendue du disque. Cette utilisation peut par exemple être due à la récupération à un moment précis. Pour résoudre ce problème, une fois les données importées, désactivez la récupération à un moment précis si vous souhaitez supprimer les journaux et récupérer de l'espace de stockage. N'oubliez pas que la réduction du stockage utilisé ne réduit pas la taille du stockage provisionné pour l'instance. |
Message d'erreur : GRANT stderr: ERROR: must be member of role ROLE_NAME |
Ce message d'erreur s'affiche si vous essayez d'importer un fichier de vidage SQL importé dans Cloud Storage dans une base de données Cloud SQL, et que la tâche d'importation s'est exécutée pendant environ quatre jours. ROLE_NAME est un rôle de base de données personnalisé défini dans la base de données PostgreSQL source. L'utilisateur Pour résoudre ce problème, procédez comme suit :
|
Résoudre les problèmes liés aux opérations d'exportation
Problème | Dépannage |
---|---|
HTTP Error 409: Operation failed because another operation was
already in progress. |
Une opération est déjà en attente pour votre instance. Il n'est possible d'exécuter qu'une seule opération à la fois. Envoyez votre requête lorsque l'opération en cours est terminée. |
HTTP Error 403: The service account does not have the required
permissions for the bucket. |
Assurez-vous que le bucket existe et que le compte de service de l'instance Cloud SQL (qui effectue l'exportation) dispose du rôle Storage Object Creator (roles/storage.objectCreator ) pour autoriser l'exportation vers le bucket. Consultez la page Rôles IAM pour Cloud Storage. |
L'exportation au format CSV a fonctionné, mais pas l'exportation au format SQL. | Les formats CSV et SQL sont exportés de manière différente. Comme le format SQL exporte l'intégralité de la base de données, l'exportation prend probablement plus de temps. Le format CSV vous permet de définir les éléments de la base de données à exporter.
Exportez uniquement les données dont vous avez besoin à l'aide du format CSV. |
L'exportation prend trop de temps. | Cloud SQL n'est pas compatible avec les opérations synchrones simultanées.
Utilisez le déchargement des exportations. En règle générale, lors du déchargement des exportations, au lieu d'exécuter une exportation sur l'instance source, Cloud SQL lance une instance de déchargement pour effectuer l'exportation. Le déchargement des exportations présente plusieurs avantages, y compris une amélioration des performances sur l'instance source et le déblocage des opérations d'administration pendant l'exportation. Avec le déchargement des exportations, la latence totale peut augmenter en fonction du temps nécessaire à l'affichage de l'instance de déchargement. En règle générale, la latence n'est pas significative pour les exportations de taille raisonnable. Toutefois, si votre exportation est suffisamment petite, vous pouvez constater une augmentation de la latence. |
Erreur de création de l'extension | Le fichier de vidage contient des références à une extension non compatible.
Modifiez le fichier de vidage pour supprimer les références. |
Erreur lors de l'utilisation de pg_dumpall . |
L'utilisation de l'utilitaire pg_dumpall avec l'option --global nécessite le rôle de super-utilisateur, mais ce rôle n'est pas disponible dans Cloud SQL pour PostgreSQL. Pour éviter les erreurs lors de l'exécution d'opérations d'exportation incluant des noms d'utilisateur, utilisez également l'option --no-role-passwords .
|
L'opération d'exportation expire avant d'exporter des données et le message d'erreur Could not receive data from client: Connection reset
by peer. s'affiche. |
Si Cloud Storage ne reçoit aucune donnée dans les délais impartis (généralement environ sept minutes), la connexion est réinitialisée. Il est possible que l'exécution de la requête d'exportation initiale soit trop longue.
Effectuez une exportation manuelle à l'aide de l'outil |
Vous souhaitez automatiser les exportations. | Cloud SQL ne permet pas d'automatiser les exportations.
Vous pouvez créer votre propre système d'exportation automatisé à l'aide de produits Google Cloud tels que Cloud Scheduler, Pub/Sub et Cloud Functions, de manière semblable à cet article sur l'automatisation des sauvegardes. |
Étape suivante
- Découvrez comment importer et exporter des données à l'aide de fichiers de vidage PG.
- Découvrez comment importer et exporter des données à l'aide de fichiers CSV.
- Découvrez comment activer les sauvegardes automatiques.
- Apprenez à effectuer une restauration à partir de sauvegardes.