Exportation d'une instance MySQL
Exportez une instance MySQL vers un seau de stockage d'objets à l'aide des utilitaires de vidage de l'interpréteur de commandes MySQL. Vous pouvez ensuite utiliser la fonction d'importation de données pour importer des données du seau de stockage d'objets vers un système de base de données présent dans la même région.
Utilisez l'un des utilitaires de vidage suivants :
util.dumpInstance(outputUrl[, options])
: Utilitaire d'exportation d'instance MySQL qui exporte tous les schémas compatibles vers un seau du service de stockage d'objets ou vers des fichiers locaux. Par défaut, cet utilitaire exporte les utilisateurs, les événements, les sous-programmes et les déclencheurs. Voir Utilitaires de vidage.util.dumpSchemas(schemas, outputUrl[, options])
: Utilitaire d'exportation de schéma MySQL qui exporte les schémas sélectionnés vers un seau de stockage d'objets ou vers des fichiers locaux.util.dumpTables(schema, tables, outputUrl[, options])
: Utilitaire d'exportation de table MySQL qui exporte les tables sélectionnées d'un schéma vers un seau de stockage d'objets ou vers des fichiers locaux.
Lors de l'exportation des données, effectuez des vérifications de compatibilité sur les schémas. S'il y a des problèmes, l'utilitaire de vidage abandonne l'exportation et produit une liste détaillée des problèmes et suggère des étapes pour les corriger. En outre, en cas d'interruption de connexion lors de l'exportation des données, vous devez réexécuter l'utilitaire de vidage. Vous ne pouvez pas mettre en pause et reprendre l'exportation des données.
Utilisation de l'interpréteur de commandes MySQL
Utilisez l'utilitaire dumpInstance
MySQL Shell pour exporter une instance MySQL vers un seau de stockage d'objets.
- Interpréteur de commandes MySQL version 8.0.27 ou ultérieure. Les exportations créées par MySQL et version 8.0.27 ne peuvent pas être importées par des versions antérieures de MySQL. La dernière version de l'interpréteur de commandes MySQL est recommandée.
- Accès au stockage d'objets et à un seau existant.
- Fichier de configuration valide. Si vous avez installé et configuré l'interface de ligne de commande dans l'emplacement par défaut, vous disposez d'un fichier de configuration valide. Si vous n'avez pas installé et configuré l'interface de ligne de commande, vous devez l'installer ou créer un fichier de configuration manuellement. Voir Fichier de configuration des trousses SDK et de l'interface de ligne de commande.
Vérifications de compatibilité
Le service HeatWave comporte plusieurs restrictions liées à la sécurité qui ne sont pas présentes dans une instance MySQL. Utilisez l'option ocimds
de l'utilitaire de vidage pour effectuer des vérifications de compatibilité sur les données vidées. En cas de problème, l'utilitaire abandonne le vidage et génère une liste détaillée des problèmes et suggère des étapes pour les corriger.
La commande suivante montre comment effectuer des vérifications de compatibilité à l'aide de l'option ocimds
en mode dryrun
. Certains problèmes détectés par l'option ocimds
peuvent nécessiter la modification manuelle du schéma avant son chargement dans le service HeatWave.
util.dumpInstance("", {mode: "dryrun", ocimds: true})
Après avoir identifié les problèmes de compatibilité et les options de compatibilité, vous pouvez spécifier les options de la commande qui exporte les données.
util.dumpInstance("<BucketPrefix>", {osBucketName: "<MDSBucket>", ocimds: true,
compatibility: ["force_innodb", "strip_definers", "strip_restricted_grants",
"skip_invalid_accounts", "strip_tablespaces", "ignore_missing_pks"] } )
Vous pouvez utiliser les options de compatibilité séparées par des virgules suivantes pour modifier automatiquement les données exportées, ce qui résout certains des problèmes de compatibilité suivants :
force_innodb
: Le service HeatWave prend uniquement en charge le moteur de stockage InnoDB. Cette option modifie la clauseENGINE
des énoncésCREATE TABLE
qui utilisent des moteurs de stockage incompatible et les remplace par InnoDB.strip_definers
: Retire la clause"DEFINER=account"
des vues, sous-programmes, événements et déclencheurs. Le service HeatWave nécessite des privilèges spéciaux pour créer ces objets avec un créateur autre que l'utilisateur qui charge le schéma. Retirer la clauseDEFINER
permet de créer ces objets avec cet auteur par défaut. La clauseSQL SECURITY
des vues et des sous-programmes est modifiée deDEFINER
enINVOKER
. Ainsi, les autorisations d'accès du compte qui les interroge ou les appelle sont appliquées, au lieu de celles de l'utilisateur qui les a créés. Si votre modèle de sécurité de base de données nécessite que les vues et les sous-programmes aient plus de privilèges que l'appelant, modifiez manuellement le schéma avant de le charger. Voir DEFINER et Sécurité SQL.strip_restricted_grants
: Certains privilèges sont limités dans le service HeatWave. Il s'agit des privilègesRELOAD
,FILE
,SUPER
,BINLOG_ADMIN
etSET_USER_ID
. Vous ne pouvez pas créer d'utilisateurs accordant ces privilèges. Cette option retire ces privilèges des énoncésGRANT
vidés.skip_invalid_accounts
: Vous ne pouvez pas exporter un utilisateur pour lequel aucun mot de passe n'est défini. Cette option ignore de tels utilisateurs.strip_tablespaces
: Le service HeatWave comporte des restrictions sur les espaces-tables. Cette option retire l'optionTABLESPACE
des énoncésCREATE TABLE
, de sorte que toutes les tables sont créées dans leur espace-table par défaut.- Indicateurs de clé primaire :
create_invisible_pks
: Les clés primaires sont requises par les systèmes de base de données à haute disponibilité. Si vous avez l'intention d'exporter des données à utiliser dans un système de base de données hautement disponible, ajoutez des clés primaires si elles ne sont pas définies dans les tables. Cet indicateur de compatibilité ajoute des clés primaires invisibles à chaque table qui en a besoin. Voir Préalables.ignore_missing_pks
: Si vous n'avez pas l'intention d'importer dans un système de base de données à haute disponibilité, cet indicateur de compatibilité ignore les clés primaires manquantes dans votre vidage.
En outre, les options DATA DIRECTORY
, INDEX DIRECTORY
et ENCRYPTION
des énoncés CREATE TABLE
sont toujours mises en commentaires dans les scripts DDL si l'option ocimds
est activée.
Si vous prévoyez d'exporter une version plus ancienne de MySQL, telle que 5.7.9, et si vous utilisez une version d'interpréteur de commandes MySQL antérieure à 8.0.30, il est recommandé d'exécuter l'utilitaire de vérification de mise à niveau de l'interpréteur de commandes MySQL pour générer un rapport sur tous les problèmes potentiels liés à la migration. Voir Utilitaire de vérification de mise à niveau.
Rubriques connexes