こんにちは!エンタープライズクラウド事業部の高橋です。

先月リリースされた、MySQL HeatWave Migration Assistantを使用して、オンプレミスのMySQL DatabaseをOCI上のMySQL HeatWaveに移行してみました。

このリリース情報は、Oracle AI Worldで発表されていた内容です。

MySQL HeatWave Migration Assistantとは

オンプレミスのデータベースを Oracle Cloud Infrastructure (OCI) の MySQL HeatWaveへ移行させることができるツールです。

GUI形式で、移行に必要なリソースの自動作成もまとめて行なってくれる便利なツールです。

「MySQL HeatWave Migration Assistant」は、「MySQL Workbench 8.0.45」の機能の一つになります。

検証内容

オンプレミスのMySQL 8.0のDatabaseをOCI上のMySQL HeatWaveへ移行します。

その後、DatabaseバージョンをMySQL 8.4.7にアップグレードできるか検証してみたいと思います!

検証の構成

今回はツールの検証のため、以下の構成を使用します。

オンプレミスのDBは準備できなかったため、擬似環境としてローカルのMac端末上にMySQL 8.0のDBを構築しています。

Mac端末上のMySQL DatabaseをOCI上のMySQL HeatWaveに移行します。

※上記図の「Local instance 3306」がMac端末上のMySQL Databaseにあたる

作業の流れ

①MySQL HeatWave Migration Assistantインストール

②OCI構成プロファイルの設定

③OCI上にコンパートメントおよび移行先VCNの作成

④MySQL HeatWave Migration Assistantでの移行実施

⑤移行結果の確認

⑥DBバージョンのアップグレード

前提

・OCIテナントやユーザーは既に作成済みのものを使用します。

・OCIのユーザーは管理権限を所持しています。

・ローカル端末に、MySQL8.0のDBを構築済みです。

構築DBの情報は以下です。

主キーありのテーブルと主キーなしのテーブルを検証用DB「migration_test_db」に作成し、ダミーデータを持たせています。

①MySQL HeatWave Migration Assistantインストール

以下URLから、「MySQL Workbench 8.0.45」をダウンロードします。

インストールしたい端末のOSにあわせたインストーラーを選択してダウンロードします。

https://dev.mysql.com/downloads/workbench/

使用する「MySQL HeatWave Migration Assistant」は、「MySQL Workbench 8.0.45」の機能の一つです。

今回はmacOSを選択しました。Windows OSにも対応しています。

インストーラーをダウンロード後、インストールを実施しました。

アプリを起動すると、以下の画面が表示されます。

これでインストールは完了です。

 

②OCI構成プロファイルの設定

「MySQL HeatWave Migration Assistant」は、OCIへの接続のため、ツールをインストールした端末のOCI構成プロファイルを使用します。

既に端末に設定済みの場合はスキップしてください。

1.APIキーの取得

既に取得済みのAPIキーがある場合は、本手順はスキップしてください。

OCIテナントへログインし、右上のユーザーアイコンをクリックします。

プロファイルが表示されるため、メールアドレスをクリックします。

「トークンおよびキー」から「APIキーの追加」を行います。

APIキーの追加画面で、「秘密キーのダウンロード」を行なってください。

APIキーの作成画面でOCI構成プロファイルの記載例も表示されるため、コピーしておくと後続手順が楽です。

2.OCI構成プロファイルの設定

ローカル端末のターミナルで以下コマンドを実行します。

mkdir -p ~/.oci
vi ~/.oci/config

以下に設定例を記載します。

「xxxxxxxxx」の箇所は、一つ前の手順で表示されたOCI構成プロファイルの記載例を参考に、環境毎に設定してください。

[DEFAULT]
user=ocid1.user.oc1..xxxxxxxxx
fingerprint=xxxxxxxxx
tenancy=ocid1.tenancy.oc1..xxxxxxxxxxx
region=ap-tokyo-1
key_file=[一つ前の手順で取得した秘密キーの配置先]

これでOCI構成プロファイルの設定は完了です。

③OCI上にコンパートメントおよび移行先VCNの作成

コンパートメントと移行先となるVCNを移行前に作成します。

