※ 本記事は、Jorge Martinezによる”Migrate AWS RDS for MySQL to HeatWave MySQL using OCI Database Migration“を翻訳したものです。
2025年1月21日
はじめに:
OCI Database Migrationサービスは、MySQLの移行をサポートしています。このガイドでは、AWS RDS for MySQLデータベースをHeatWave MySQLデータベースに最小限のダウンタイムで移行するためのステップバイステップの手順を説明します。
このサービスは、OracleとMySQLの検証済みでバージョン間を跨いだ、障害耐性のある増分方式の同種データベース移行を提供します。また、高度なオーケストレーション自動化、ソースとターゲットの互換性診断と修正、統一されたユーザーエクスペリエンスにより、データベース移行ワークフローを簡素化します。移行シナリオは短期的なものから長期的なものまであり、データベースのダウンタイムの有無にかかわらず実行できるため、運用への影響を排除します。
サービスの詳細についてはホームページをご覧ください。

この演習の想定シナリオ:
AWS RDS for MySQLインスタンス:
- エンジン: MySQL Community version 8
- 非マルチテナント・アーキテクチャ
- バイナリログの有効化とバックアップ保持期間を非ゼロ値に設定
- インスタンスをパブリックアクセス可能に設定
- DBインスタンスパラメータグループに以下の値を含める:
- binlog_row_metadata=FULL
- binlog_row_image= FULL
- binlog_format= ROW
- log_bin=1
パラメータグループの機能について詳しく知りたい場合は、次のリンクをご覧ください。また、以下のリンクにはAWS RDS for MySQLに関する一般的な情報が記載されています。
Oracle Cloud Infrastructure (OCI):
- OCI Database Migrationの操作に必要なリソースを作成するには、次の手順に従ってください。
- ターゲットとして使用するOCI HeatWave MySQLデータベースが既に存在している必要があります(本ブログではバージョン8.4.0を使用しています)。HeatWave DBシステムの作成方法については、次のリンクをご参照ください。
Step 1: AWS RDSインスタンスの接続情報を特定する
まず、RDSデータベースインスタンスのエンドポイント(DNS名)とポート番号を特定します。
ナビゲーション: Amazon RDS ホーム > データベース > 対象DB > 接続とセキュリティタブ

OCI Database MigrationはIPアドレスを必要とするため、以下のコマンドでRDSプライベートエンドポイントのIPアドレスを取得してください:

設定タブで以下の情報を確認してください:
- DB名(DBインスタンスIDではありません)
- マスターユーザー名

OCI Database Migrationの始め方
Step 2: OCI Database MigrationでソースRDSデータベース接続を作成する
データベース接続リソースは、ソースデータベースとターゲットデータベース間のネットワークおよび接続を可能にします。
ナビゲーション: 移行とディザスタ・リカバリ > データベースの移行 > データベース接続: 接続の作成をクリックする。
一般情報のページで、以下の情報を入力します(その他はデフォルトのままにしてください):
- 名前: 接続名
- コンパートメント: 使用するコンパートメントを選択
- タイプ: Amazon RDS for MySQLを選択
- ボールト: 既存のボールトを選択
- 暗号化キー: 既存の暗号化キーを選択
Nextをクリックする

接続詳細のページで、以下の情報を入力します(その他はデフォルトのままにしてください):
- データベース名: データベース名
- ホスト: ソースデータベースのパブリックIP
- ポート: 3306
- 初期ロード・データベース・ユーザー名: マスターユーザ名 (この演習ではadminユーザ)
- 初期ロード・データベース・パスワード: マスターユーザのパスワード
- このデータベースにアクセスするためのプライベート・エンドポイントの作成を選択
- 正しいプライベート・サブネットを指定する。**パブリックIPの場合でも、こちらの設定が必須となる問題が現在修正中であることに注意してください。
作成をクリックする

接続がアクティブになったら、接続のテストをクリックして接続を検証します。エラーが発生した場合は、詳細メッセージを確認して修正してください。

Step 3: HeatWave MySQL(ターゲット)のデータベース接続を作成する
一般情報のページで、以下の情報を入力します(その他はデフォルトのままにしてください):
- 名前: 接続名
- コンパートメント: 使用するコンパートメントを選択
- タイプ: OCI HeatWaveを選択
- ボールト: 既存のボールトを選択
- 暗号化キー: 既存の暗号化キーを選択
Nextをクリックする

接続詳細のページで、以下の情報を入力します(その他はデフォルトのままにしてください):
- データベース詳細: MySQLデータベース・システムの選択
- データベース・システム: 対象のHeatWaveインスタンスをリストから選択
- データベース名: RDS for MySQLと同じデータベース名を入力
- 初期ロード・データベース・ユーザー名: マスターユーザ名 (この演習ではadminユーザ)
- 初期ロード・データベース・パスワード: マスターユーザのパスワード
- このデータベースにアクセスするためのプライベート・エンドポイントの作成を選択
- 正しいプライベート・サブネットを指定する
作成をクリックする

