0Pricing
Cloud & IT Cert Prep · レッスン

Azure へのデータベース移行

Azure Database Migration Service を使用したデータベース移行を計画・実行し、クラウド移行中のダウンタイムを最小限に抑える一般的な戦略を確認します。

「Azure へのデータベース移行」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。

データベースを Azure に移行する理由

オンプレミスから Azure にデータベースを移行すると、運用負担の軽減(ハードウェア管理が不要)、組み込みの高可用性とバックアップ、および必要に応じてコンピューティングとストレージを柔軟にスケーリングできるというメリットが得られます。また、クラウドファーストの方針への対応、老朽化したデータセンターのハードウェアの廃止、geo レプリケーションやインテリジェントなクエリチューニングなどの高度な機能の活用を目的に移行する組織もあります。

移行戦略の概要

データベースの移行は通常、大きく 2 つの戦略のいずれかに従います。オフライン移行では、ソースデータベースをオフラインにし、データをターゲットにコピーしてから、アプリケーションを新しいエンドポイントに切り替えます。単純な方法ですが、メンテナンス時間が必要です。オンライン移行では、継続的なデータレプリケーションを使用して、ソースが稼働している間もターゲットを同期させます。その後、数秒から数分程度の最小限のダウンタイムで切り替えます。

Azure Database Migration Service

Azure Database Migration Service (DMS) は、SQL Server、MySQL、PostgreSQL、MongoDB、Oracle など、さまざまなソースから対応する Azure マネージドターゲットへデータベースを移行する、完全マネージド型のツールです。DMS はスキーマ変換、データ移動、レプリケーションを処理し、移行の状態とエラーを 1 つのダッシュボードで報告します。

# Create a DMS instance
az dms create \
  --location eastus \
  --name myDMSinstance \
  --resource-group myRG \
  --sku-name Standard_1vCores \
  --subnet /subscriptions/<sub-id>/resourceGroups/myRG/providers/Microsoft.Network/virtualNetworks/myVNet/subnets/mySubnet

移行前の評価

移行する前に、移行前の評価を実行して、ソースデータベースとターゲット Azure サービス間の互換性の問題を特定します。Azure Data Studio のDatabase Migration Assessment for SQL Server拡張機能は、ストアドプロシージャ、トリガー、クエリをスキャンし、Azure SQL Database または SQL Managed Instance でサポートされていない機能を検出します。これにより、切り替え前に修正すべき項目を優先順位付きで確認できます。

SQL Server から Azure SQL Database への移行

SQL Server をAzure SQL Database(単一データベース)に移行する方法は、単一のデータベースを使用し、インスタンスレベルの機能(SQL Agent やデータベース間クエリなど)を必要としないアプリケーションに適しています。評価でインスタンスレベルの依存関係が見つかった場合は、Azure SQL Managed Instanceが適しています。これは SQL Server エンジンを PaaS コンテナーにほぼ 100% の互換性で移行するもので、SQL Agent ジョブ、リンクサーバー、CLR オブジェクトを維持できます。

ログ再生によるオンライン移行

Azure DMS は、SQL Server から Azure SQL Managed Instance へのオンライン移行にLog Replay Service (LRS)を使用します。LRS は Azure Blob Storage コンテナーからトランザクションログのバックアップを継続的に読み取り、ターゲットの Managed Instance で再生することで、ソースとの同期を維持します。最終的な切り替えは手動で開始し、数秒以内に完了するため、メンテナンス時間をほぼゼロに抑えられます。

PostgreSQL から Azure Database for PostgreSQL への移行

PostgreSQL データベースを Azure に移行する場合、DMS はオフライン(pg_dump/pg_restore)と論理レプリケーションによるオンライン移行の両方をサポートしています。ソース PostgreSQL サーバーでは論理レプリケーション(wal_level = logical)を有効にし、移行ユーザーにレプリケーション権限を付与する必要があります。DMS は、スキーマの移行、初回の全件ロード、最終的な切り替えまでの変更データキャプチャを処理します。

# Enable logical replication on source PostgreSQL
# In postgresql.conf:
wal_level = logical
max_replication_slots = 5
max_wal_senders = 5

MySQL から Azure Database for MySQL への移行

DMS は、MySQL のバイナリログを使用した継続的なレプリケーションにより、MySQL データベースを Azure Database for MySQL Flexible Server に移行します。ソース MySQL インスタンスでは、binlog_format = ROWを設定し、バイナリログを有効にする必要があります。Azure portal の移行ウィザードでは、ソースとターゲットへの接続、データベースの選択、切り替え前の移行の進行状況と遅延の監視を順に行えます。

# Verify binary logging on source MySQL server
SHOW VARIABLES LIKE 'log_bin';
SHOW VARIABLES LIKE 'binlog_format';

切り替え時のダウンタイムを最小限に抑える

ダウンタイムを抑えて移行する鍵は、まず初回の一括ロードを十分前もって完了し、その後、レプリケーション遅延がほぼゼロになるまで変更データキャプチャを実行することです。その時点で、ソースへの書き込みを停止し、最後の変更がターゲットに反映されるのを待ってから、アプリケーションの接続文字列を更新し、新しいターゲットへの書き込みを開始します。DNS TTL の慎重な管理とブルーグリーン切り替えにより、影響をさらに抑えられます。

移行後の検証

切り替え後は、ソースとターゲットのテーブル間で行数を比較し、主要なアプリケーションクエリを実行してデータが正しいことを確認します。また、すべてのストアドプロシージャ、ビュー、関数が期待どおりの結果を返すことを確認します。実行プランを比較して、ターゲットでクエリパフォーマンスの低下が起きていないか監視し、最初から最適なパフォーマンスを得られるよう、ターゲット上で統計情報を更新し、インデックスを再構築します。

-- Compare row counts across all tables
SELECT TABLE_NAME, TABLE_ROWS
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'myDatabase'
ORDER BY TABLE_NAME;

Azure Migrate を使用したデータベース検出

Azure Migrate は、サーバー評価機能に加えて、データベースの検出および評価機能を提供します。Azure Migrate アプライアンスはオンプレミス環境をスキャンし、SQL Server インスタンスを一覧化するとともに、Azure 相当のサイズとコストを見積もり、互換性の問題を検出します。そのため、実際の移行を DMS で実行する前の論理的な出発点となります。

理解度チェック

このレッスンで扱った Microsoft Azure Fundamentals (AZ-900) の概念について、理解度を確認します。

レッスンのまとめ

このレッスンでは、Azure Database Migration Service が多くのソースエンジンからの移行をオーケストレーションすること、オンライン移行では変更データキャプチャを使用して切り替え時のダウンタイムを最小限に抑えること、そして移行前の評価によって、移行を開始する前に互換性の問題を特定できることを学びました。次は、Azure Identity と Microsoft Entra ID について学びます。

よくある質問

「Azure へのデータベース移行」レッスンは無料ですか?

はい。「Azure へのデータベース移行」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。

「Azure へのデータベース移行」で何を学びますか?

Azure Database Migration Service を使用したデータベース移行を計画・実行し、クラウド移行中のダウンタイムを最小限に抑える一般的な戦略を確認します。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Cloud & IT Cert Prepを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「Azure へのデータベース移行」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?

はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Azure SQL Database
  2. Azure Cosmos DB:グローバル NoSQL
  3. Azure Database for Open-Source Engines
  4. Azure へのデータベース移行
← Cloud & IT Cert Prepに戻る