MySQL HeatWave-DB-System in eine MySQL-Instanz migrieren

Sie können die in einem MySQL HeatWave-DB-System gespeicherten Daten in eine MySQL-Instanz migrieren, die On-Premise oder in anderen Cloud-Anbietern als verwaltete oder nicht verwaltete Services ausgeführt wird. Sie können die Datenbanktabellen auch in Textdaten exportieren, die in anderen Datenbanken oder Anwendungen verwendet werden sollen.

MySQL Shell ist ein erweiterter Client- und Codeeditor für MySQL. Es bietet SQL-Funktionalität sowie Skriptfunktionen für JavaScript und Python und umfasst verschiedene APIs und Utilitys für die Arbeit mit MySQL-Datenbanken. MySQL Shell verfügt über Dump- und Load-Utilitys zum Exportieren und Importieren von Daten, die in MySQL-Instanzen gespeichert sind. Die Version der Shell MySQL muss gleich oder höher als die Version der Instanz MySQL sein. Es wird empfohlen, die neueste Version der MySQL Shell zu installieren und zu verwenden.

MySQL HeatWave-DB-System exportieren

Sie können die Daten des MySQL HeatWave-DB-Systems mit einem der folgenden MySQL Shell-Dumputilitys exportieren:
  • util.dumpInstance(outputUrl[, options]): MySQL-Instanzexportutility, mit dem alle kompatiblen Schemas in einen Objektspeicher-Bucket oder in lokale Dateien exportiert werden. Standardmäßig exportiert dieses Utility Benutzer, Ereignisse, Routinen und Trigger.
  • util.dumpSchemas(schemas, outputUrl[, options]): Schemaexportutility MySQL, das ausgewählte Schemas in einen Objektspeicher-Bucket oder in lokale Dateien exportiert.
  • util.dumpTables(schema, tables, outputUrl[, options]): MySQL-Tabellenexportutility, das ausgewählte Tabellen eines Schemas in einen Objektspeicher-Bucket oder in lokale Dateien exportiert.
Sie können die exportierten Dumpdateien in einen der folgenden Speicherorte schreiben:
  • Lokales Dateisystem auf dem Clientrechner, auf dem die Shell MySQL ausgeführt wird
  • Oracle Cloud Infrastructure Object Storage
  • S3-kompatibler Bucket von Amazon Web Services (AWS)
  • Microsoft Azure Blob-Speicher

Sie können MySQL Shell in einer Oracle Cloud Infrastructure-Compute-Instanz oder einem anderen Clientrechner installieren, der eine Verbindung zum MySQL HeatWave-DB-System mit den Daten herstellen kann, die Sie exportieren möchten. Führen Sie dann MySQL Shell aus, um eine Verbindung zum DB-System mit einem Benutzeraccount herzustellen, der über ausreichende Berechtigungen für den Zugriff auf die Daten verfügt, die Sie exportieren möchten. Nachdem Sie mit dem DB-System verbunden sind, können Sie die Dumputilitys ausführen, um die Daten zu exportieren.

