Migration d'un système de base de données MySQL HeatWave vers une instance MySQL

Vous pouvez migrer les données stockées dans un système de base de données MySQL HeatWave vers une instance MySQL qui s'exécute sur place ou dans d'autres fournisseurs en nuage en tant que services gérés ou non gérés. Vous pouvez également exporter les tables de base de données dans des données texte à utiliser dans d'autres bases de données ou applications.

L'interpréteur de commandes MySQL est un client avancé et un éditeur de code pour MySQL. Il fournit des fonctionnalités SQL ainsi que des fonctionnalités de script pour JavaScript et Python, et comprend diverses API et utilitaires pour l'utilisation des bases de données MySQL. L'interpréteur de commandes MySQL comporte des utilitaires de vidage et de chargement pour exporter et importer des données stockées dans des instances MySQL. La version de l'interpréteur de commandes MySQL doit être égale ou supérieure à la version de l'instance MySQL. Il est recommandé d'installer et d'utiliser la dernière version de l'interpréteur de commandes MySQL.

Exportation d'un système de base de données MySQL HeatWave

Vous pouvez exporter les données de votre système de base de données MySQL HeatWave à l'aide de l'un des utilitaires de vidage de l'interpréteur de commandes MySQL 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.
  • 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.
Vous pouvez écrire les fichiers dump exportés dans l'un des emplacements suivants :
  • Système de fichiers local sur l'ordinateur client exécutant l'interpréteur de commandes MySQL
  • Service de stockage d'objets pour Oracle Cloud Infrastructure
  • Seau compatible avec S3 pour Amazon Web Services (AWS)
  • Microsoft Azure Blob Storage

Vous pouvez installer l'interpréteur de commandes MySQL dans une instance de calcul Oracle Cloud Infrastructure ou sur une autre machine client qui peut se connecter au système de base de données MySQL HeatWave contenant les données à exporter. Exécutez ensuite l'interpréteur de commandes MySQL pour vous connecter au système de base de données avec un compte d'utilisateur disposant de privilèges suffisants pour accéder aux données à exporter. Une fois connecté au système de base de données, vous pouvez exécuter les utilitaires de vidage pour exporter les données.

Exemples :
  • Exportez tous les schémas d'un système de base de données MySQL HeatWave et stockez les fichiers de vidage dans un répertoire de système de fichiers nommé export-instance :
    shell-js> util.dumpInstance("export-instance", {ocimds: true})
    Lorsque l'option ocimds est réglée à true dans un vidage d'instance, tous les objets de base de données et comptes d'utilisateur propres à MySQL HeatWave sont exclus de l'exportation. Il exporte tous les schémas, tables, utilisateurs, événements, sous-programmes et déclencheurs créés par l'utilisateur dans le système de base de données MySQL HeatWave, notamment :
    • Tous les schémas créés par l'utilisateur, ainsi que tous les objets de base de données et toutes les données des schémas.
    • Tous les comptes utilisateur de base de données créés par l'utilisateur ainsi que les privilèges qui lui sont accordés.
  • Exportez le schéma world et stockez les fichiers de vidage dans un répertoire de système de fichiers nommé export-schemas-world :
    shell-js> util.dumpSchemas(["world"], "export-schemas-world")

    Cet exemple exporte tous les objets et données de base de données dans le schéma world. Les comptes d'utilisateur de base de données ne sont pas exportés.

  • Exportez les tables city et country dans le schéma world et stockez les fichiers de vidage dans un répertoire du système de fichiers nommé export-tables-city-country :
    shell-js> util.dumpTables("world", ["city", "country"],"export-tables-city-country")

    Cet exemple exporte toutes les données des tables city et country du schéma world. Les autres objets de base de données du schéma world, tels que les routines et les événements stockés, ne sont pas exportés. Les comptes d'utilisateur de base de données ne sont pas non plus exportés.

  • Exportez les tables city et country dans le schéma world et stockez les fichiers de vidage contenant les fichiers texte csv dans un répertoire du système de fichiers nommé export-csv-city-country :
    shell-js> util.dumpTables("world", ["city", "country"],"export-csv-city-country", {dialect: "csv", compression: "none"})

    Cet exemple exporte toutes les données des tables city et country du schéma world dans des fichiers texte CSV non compressés. Ces fichiers texte peuvent être chargés dans d'autres bases de données ou applications, si nécessaire.

  • Exportez l'instance MySQL et stockez les fichiers de vidage dans un seau Oracle Cloud Infrastructure spécifié PAR une demande préauthentifiée :
    shell-js> util.dumpInstance("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/", {ocimds: true})
    Le seau doit d'abord être vide.
  • Exportez l'instance MySQL et stockez les fichiers de vidage dans un seau Oracle Cloud Infrastructure avec un préfixe spécifié PAR une demande préauthentifiée :
    shell-js> util.dumpInstance("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/MyPrefix/", {ocimds: true})
    Le seau ne doit pas avoir d'objet avec le même préfixe.

Pour obtenir des informations de référence sur toutes les options disponibles, voir Utilitaires de vidage de l'interpréteur de commandes MySQL.

Importation dans une instance MySQL

Vous pouvez utiliser l'utilitaire de chargement de vidage de l'interpréteur de commandes MySQL pour importer les données exportées à l'aide des utilitaires de vidage de l'interpréteur de commandes MySQL dans n'importe quelle instance MySQL. L'instance MySQL peut s'exécuter sur place ou dans d'autres fournisseurs de services en nuage en tant que services gérés ou non gérés.
util.loadDump(url[, options])

Exécutez l'interpréteur de commandes MySQL sur un ordinateur client et connectez-vous à l'instance MySQL avec un compte d'utilisateur disposant des privilèges requis pour importer les données. Une fois connecté à l'instance MySQL, vous pouvez exécuter l'utilitaire de chargement de vidage de l'interpréteur de commandes MySQL pour importer les données.

Exemples :
  • Cet exemple importe tous les objets et données de base de données à partir des fichiers de vidage du répertoire du système de fichiers nommé export-instance :
    shell-js> util.loadDump("export-instance")
  • Cet exemple importe tous les objets et données de base de données à partir d'un seau Oracle Cloud Infrastructure spécifié PAR une demande préauthentifiée :
    shell-js> util.loadDump("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/", progressFile: "progress.json"})
    Lors de l'importation à partir d'un seau Oracle Cloud Infrastructure à l'aide d'une demande préauthentifiée, un fichier de progression local est requis pour suivre l'état de l'importation.
  • Cet exemple importe tous les objets et données de base de données à partir d'un seau Oracle Cloud Infrastructure avec un préfixe spécifié PAR une demande préauthentifiée :
    shell-js> util.loadDump("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/MyPrefix/", progressFile: "progress.json"})
    Lors de l'importation à partir d'un seau Oracle Cloud Infrastructure à l'aide d'une demande préauthentifiée, un fichier de progression local est requis pour suivre l'état de l'importation.

Pour obtenir des informations de référence sur toutes les options disponibles, voir Utilitaires de chargement de vidage de l'interpréteur de commandes MySQL.