「MySQL HeatWave Migration Assistant」で作成することも可能ですが、実際の移行ケースですと要件に合わせたネットワーク設定を行う必要があったり、既存VCNを使用することが多いと想定されるため、事前にVCNを作成しておきます。

1.コンパートメント作成

コンパートメントの作成画面で、検証用のコンパートメント「Migration-Assistant」を作成しています。

2.VCN作成

今回はツールの検証のため、インターネット経由で移行を行います。

VCNウィザードを起動し、接続タイプは「インターネット接続性を持つVCNの作成」を選択することで、サブネット等含めたVCNを作成します。

VCN名は「HeatWave-Migration-VCN」設定し、その他設定は特に変更しておりません。

コンパートメントは、一つ前の手順で作成したコンパートメントを指定します。

以下の画面で進捗バーが全て完了となること、右下「VCNの表示」をクリックし、作成したVCNが表示されることを確認します。

これでVCNの作成は完了です。

④MySQL HeatWave Migration Assistantでの移行実施

ここから本検証の本題になります。

「MySQL HeatWave Migration Assistant」で、移行に必要な「踏み台サーバ」「オブジェクト・ストレージ」「MySQL HeatWave」 を自動作成するため、事前作成は行なっていません。

1.MySQL HeatWave Migration Assistantを起動

最初の手順で設定した「MySQL Workbench」を起動し、画面下の 以下アイコン(緑の→雲)をクリックします。

※MySQL Connectionsに移行元サーバが表示されていない場合、「+」アイコンをクリックし、移行元サーバへの接続情報を設定してください。

起動すると、以下画面が表示されます。

移行元DBのパスワードを入力しOKをクリックします。

2.Migration Plan設定

以下の画面が開きます。

・OCI Configuration Profileには、「2.OCI構成プロファイルの設定」で設定した、プロファイル名を指定してください。

・OCI Compartment:「③OCI上にコンパートメントおよび移行先VCNの作成」で作成したコンパートメントを選択します。

・OCI Network:Use Existingを選択します。

※ここで作成したコンパートメントが指定できない場合、OCI構成プロファイルやユーザ権限に問題がないか等を確認してください。

・Network Compartment:「③OCI上にコンパートメントおよび移行先VCNの作成」で作成したコンパートメントを選択します。

・Virtual Cloud Network:「③OCI上にコンパートメントおよび移行先VCNの作成」で作成したVCNを選択します。

・Private Subnet:「③OCI上にコンパートメントおよび移行先VCNの作成」で作成したプライベート・サブネットを選択します。

・Public Subnet:「③OCI上にコンパートメントおよび移行先VCNの作成」で作成したパブリック・サブネットを選択します。

・Configuration Template:検証のため、小さいサイズを選択します。

・Disk Size:50GB

・Setup Type :Standalone

・HeatWave Shape:HeatWave.32GB

・HeatWave Nodes:1

・Display Name:移行先HeatWaveの名前を任意で設定してください。

・Contact Emails(optional):デフォルトで入力されますがオプションのため、任意で設定します。

・MySQL Admin Username:移行先HeatWaveの管理ユーザー名にしたい値を入力してください。

・Password:移行先HeatWaveの管理ユーザーパスワードにしたい値を入力してください。

右下のNextをクリックします。

3.Migration Type設定

Cold MigrationとHot Migrationのどちらかを選択します。

Hot Migrationの場合は継続的な移行を行うことができますが、移行先DBから移行元DBへの通信要件もあり、今回の検証だとローカル端末の制約があるため、Cold Migrationを使用します。

また、Hot Migrationの場合は、移行元DBのパスワードの要件もあるため注意が必要です。

4.Schema Compatibility Check

移行元DBのスキーマに問題がないかチェックが行われます。

以下の画面にもあるように、ERRORが表示された場合は、メッセージを確認して移行を継続可能か確認します。

上記は、今回のツールの検証には問題がないことを確認したため、継続します。

右下Nextをクリックします。

5.Preview Migration Planの確認

ここまでで設定した内容のプレビューが表示されます。

