第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への更新は移行先へ反映されないため、業務システムを停止して実施する必要があります)
<移行元データベースでダンプファイルを出力> $ 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のレプリケーション機能により反映されるため、業務システムの停止時間を短縮できます)
<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のネイティブツールでないことから制限事項が多く注意が必要です)
<Azureマニュアル引用>
・DMSを使用してMySQLをAzure Database for MySQLにオフラインで移行する
※Azure Database Migration Serviceは、Azure RDS側からオンプレミスMySQLに対しても通信を行う必要があります。
オンプレミス側のグローバルIPの開放に対してセキュアな実装が求められるため、多少ハードルが高い印象があります。
5.おわりに
今回のブログでは、データ移行方式の概要を簡単にご紹介しました。
今後は各移行方式の詳細もご紹介できればと思います。
当社の技術共有が、少しでも作業の手助けになれば幸いです。
最後までお読みいただき、ありがとうございました。