次の方法で共有


移行ガイド: MySQL から Azure SQL Database

適用対象: Azure SQL データベース

このガイドでは、SQL Server Migration Assistant for MySQL (SSMA for MySQL) を使用して、MySQL データベースを Azure SQL Database に移行する方法について説明します。

その他の移行ガイドについては、「Azure データベースの移行ガイド」を参照してください。

前提条件

MySQL データベースから SQL データベースへの移行を始める前に、次のことを行います。

  • ソース環境がサポートされていることを確認する。 現時点では、MySQL 4.1 以降がサポートされています。
  • SQL Server Migration Assistant for MySQL をダウンロードしてインストールします。
  • ソースとターゲットの両方にアクセスするための接続と十分なアクセス許可があることを確認します。

移行前

前提条件を満たしたら、環境のトポロジを検出し、Azure Cloud 移行の実現可能性を評価する準備が整いました。

アクセス

SQL Server Migration Assistant (SSMA) for MySQL を使用すると、データベース オブジェクトとデータを確認し、データベースの移行を評価できます。

評価を作成するには、以下を実行します。

  1. SSMA for MySQL を開きます。

  2. [ファイル] を選択してから、 [新しいプロジェクト] を選択します。

  3. [新しいプロジェクト] ペインで、プロジェクトの名前と場所を入力した後、 [移行先] ドロップダウン リストで [Azure SQL Database] を選択します。

  4. [OK] を選択します。

    移行プロジェクトの名前、場所、ターゲットを入力するための [新しいプロジェクト] ペインのスクリーンショット。

  5. [MySQL への接続] タブを選択し、MySQL サーバーの接続に関する詳細を指定します。

    ソースへの接続を指定するための [MySQL への接続] ペインのスクリーンショット。

  6. [MySQL Metadata Explorer](MySQL メタデータ エクスプローラー) ペインで、MySQL スキーマを右クリックして、 [Create Report](レポートの作成) を選択します。 または、右上にある [レポートの作成] タブを選択することもできます。

    SSMA for MySQL での [Create Report]\(レポートの作成\) リンクのスクリーンショット。

  7. HTML レポートをレビューして、変換の統計情報、エラー、警告を把握します。 これを分析して、変換の問題点と解決策を把握します。 また、そのレポートを Excel で開いて、MySQL オブジェクトのインベントリを取得し、スキーマの変換を実行するために必要な作業を確認することもできます。 レポートの既定の場所は、SSMAProjects 内のレポート フォルダーです。 次に例を示します。

    drive:\Users\<username>\Documents\SSMAProjects\MySQLMigration\report\report_2016_11_12T02_47_55\

    SSMA の変換レポートの例のスクリーンショット。

データ型を検証する

既定のデータ型マッピングを検証し、必要に応じて要件に基づいて変更します。 そのためには次を行います。

  1. [ツール] を選択し、 [プロジェクトの設定] を選択します。

  2. [Type Mappings](型のマッピング) タブを選択します。

    SSMA for MySQL の[Type Mapping]\(型のマッピング\) ペインのスクリーンショット。

  3. [MySQL Metadata Explorer](MySQL メタデータ エクスプローラー) ペインでテーブル名を選択すると、各テーブルの型のマッピングを変更できます。

スキーマの変換

スキーマを変換するには、次の手順を実行します。

  1. (省略可能) 動的または特殊なクエリを変換するには、ノードを右クリックし、 [ステートメントの追加] を選択します。

  2. [Connect to Azure SQL Database](Azure SQL Database への接続) タブを選択し、次の操作を行います。

    a. SQL データベースへの接続に関する詳細を入力します。
    b. ドロップダウンの一覧で、ターゲットの SQL データベースを選択します。 または、新しい名前を指定することもできます。その場合、データベースはターゲット サーバー上に作成されます。
    c. 認証の詳細を指定します。
    d. [接続] を選択します。

    SSMA for MySQL の [Connect to Azure SQL Database]\(Azure SQL Database への接続\) ペインのスクリーンショット。

  3. 処理するスキーマを右クリックして、 [スキーマの変換] を選択します。 または、右上にある [Convert schema](スキーマの変換) タブを選択することもできます。

    [MySQL Metadata Explorer]\(MySQL メタデータ エクスプローラー\) ペインの [Convert Schema]\(スキーマの変換\) コマンドのスクリーンショット。

  4. 変換が完了したら、変換されたオブジェクトを確認して元のオブジェクトを比較し、可能性のある問題を特定して、推奨事項に基づいてそれらに対処します。

    変換されたオブジェクトと元のオブジェクトの比較を示すスクリーンショット。

    変換された Transact-SQL テキストを元のコードと比較し、推奨事項を確認します。

    変換されたクエリとソース コードとの比較を示すスクリーンショット。

  5. [出力] ペインで [結果の確認] を選択し、 [エラー一覧] ペインでエラーを確認します。

  6. オフライン スキーマ修復の演習のために、プロジェクトをローカルに保存します。 それを行うには、 [ファイル]>[プロジェクトの保存] の順に選択します。 これにより、スキーマを SQL データベースに発行する前にソースとターゲットのスキーマをオフラインで評価し、修復を実行する機会が与えられます。

    次に示すように、変換されたプロシージャを元のプロシージャと比較します。

    変換されたプロシージャと元のプロシージャの比較を示すスクリーンショット。