・DB System:移行先DBの情報が表示されます。

・Compute Instance(jump host):移行に使用するJumpサーバの情報が表示されます。

・Object Storage :移行に使用するオブジェクト・ストレージの情報が表示されます。

実行することで、3点のリソースが自動作成され、DBの移行が実行されます。

6.移行の実施

右下のStart Migration Processをクリックし、必要リソースの作成や移行が開始されます。

進捗バーが表示され、必要リソースの作成が進んでいることが確認できます。

完了後、以下の画面に「Congratulations!」と表示されることを確認します。

これで移行が完了しました!

 

移行先MySQL HeatWaveのプライベートIPアドレス、Jumpサーバへの接続コマンド、JumpサーバからMySQL HeatWaveへの接続コマンドが表示されます。

また、移行のため作成したJumpサーバやオブジェクトストレージは画面左下の「◻︎Delete jump host」「◻︎Delete bucket with exported data」にチェックをつけ、「Delete Selected OCI Resources」をクリックすることで削除ができます。

不要な場合は削除してください。

⑤移行結果の確認

移行先のOCIテナントにログインし、リソースを確認していきます。

1.インスタンス

Jumpサーバが「mysql-jump-host」という名前で作成されています。

2.オブジェクト・ストレージ

バケットも作成されています。

バケット内のオブジェクトも作成されており、移行に使用するデータが一時的配置されたことがわかります。

3.MySQL HeatWave

DBシステムを確認し、移行先のMySQL HeatWaveが作成されていることを確認できました。

この時、データベースのバージョンは移行元と同じバージョンとなっています。

移行先のMySQL HeatWaveに接続し、移行元と同じテーブル等が作成されていることを確認します。(MySQL HeatWaveへの接続手順は本題ではないため省略します。)

・Databaseの確認

以下コマンドを実行し、Databaseを一覧表示

SHOW DATABASES;

移行元の「migration_test_db」が作成されていることが確認できました。

・Tableの確認

以下コマンドを実行します。

USE migration_test_db;

SHOW TABLES;

移行元の「logs_no_pk 」「products」が作成されていることが確認できました。

続けて、以下コマンドを実行します。

SELECT * FROM products;

SELECT * FROM logs_no_pk;

テーブルにデータも移行されていることが確認できました。

続けて、以下コマンドを実行します。

DESCRIBE products;

DESCRIBE logs_no_pk;

スキーマも移行できていることが確認できました。

主キーなしだったテーブルにも自動的に主キーが登録されています。

⑥DBバージョンのアップグレード

移行したMySQL HeatWaveのバージョンは「8.0.44」とEOLまでの数ヶ月なため、バージョン「8.4.7」にアップグレードします。

移行したMySQL HeatWaveの詳細画面で「データベースのバージョン」の右側「編集」をクリックします。

「データベース・バージョンの編集」画面が開くため、アップグレードしたい「8.4.7」を選択し、右下「更新」をクリックします。

20〜30分程度待ち、状態が「アクティブ」に変わるまで待ちます。

状態が「アクティブ」となり、データベースのバージョンが「8.4.7」にアップグレードされたことが確認できました!

これで、移行とアップグレードまで完了です。

まとめ

「MySQL HeatWave Migration Assistant」を使用し、GUIでの操作によるオンプレミスからOCIへのDB移行が可能であることが確認できました。

ツールの強みとして、 移行に必要なOCI上のリソース(バケットやJumpサーバなど)を自動作成してくれるため、インフラ準備の工数削減が可能です。

また、「主キー」がないテーブルでも、移行時に自動付与してくれるため、移行のために移行元DBの修正をする工数も削減できます。

GUI形式で操作が容易で、必要な手順のステップや進捗が把握できるところもあり、使用しやすいツールだと感じました。

OCIへ移行後はOCIコンソールからバージョンアップが可能です。

EOLを迎えるオンプレミスサーバーがある場合、いきなり本番機を更新するのではなく、まずはOCIへ移行してアップグレード検証を行うような使い方も可能です。

 

OCIへの移行、およびEOL対応のアップグレード検証をご検討の際は、ぜひご相談いただければと存じます!