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
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.
- 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.
- 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 Optionocimds
in einem Instanzdump auftrue
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 namensexport-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
undcountry
im Schemaworld
, und speichern Sie die Dumpdateien in einem Dateisystemverzeichnis mit dem Namenexport-tables-city-country
:shell-js> util.dumpTables("world", ["city", "country"],"export-tables-city-country")
In diesem Beispiel werden alle Daten in die Tabellen
city
undcountry
im Schemaworld
exportiert. Andere Datenbankobjekte im Schemaworld
, wie gespeicherte Routinen und Ereignisse, werden nicht exportiert. Datenbankbenutzeraccounts werden ebenfalls nicht exportiert. - Exportieren Sie die Tabellen
city
undcountry
im Schemaworld
, und speichern Sie die Dumpdateien mitcsv
-Textdateien in einem Dateisystemverzeichnis mit dem Namenexport-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
undcountry
im Schemaworld
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:
Der Bucket muss anfänglich leer sein.shell-js> util.dumpInstance("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/", {ocimds: true})
- 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:
Der Bucket darf kein Objekt mit demselben Präfix enthalten.shell-js> util.dumpInstance("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/MyPrefix/", {ocimds: true})
Eine Referenz aller verfügbaren Optionen finden Sie unter MySQL Shell-Dumputilitys.
In eine MySQL-Instanz importieren
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.
- 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:
Beim Import aus einem Oracle Cloud Infrastructure-Bucket mit einer PAR ist eine lokale Fortschrittsdatei erforderlich, um den Status des Imports zu verfolgen.shell-js> util.loadDump("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/", progressFile: "progress.json"})
- 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:
Beim Import aus einem Oracle Cloud Infrastructure-Bucket mit einer PAR ist eine lokale Fortschrittsdatei erforderlich, um den Status des Imports zu verfolgen.shell-js> util.loadDump("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/MyPrefix/", progressFile: "progress.json"})
Eine Referenz aller verfügbaren Optionen finden Sie unter MySQL Shell-Dumpladeutilitys.