MySQL HeatWave DBシステムのMySQLインスタンスへの移行
MySQL HeatWave DBシステムに格納されているデータを、オンプレミスまたは他のクラウド・ベンダーで実行されているMySQLインスタンスに、管理対象サービスまたは管理対象外サービスとして移行できます。データベース表をテキスト・データにエクスポートして、他のデータベースまたはアプリケーションで使用することもできます。
MySQLシェルは、MySQLの高度なクライアントおよびコード・エディタです。SQL機能に加えて、JavaScriptおよびPythonのスクリプト機能を提供し、MySQLデータベースを操作するための様々なAPIおよびユーティリティを備えています。MySQLシェルには、MySQLインスタンスに格納されているデータをエクスポートおよびインポートするためのダンプおよびロード・ユーティリティがあります。MySQLシェルのバージョンは、MySQLインスタンスのバージョン以上である必要があります。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インスタンスへのインポート
util.loadDump(url[, options])
クライアント・マシンでMySQLシェルを実行し、データのインポートに必要な権限を持つユーザー・アカウントでMySQLインスタンスに接続します。MySQLインスタンスに接続したら、MySQLシェル・ダンプ・ロード・ユーティリティを実行してデータをインポートできます。
- この例では、
export-instance
という名前のファイル・システム・ディレクトリにあるダンプ・ファイルからすべてのデータベース・オブジェクトとデータをインポートします。shell-js> util.loadDump("export-instance")
- この例では、事前認証済リクエスト(PAR)で指定されたOracle Cloud Infrastructureバケットからすべてのデータベース・オブジェクトおよびデータをインポートします:
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"})
使用可能なすべてのオプションのリファレンスについては、MySQL Shell Dump Loading Utilitiesを参照してください。