MySQL HeatWave DBシステムのMySQLインスタンスへの移行

MySQL HeatWave DBシステムに格納されているデータを、オンプレミスまたは他のクラウド・ベンダーで実行されているMySQLインスタンスに、管理対象サービスまたは管理対象外サービスとして移行できます。データベース表をテキスト・データにエクスポートして、他のデータベースまたはアプリケーションで使用することもできます。

MySQLシェルは、MySQLの高度なクライアントおよびコード・エディタです。SQL機能に加えて、JavaScriptおよびPythonのスクリプト機能を提供し、MySQLデータベースを操作するための様々なAPIおよびユーティリティを備えています。MySQLシェルには、MySQLインスタンスに格納されているデータをエクスポートおよびインポートするためのダンプおよびロード・ユーティリティがあります。MySQLシェルのバージョンは、MySQLインスタンスのバージョン以上である必要があります。MySQLシェルの最新バージョンをインストールして使用することをお薦めします。

MySQL HeatWave DBシステムのエクスポート

次のMySQLシェル・ダンプ・ユーティリティのいずれかを使用して、MySQL HeatWave DBシステムのデータをエクスポートできます。
  • util.dumpInstance(outputUrl[, options]): 互換性があるすべてのスキーマをオブジェクト・ストレージ・バケットまたはローカル・ファイルにエクスポートするMySQLインスタンスのエクスポート・ユーティリティ。デフォルトでは、このユーティリティはユーザー、イベント、ルーチンおよびトリガーをエクスポートします。
  • util.dumpSchemas(schemas, outputUrl[, options]): 選択されたスキーマをオブジェクト・ストレージ・バケットまたはローカル・ファイルにエクスポートするMySQLスキーマのエクスポート・ユーティリティ。
  • util.dumpTables(schema, tables, outputUrl[, options]): スキーマの選択された表をオブジェクト・ストレージ・バケットまたはローカル・ファイルにエクスポートするMySQL表エクスポート・ユーティリティ。
エクスポートされたダンプ・ファイルは、次のいずれかの場所に書き込むことができます。
  • MySQLシェルを実行しているクライアント・マシンのローカル・ファイル・システム
  • Oracle Cloud Infrastructure Object Storage
  • Amazon Web Services (AWS) S3互換バケット
  • Microsoft Azure BLOBストレージ

MySQLシェルは、Oracle Cloud Infrastructureコンピュート・インスタンス、またはエクスポートするデータを含むMySQL HeatWave DBシステムに接続できる別のクライアント・マシンにインストールできます。次に、MySQLシェルを実行して、エクスポートするデータにアクセスするための十分な権限を持つユーザー・アカウントを持つDBシステムに接続します。DBシステムに接続したら、ダンプ・ユーティリティを実行してデータをエクスポートできます。