Einige Beispiele:
  • Exportieren Sie alle Schemas eines MySQL HeatWave-DB-Systems, und speichern Sie die Dumpdateien in einem Dateisystemverzeichnis namens export-instance:
    shell-js> util.dumpInstance("export-instance", {ocimds: true})
    Wenn die Option ocimds in einem Instanzdump auf true gesetzt ist, werden alle MySQL HeatWave-spezifischen Datenbankobjekte und Benutzeraccounts im Export ausgeschlossen. Es exportiert alle Schemas, Tabellen, Benutzer, Ereignisse, Routinen und Trigger, die vom Benutzer im MySQL HeatWave-DB-System erstellt wurden. Dazu gehören:
    • Alle vom Benutzer erstellten Schemas zusammen mit allen Datenbankobjekten und Daten in den Schemas.
    • Alle vom Benutzer erstellten Datenbankbenutzeraccounts zusammen mit den ihnen erteilten Berechtigungen.
  • Exportieren Sie das Schema world, und speichern Sie die Dumpdateien in einem Dateisystemverzeichnis namens export-schemas-world:
    shell-js> util.dumpSchemas(["world"], "export-schemas-world")

    In diesem Beispiel werden alle Datenbankobjekte und Daten im Schema world exportiert. Datenbankbenutzeraccounts werden nicht exportiert.

  • Exportieren Sie die Tabellen city und country im Schema world, und speichern Sie die Dumpdateien in einem Dateisystemverzeichnis mit dem Namen export-tables-city-country:
    shell-js> util.dumpTables("world", ["city", "country"],"export-tables-city-country")

    In diesem Beispiel werden alle Daten in die Tabellen city und country im Schema world exportiert. Andere Datenbankobjekte im Schema world, wie gespeicherte Routinen und Ereignisse, werden nicht exportiert. Datenbankbenutzeraccounts werden ebenfalls nicht exportiert.

  • Exportieren Sie die Tabellen city und country im Schema world, und speichern Sie die Dumpdateien mit csv-Textdateien in einem Dateisystemverzeichnis mit dem Namen export-csv-city-country:
    shell-js> util.dumpTables("world", ["city", "country"],"export-csv-city-country", {dialect: "csv", compression: "none"})

    In diesem Beispiel werden alle Daten in den Tabellen city und country im Schema world in unkomprimierte CSV-Textdateien exportiert. Diese Textdateien können bei Bedarf in andere Datenbanken oder Anwendungen geladen werden.

  • Exportieren Sie die Instanz MySQL, und speichern Sie die Dumpdateien in einem Oracle Cloud Infrastructure-Bucket, der von einer vorab authentifizierten Anforderung (PAR) angegeben wird:
    shell-js> util.dumpInstance("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/", {ocimds: true})
    Der Bucket muss anfänglich leer sein.
  • Exportieren Sie die Instanz MySQL, und speichern Sie die Dumpdateien in einem Oracle Cloud Infrastructure-Bucket mit einem Präfix, das von einer vorab authentifizierten Anforderung (PAR) angegeben wird:
    shell-js> util.dumpInstance("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/MyPrefix/", {ocimds: true})
    Der Bucket darf kein Objekt mit demselben Präfix enthalten.

Eine Referenz aller verfügbaren Optionen finden Sie unter MySQL Shell-Dumputilitys.

In eine MySQL-Instanz importieren

Mit dem Shell-Dumpladeutility MySQL können Sie die mit den Shell-Dumputilitys MySQL exportierten Daten in eine beliebige MySQL-Instanz importieren. Die Instanz MySQL kann On-Premises oder in anderen Cloud-Anbietern als verwaltete oder nicht verwaltete Services ausgeführt werden.
util.loadDump(url[, options])

Führen Sie die Shell MySQL auf einem Clientrechner aus, und stellen Sie eine Verbindung zur Instanz MySQL mit einem Benutzeraccount her, der über die erforderlichen Berechtigungen zum Importieren der Daten verfügt. Nachdem Sie mit der Instanz MySQL verbunden sind, können Sie das Utility zum Laden des Shell-Dumps MySQL ausführen, um die Daten zu importieren.

Einige Beispiele:
  • In diesem Beispiel werden alle Datenbankobjekte und Daten aus den Dumpdateien im Dateisystemverzeichnis export-instance importiert:
    shell-js> util.loadDump("export-instance")
  • In diesem Beispiel werden alle Datenbankobjekte und Daten aus einem Oracle Cloud Infrastructure-Bucket importiert, der von einer vorab authentifizierten Anforderung (PAR) angegeben wird:
    shell-js> util.loadDump("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/", progressFile: "progress.json"})
    Beim Import aus einem Oracle Cloud Infrastructure-Bucket mit einer PAR ist eine lokale Fortschrittsdatei erforderlich, um den Status des Imports zu verfolgen.
  • In diesem Beispiel werden alle Datenbankobjekte und Daten aus einem Oracle Cloud Infrastructure-Bucket mit einem Präfix importiert, das von einer vorab authentifizierten Anforderung (PAR) angegeben wird:
    shell-js> util.loadDump("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/MyPrefix/", progressFile: "progress.json"})
    Beim Import aus einem Oracle Cloud Infrastructure-Bucket mit einer PAR ist eine lokale Fortschrittsdatei erforderlich, um den Status des Imports zu verfolgen.

Eine Referenz aller verfügbaren Optionen finden Sie unter MySQL Shell-Dumpladeutilitys.