データベースを移行する

データベースを評価して不整合に対処した後は、移行プロセスを実行できます。 移行には、スキーマの発行とデータの移行という 2 つのステップが含まれます。

スキーマを発行し、データを移行するには、次の手順を実行します。

  1. スキーマを発行します。 [Azure SQL Database メタデータ エクスプローラー] ペインで、データベースを右クリックして [データベースと同期する] を選択します。 この操作により、MySQL のスキーマがお使いの SQL データベースに発行されます。

    データベースのマッピングを確認するための [Synchronize with Database]\(データベースと同期する\) ペインのスクリーンショット。

  2. データを移行します。 [MySQL Metadata Explorer](MySQL メタデータ エクスプローラー) ペインで、移行する MySQL のスキーマを右クリックして、 [Migrate Data](データの移行) を選択します。 または、右上にある [データの移行] タブを選択することもできます。

    データベース全体のデータを移行するには、データベース名の横にあるチェック ボックスをオンにします。 個々のテーブルからデータを移行するには、データベースを展開し、 [テーブル] を展開して、テーブルの横にあるチェック ボックスをオンにします。 個々のテーブルのデータを除外するには、このチェック ボックスをオフにします。

    [MySQL Metadata Explorer]\(MySQL メタデータ エクスプローラー\) ペインの [Migrate Data]\(データの移行\) コマンドのスクリーンショット。

  3. 移行が完了したら、データ移行レポートを表示します。

    データ移行レポートのスクリーンショット。

  4. SQL Server Management Studio を使用してお使いの SQL データベースに接続し、データとスキーマを確認して移行を検証します。

    SQL Server Management Studio のスクリーンショット。

移行後

移行段階が正常に完了したら、移行後の一連のタスクを完了し、すべてが可能な限り円滑かつ効率的に機能していることを確認する必要があります。

アプリケーションを修復する

データがターゲット環境に移行された後、以前にソースを使用していたすべてのアプリケーションは、ターゲットの使用を開始する必要があります。 これを実現するには、場合によってはアプリケーションの変更が必要になります。

テストを実行する

データベース移行に対するテスト アプローチは、次のアクティビティで構成されます。

  1. 検証テストを作成する: データベース移行をテストするには、SQL クエリを使用する必要があります。 ソースとターゲットの両方のデータベースに対して実行する検証クエリを作成する必要があります。 その検証クエリでは、定義されているスコープに対応する必要があります。

  2. テスト環境を設定する: このテスト環境には、ソース データベースとターゲット データベースのコピーを含める必要があります。 必ずテスト環境を分離してください。

  3. 検証テストを実行する: ソースとターゲットに対して検証テストを実行した後、結果を分析します。

  4. パフォーマンス テストを実行する: ソースとターゲットに対してパフォーマンス テストを実行した後、結果を分析および比較します。

最適化

移行後の段階は、発生したデータの精度の問題を調整したり、完全性を検証したり、ワークロードでのパフォーマンスの問題に対処したりするために非常に重要です。

これらの問題と、それらを軽減するための具体的な手順の詳細については、「移行後の検証および最適化ガイド」を参照してください。

移行資産

この移行シナリオを完了するためのその他の支援については、次のリソースを参照してください。 これは、実世界の移行プロジェクトの取り組みをサポートするために開発されたものです。

タイトル 説明
データ ワークロード評価モデルとツール 特定のワークロードに対して、推奨される "最適な" ターゲット プラットフォーム、クラウドの準備状況、アプリケーションとデータベースの修復レベルを提供します。 シンプルなワンクリックの計算とレポート生成機能があり、自動化された均一なターゲット プラットフォームの決定プロセスが用意されているので、大規模な資産評価の促進に役立ちます。
MySQL から SQL DB - データベース比較ユーティリティ データベース比較ユーティリティは、ソースおよびターゲット プラットフォームの両方でデータが同一であることを確認するために使用できる Windows コンソール アプリケーションです。 このツールを使用すると、すべての、または選択したテーブル、行、および列内の行または列レベルまでデータを効率的に比較できます。

データ SQL エンジニアリング チームが、これらのリソースを開発しました。 このチームの主要な作業は、Microsoft の Azure データ プラットフォームへのデータ プラットフォーム移行プロジェクトの複雑な近代化を容易にし、迅速に進めることです。

次の手順