接続の作成時には、セキュリティプロトコルとしてプレーンを使用してください。他のオプションは現在見直し中で、使用しないでください。
新しい接続をテストするために手順を繰り返してください。接続がアクティブになったら、接続のテストボタンをクリックして接続が機能していることを確認します。テストが成功したら次の手順に進んでください。
Step 4: 移行を作成する
OCI Database Migrationで移行を作成する際には、移行の実行方法が指定され、ソースおよびターゲットのデータベース接続が選択され、その後データ転送設定が構成されます。必要に応じて、GoldenGateやMySQL Shellの高度な設定も構成することができます。
ナビゲーション: 移行とディザスタ・リカバリ > データベースの移行 > 移行: 移行の作成をクリックする
一般情報のページで、以下の情報を入力します(その他はデフォルトのままにしてください):
- 名前: 移行名を指定
- コンパートメント: 使用するコンパートメントを選択
Nextをクリックする

データベースの選択のページで、以下の情報を入力します(その他はデフォルトのままにしてください):
- ソース・データベース、データベース接続: ソース・データベース接続を選択 (RDSデータベースのデータベース接続)
- ターゲット・データベース、データベース接続: ターゲット・データベース接続を選択 (HeatWave MySQLのデータベース接続)
Nextをクリックする

移行オプションのページで、以下の情報を入力します(その他はデフォルトのままにしてください):
- オブジェクト・ストレージ・バケット: 作成済みのバケットを選択
- オンライン・レプリケーションの使用にチェックを入れる
- これにより、OCI GoldenGateインスタンスがプロビジョニングされます。ユーザーに対して透過的に処理され、管理や監視は必要ありません。
作成をクリックする

Step 5: 移行を検証する
OCI Database Migrationで移行リソースの移行ジョブを実行する前に、移行リソースを検証する必要があります。
ナビゲーション: 移行とディザスタ・リカバリ > データベースの移行 > 移行 > 対象の移行を選択する > 移行の詳細
検証をクリックする
このジョブは、ソース、ターゲット、および移行設定を検証します。すべて問題がなければ、正常に完了します。
問題がある場合、ユーザーインターフェースにエラーが表示され、考えられる解決策が提供されます。エラーを修正したら、検証を再度クリックして新しいジョブを作成してください。

移行リソースが検証された後、移行ジョブを実行することができます。
Step 6: 移行ジョブを開始する
ナビゲーション: 移行とディザスタ・リカバリ > データベースの移行 > 移行 > 対象の移行を選択する > 移行の詳細
起動をクリックする
ジョブ開始後、必要に応じて特定のフェーズで一時停止できます。一時停止後、再開をクリックして次のフェーズに進めます。
確認ダイアログが表示され、の項目でフェーズを選択することで、ジョブを任意のポイントで一時停止するよう設定できます。あらかじめ選択されている値はレプリケーション・ラグのモニターです。このフェーズでは、Oracle GoldenGateのExtractおよびReplicatの操作を監視し、Replicatがターゲット・データベースに追いつくまで進行します。この時、エンドツーエンド(E2E)のレプリケーション遅延が30秒未満であることを確認します

処理後に一時停止するように選択したフェーズが完了すると、ジョブは再開(または終了)されるまで待機状態に入ります。「レプリケーション・ラグのモニター」フェーズの後で一時停止するよう設定した場合、待機状態中もトランザクションのレプリケーションは継続されます。再開時にレプリケーションが停止します。
再開をクリックする

このフェーズでは以下の処理を行います:
- レプリケーションのエンドツーエンド(E2E)遅延が30秒未満であることを確認
- ソースデータベース上の未処理のトランザクションをExtractが取得していることを確認
- Extractを停止
- Replicatが残りのトレイルファイルデータをすべて適用したことを確認
- Replicatを停止
スイッチオーバーフェーズが完了すると、ターゲット・データベースでのワークロード(ダウンタイムの終了)が開始できます。
最後のフェーズは「クリーンアップ」です。このフェーズでは、GoldenGateのExtractおよびReplicatプロセスや、ソースおよびターゲットデータベースの接続情報の削除など、クリーンアップ操作を実行します。各フェーズの詳細については、次のリンクをご覧ください。

結論:
OCI Database Migration (DMS) は、オンプレミスまたはクラウド環境からOCIへのOracleデータベース移行を実現します。使いやすいグラフィカル・ユーザー・インターフェースにより、移行ワークフローの検証と管理が可能です。MySQLの移行では、DMSがMySQL Shellを初期ロードのエンジンとして、Premigration Advisor ToolおよびOracle GoldenGateサービスを透過的に使用し、安全で障害耐性のある増分移行を実現します。
