第29回:オンプレミスMySQLからAzure Database for MySQLへのデータ移行

技術者向け・データベースの技術情報発信

オンプレミスMySQLからAzure for MySQLへの移行方式は、いくつか種類があります。
今回は各データ移行方式の特徴と用途を整理してご紹介したいと思います。

1.データ移行方式

Azure Database for MySQLへのデータ移行方式として、今回は用途に応じて以下の3パターンをご紹介します。

方式 用途 移行時間 難易度
mysqldump/mysqlツールの利用 DBが同一構成でデータ量が少なく、簡単にデータ移行を行いたい場合
MySQLレプリケーション機能の併用 DBが同一構成でデータ量が多く、移行時間の短縮が必要となる場合
Azure Database Migration Serviceの利用 データ量が多く、カラムマッピング変更、バージョン差異がある場合

※いずれの方式についても、オンプレミスMySQLからAzure Database for MySQLへのネットワーク疎通設定が必要になります。

2.mysqldump/mysqlツールの利用

mysqldumpにてDBオブジェクト定義/データをSQLテキストとしてエクスポートし、mysqlコマンドを用いて移行先でインポートする移行方式となります。
(mysqldump/mysqlツール実行中のソースDBへの更新は移行先へ反映されないため、業務システムを停止して実施する必要があります)

dbexpt29_01.png

<移行元データベースでダンプファイルを出力>
$ mysqldump -h host_name -u user_name -p db_name > from_db.dmp
<移行先データベースへインポート>
$ mysql -h host_name -u user_name -p db_name < from_db.dmp

※データベースのバージョンに対応したmysqldump/mysqlツールを利用してください。

3.MySQLレプリケーション機能の併用

mysqldump/mysqlツールによるエクスポート/インポートに加え、MySQLレプリケーション機能を併用して最小限のシステム停止時間でデータ移行を実現します。
(mysqldump/mysqlツール実行中のソースDBへの更新はMySQLのレプリケーション機能により反映されるため、業務システムの停止時間を短縮できます)

dbexpt29_02.png

<Microsoftマニュアル引用>
オンプレミスのMySQLをAzure Database for MySQLに移行する:移行方法
データをAzure Database for MySQLにレプリケートする

※MySQLレプリケーションはAzure RDS側からオンプレミスMySQLに対しても通信を行う必要があります。
オンプレミス側のグローバルIPの開放に対してセキュアな実装が求められるため、多少ハードルが高い印象があります。

4.Azure Database Migration Serviceの利用

Azure Database Migration Serviceを利用して、最小限のシステム停止時間で柔軟なデータ移行を実現します。
(Webコンソールより、移行プロジェクトの設定から対象テーブル設定が可能ですが、MySQLのネイティブツールでないことから制限事項が多く注意が必要です)

dbexpt29_03.png

<Azureマニュアル引用>
DMSを使用してMySQLをAzure Database for MySQLにオフラインで移行する

※Azure Database Migration Serviceは、Azure RDS側からオンプレミスMySQLに対しても通信を行う必要があります。
オンプレミス側のグローバルIPの開放に対してセキュアな実装が求められるため、多少ハードルが高い印象があります。

5.おわりに

今回のブログでは、データ移行方式の概要を簡単にご紹介しました。
今後は各移行方式の詳細もご紹介できればと思います。

当社の技術共有が、少しでも作業の手助けになれば幸いです。
最後までお読みいただき、ありがとうございました。