いくつかの例:
  • MySQL HeatWave DBシステムのすべてのスキーマをエクスポートし、ダンプ・ファイルをexport-instanceという名前のファイル・システム・ディレクトリに格納します。
    shell-js> util.dumpInstance("export-instance", {ocimds: true})
    インスタンス・ダンプでocimdsオプションがtrueに設定されている場合、MySQL HeatWave固有のデータベース・オブジェクトおよびユーザー・アカウントはすべてエクスポートで除外されます。MySQL HeatWave DBシステムでユーザーが作成したすべてのスキーマ、テーブル、ユーザー、イベント、ルーチンおよびトリガーをエクスポートします。これには、次のものが含まれます。
    • すべてのユーザー作成スキーマと、スキーマ内のすべてのデータベース・オブジェクトおよびデータ。
    • すべてのユーザー作成データベース・ユーザー・アカウントと、付与された権限。
  • worldスキーマをエクスポートし、ダンプ・ファイルをexport-schemas-worldという名前のファイル・システム・ディレクトリに格納します。
    shell-js> util.dumpSchemas(["world"], "export-schemas-world")

    この例では、worldスキーマ内のすべてのデータベース・オブジェクトおよびデータをエクスポートします。データベース・ユーザー・アカウントはエクスポートされません。

  • worldスキーマのcity表およびcountry表をエクスポートし、ダンプ・ファイルをexport-tables-city-countryという名前のファイル・システム・ディレクトリに格納します。
    shell-js> util.dumpTables("world", ["city", "country"],"export-tables-city-country")

    この例では、worldスキーマのcity表およびcountry表のすべてのデータをエクスポートします。worldスキーマ内の他のデータベース・オブジェクト(ストアド・ルーチンやイベントなど)はエクスポートされません。データベース・ユーザー・アカウントもエクスポートされません。

  • worldスキーマ内のcity表およびcountry表をエクスポートし、csvテキスト・ファイルを含むダンプ・ファイルをexport-csv-city-countryという名前のファイル・システム・ディレクトリに格納します。
    shell-js> util.dumpTables("world", ["city", "country"],"export-csv-city-country", {dialect: "csv", compression: "none"})

    この例では、worldスキーマのcity表およびcountry表のすべてのデータを、圧縮されていないcsvテキスト・ファイルにエクスポートします。これらのテキスト・ファイルは、必要に応じて他のデータベースまたはアプリケーションにロードできます。

  • MySQLインスタンスをエクスポートし、事前認証済リクエスト(PAR)で指定されたOracle Cloud Infrastructureバケットにダンプ・ファイルを格納します:
    shell-js> util.dumpInstance("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/", {ocimds: true})
    最初はバケットが空である必要があります。
  • MySQLインスタンスをエクスポートし、事前認証済リクエスト(PAR)で指定された接頭辞を使用して、ダンプ・ファイルをOracle Cloud Infrastructureバケットに格納します:
    shell-js> util.dumpInstance("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/MyPrefix/", {ocimds: true})
    バケットに同じ接頭辞を持つオブジェクトを含めることはできません。

使用可能なすべてのオプションのリファレンスについては、MySQL Shell Dump Utilitiesを参照してください。

MySQLインスタンスへのインポート

MySQLシェル・ダンプ・ロード・ユーティリティを使用して、MySQLシェル・ダンプ・ユーティリティを使用してエクスポートされたデータを任意のMySQLインスタンスにインポートできます。MySQLインスタンスは、オンプレミスまたは他のクラウド・ベンダーで、管理対象サービスまたは管理対象外サービスとして実行されている場合があります。
util.loadDump(url[, options])

クライアント・マシンでMySQLシェルを実行し、データのインポートに必要な権限を持つユーザー・アカウントでMySQLインスタンスに接続します。MySQLインスタンスに接続したら、MySQLシェル・ダンプ・ロード・ユーティリティを実行してデータをインポートできます。

いくつかの例:
  • この例では、export-instanceという名前のファイル・システム・ディレクトリにあるダンプ・ファイルからすべてのデータベース・オブジェクトとデータをインポートします。
    shell-js> util.loadDump("export-instance")
  • この例では、事前認証済リクエスト(PAR)で指定されたOracle Cloud Infrastructureバケットからすべてのデータベース・オブジェクトおよびデータをインポートします:
    shell-js> util.loadDump("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/", progressFile: "progress.json"})
    PARを使用してOracle Cloud Infrastructureバケットからインポートする場合、インポートの状態を追跡するためにローカルの進行状況ファイルが必要です。
  • この例では、事前認証済リクエスト(PAR)で指定された接頭辞を持つOracle Cloud Infrastructureバケットからすべてのデータベース・オブジェクトおよびデータをインポートします:
    shell-js> util.loadDump("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/MyPrefix/", progressFile: "progress.json"})
    PARを使用してOracle Cloud Infrastructureバケットからインポートする場合、インポートの状態を追跡するためにローカルの進行状況ファイルが必要です。

使用可能なすべてのオプションのリファレンスについては、MySQL Shell Dump Loading Utilitiesを参照してください。