移行ガイド: Oracle から Azure Virtual Machines 上の SQL Serverへ

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

このガイドでは、SQL Server Migration Assistant for Oracle を使用して、Oracle スキーマを Azure Virtual Machines 上の SQL Server に移行する方法について説明します。

その他の移行ガイドについては、データベースの移行に関するページを参照してください。

前提条件

Oracle スキーマを Azure Virtual Machines 上の SQL Server に移行するには、以下が必要です。

移行前

クラウドへの移行を準備するために、ソース環境がサポートされていること、および前提条件を満たしていることを確認します。 そうすることで、確実に効率よく移行を成功させるのに役立ちます。

このプロセスの一部として、以下が含まれます。

  • 移行する必要があるデータベースのインベントリを実行する。
  • それらのデータベースに、潜在的な移行の問題や阻害要因がないか評価する。
  • 発見した問題を解決する。

発見

MAP Toolkit を使用して、既存のデータ ソースと、業務で使用している機能の詳細を特定します。 これを行うことで、移行についての理解が深まり、その計画に役立ちます。 このプロセスには、ネットワークをスキャンして、組織の Oracle インスタンスと使用しているバージョンおよび機能を特定することが含まれます。

MAP Toolkit を使用してインベントリ スキャンを実行するには、こちらの手順に従います。

  1. MAP Toolkit を開きます。

  2. [Create/Select database] (データベースの作成/選択) を選択します。

    [Create/Select database]\(データベースの作成/選択\) オプションを示すスクリーンショット。

  3. [インベントリ データベースの作成] を選択します。 新しいインベントリ データベースの名前と簡単な説明を入力し、 [OK] を選択します。

    インベントリ データベースを作成するためのインターフェイスを示すスクリーンショット。

  4. [インベントリ データの収集] を選択して、インベントリと評価ウィザードを開きます。

    [インベントリ データの収集] リンクを示すスクリーンショット。

  5. インベントリと評価ウィザードで、 [Oracle] を選択し、 [次へ] を選択します。

    インベントリと評価ウィザードの [Inventory Scenarios]\(インベントリ シナリオ\) ページを示すスクリーンショット。

  6. ビジネス ニーズおよびご使用の環境に最も適したコンピューター検索オプションを選択し、 [次へ] を選択します。

    インベントリと評価ウィザードの [Discovery Methods]\(探索方法\) ページを示すスクリーンショット。

  7. 探索するシステムの資格情報を入力するか、新しい資格情報を作成し、 [次へ] を選択します。

    インベントリと評価ウィザードの [All Computers Credentials]\(すべてのコンピューターの資格情報\) ページを示すスクリーンショット。

  8. 資格情報の順序を設定し、 [次へ] を選択します。

    インベントリと評価ウィザードの [Credentials Order]\(資格情報の順序\) ページを示すスクリーンショット。

  9. 検出する各コンピューターの資格情報を入力します。 コンピューターまたはマシンごとに固有の資格情報を使用するか、[All Computers credentials](すべてのコンピューターの資格情報) の一覧を使用できます。

    インベントリと評価ウィザードの [Specify Computers and Credentials]\(コンピューターと資格情報の指定\) ページを示すスクリーンショット。

  10. 選択内容を確認し、 [完了] を選択します。

    インベントリと評価ウィザードの [概要] ページを示すスクリーンショット。

  11. スキャンが完了したら、 [データ収集] の概要を確認します。 スキャンには数分かかる場合がありますが、時間はデータベースの数によって異なります。 完了したら [閉じる] を選択します。

    [データ収集] の概要を示すスクリーンショット。

  12. [オプション] を選択して、Oracle の評価とデータベースの詳細に関するレポートを生成します。 両方のオプションを、一度に 1 つずつ選択してレポートを生成します。

アクセス

データ ソースを特定したら、SQL Server Migration Assistant for Oracle を使用して、SQL Server VM に移行する Oracle インスタンスを評価します。 このアシスタントの支援により、移行元データベースと移行先データベース間の違いを理解できます。 データベース オブジェクトとデータを確認して、移行についてデータベースを評価し、データベース オブジェクトを SQL Server に移行してから、データを SQL Server に移行できます。

評価を作成するには、次の手順を行います。

  1. SQL Server Migration Assistant for Oracle を開きます。

  2. [ファイル] メニューの [新しいプロジェクト] を選択します。

  3. プロジェクト名とプロジェクトの場所を指定し、一覧から SQL Server 移行ターゲットを選択します。 [OK] を選択します。

    [新しいプロジェクト] ダイアログ ボックスを示すスクリーンショット。

  4. [Oracle への接続] を選択します。 [Oracle への接続] ダイアログ ボックスで、Oracle 接続のための値を入力します。

    [Oracle への接続] ダイアログ ボックスを示すスクリーンショット。

    移行する Oracle スキーマを選択します。

    移行可能な Oracle スキーマの一覧を示すスクリーンショット。

  5. [Oracle メタデータ エクスプローラー] で、移行する Oracle スキーマを右クリックし、 [レポートの作成] を選択します。 これにより、HTML レポートが生成されます。 または、データベースを選択し、上部のメニューで [レポートの作成] を選択することもできます。

    レポートの作成方法を示すスクリーンショット。

  6. HTML レポートで、変換の統計情報、エラー、警告を確認します。 これを分析して、変換の問題点と解決策を把握します。

    また、Excel でレポートを開き、Oracle オブジェクトのインベントリと、スキーマ変換の実行に必要な作業量を確認することもできます。 このレポートの既定の場所は、SSMAProjects 内のレポート フォルダーです。

    例: drive:\<username>\Documents\SSMAProjects\MyOracleMigration\report\report_2016_11_12T02_47_55\

    変換レポートを示すスクリーンショット。

データ型を検証する

既定のデータ型マッピングを検証し、必要に応じて、要件に基づき変更します。 これを行うには、次のステップに従います。

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

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

    [Type Mapping]\(型のマッピング\) タブを示すスクリーンショット。

  3. [Oracle メタデータ エクスプローラー] でテーブルを選択することにより、テーブルごとに型のマッピングを変更できます。

スキーマの変換

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

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

  2. 上部のメニューで [SQL Server への接続] を選択します。

    1. Azure VM 上の SQL Server の接続詳細を入力します。
    2. 一覧からターゲット データベースを選択するか、新しい名前を指定します。 新しい名前を指定すると、データベースがターゲット サーバーに作成されます。
    3. 認証の詳細を指定します。
    4. [接続] を選択します。

    SQL Server への接続方法を示すスクリーンショット。

  3. [Oracle メタデータ エクスプローラー] で Oracle スキーマを右クリックし、 [スキーマの変換] を選択します。 または、上部のメニューで [スキーマの変換] を選択することもできます。

    スキーマの変換方法を示すスクリーンショット。

  4. スキーマ変換が完了したら、変換されたオブジェクトを確認し、それらを元のオブジェクトと比較して潜在的n問題がないか判別します。 推奨事項を使用して、問題を解決します。

    2 つのスキーマの比較を示すスクリーンショット。

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

    Transact-SQL、ストアド プロシージャ、警告を示すスクリーンショット。

    オフライン スキーマ修復の演習のために、プロジェクトをローカルに保存することができます。 これを行うには、 [ファイル] メニューの [プロジェクトの保存] を選択します。 プロジェクトをローカルに保存することで、スキーマを SQL Server に発行する前に、ソースとターゲットのスキーマをオフラインで評価し、修復を実行できます。

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

  6. オフライン スキーマ修復の演習のために、プロジェクトをローカルに保存します。 [ファイル] メニューの [プロジェクトの保存] を選択します。 これにより、スキーマを Azure Virtual Machines 上の SQL Server に発行する前に、ソースとターゲットのスキーマをオフラインで評価し、修復を実行できます。

Migrate

必要な前提条件を満たし、移行前の段階に関連するタスクを完了したら、スキーマとデータの移行を開始する準備が整ったことになります。 移行には、スキーマの発行とデータの移行という 2 つのステップが含まれます。

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

  1. スキーマを発行する: [SQL Server メタデータ エクスプローラー] でデータベースを右クリックし、 [データベースとの同期] を選択します。 これにより、Oracle スキーマが Azure Virtual Machines 上の SQL Server に発行されます。

    [データベースとの同期] コマンドを示すスクリーンショット。

    自分のソース プロジェクトと自分のターゲット間のマッピングを確認します。

    同期の状態を示すスクリーンショット。

  2. データを移行する: [Oracle メタデータ エクスプローラー] で、移行するデータベースまたはオブジェクトを右クリックし、 [データの移行] を選択します。 または、 [データの移行] タブを選択することもできます。データベース全体のデータを移行するには、データベース名の横にあるチェック ボックスをオンにします。 個々のテーブルからデータを移行するには、データベース、 [テーブル] の順に展開してから、テーブルの横にあるチェック ボックスをオンにします。 個々のテーブルのデータを除外するには、チェック ボックスをオフにします。

    [データの移行] コマンドを示すスクリーンショット。

  3. ダイアログ ボックスで Oracle と Azure Virtual Machines 上の SQL Server の接続詳細を指定します。

  4. 移行が終了した後、 [データ移行レポート] を確認します。

    [データ移行レポート] を示すスクリーンショット。

  5. SQL Server Management Studio を使用して、Azure Virtual Machines インスタンス上の SQL Server に接続します。 データとスキーマを確認して移行を検証します。

    SSMA での SQL Server インスタンスを示すスクリーンショット。

SSMA を使用する代わりに、SQL Server Integration Services (SSIS) を使用してデータを移行することもできます。 詳細については、次を参照してください。

移行後

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

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

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

Data Access Migration Toolkit は、Visual Studio Code の拡張機能です。 これを使用すると、Java ソース コードを分析し、データ アクセス API の呼び出しとクエリを検出できます。 このツールキットでは、新しいデータベース バックエンドをサポートするために対処する必要があることが、単一ペインのビューに表示されます。 詳細については、Oracle からの Java アプリケーションの移行に関するページを参照してください。

テストを実行する

データベースの移行をテストするには、こちらのアクティビティを実行します。

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

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

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

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

移行されたオブジェクトを検証する

Microsoft SQL Server Migration Assistant for Oracle Tester (SSMA Tester) を使用すると、移行されたデータベース オブジェクトをテストできます。 SSMA Tester は、変換されたオブジェクトが同じように動作することを検証するために使用されます。

テスト ケースの作成

  1. SSMA for Oracle を開き、 [Tester](テスター)[新しいテスト ケース] の順に選択します。

    新しいテスト ケースを示すスクリーンショット。

  2. テスト ケース ウィザードで、次の情報を指定します。

    [名前] : テスト ケースを識別する名前を入力します。

    [作成日] : 今日の日付が自動的に定義されます。

    [最終更新日] : 自動的に入力され、変更することはできません。

    [説明] : テスト ケースの目的を示すための任意の追加情報を入力します。

    テスト ケースの初期化手順を示すスクリーンショット。

  3. 左側にある Oracle のオブジェクト ツリーから、テスト ケースの一部であるオブジェクトを選択します。

    オブジェクトを選択して構成するステップを示すスクリーンショット。

    この例では、ストアド プロシージャ ADD_REGION とテーブル REGION が選択されています。

    詳細については、「テストするオブジェクトの選択と構成」を参照してください。

  4. 次に、左側のウィンドウの Oracle のオブジェクト ツリーから、テーブル、外部キー、その他の依存オブジェクトを選択します。

    影響を受けるオブジェクトを選択して構成する手順を示すスクリーンショット。

    詳細については、影響を受けるオブジェクトの選択と構成に関するページを参照してください。

  5. オブジェクトの評価シーケンスを確認します。 順序を変更するには、グリッド内のボタンを選択します。

    テスト オブジェクトの実行シーケンスを指定するステップを示すスクリーンショット。

  6. 前の手順で指定した情報を確認して、テスト ケースを最終処理します。 テスト シナリオに基づいて、テストの実行オプションを構成します。

    オブジェクトを最終処理するステップを示すスクリーンショット。

    テスト ケースの設定の詳細については、テスト ケースの準備の終了に関するページを参照してください

  7. [完了] を選択して、テスト ケースを作成します。

    リポジトリをテストする手順を示すスクリーンショット。

テスト ケースを実行する

SSMA Tester でテスト ケースが実行されると、テスト対象に選択したオブジェクトがテスト エンジンによって実行され、検証レポートが生成されます。

  1. テスト リポジトリからテスト ケースを選択し、[実行] を選択します。

    テスト リポジトリの確認を示すスクリーンショット。

  2. 起動テスト ケースを確認し、[実行] を選択します。

    テスト ケースを起動するステップを示すスクリーンショット。

  3. 次に、Oracle ソースの資格情報を指定します。 資格情報を入力した後、[接続] を選択します。

    Oracle ソースに接続するステップを示すスクリーンショット。

  4. 対象の SQL Server の資格情報を入力し、[接続] を選択します。

    SQL ターゲットに接続するステップを示すスクリーンショット。

    成功すると、テスト ケースは初期化ステージに移行します。

  5. リアルタイムの進行状況バーに、テスト実行の実行状態が示されます。

    テスターのテストの進行状況を示すスクリーンショット。

  6. テストの完了後にレポートを確認します。 レポートには、統計、テストの実行中に発生したエラー、詳細レポートが表示されます。

    サンプル テスターのテスト レポートを示すスクリーンショット

  7. [詳細] を選択すると、詳細情報が表示されます。

    合格したデータ検証の例。

    サンプル テスターの合格レポートを示すスクリーンショット。

    失敗したデータ検証の例。

    テスターの不合格レポートを示すスクリーンショット。

最適化

移行後フェーズは、データの精度の問題を調整するため、および完全性を検証するために重要です。 また、ワークロードのパフォーマンスの問題に対処するうえでも重要です。

Note

これらの問題について、およびそれらを軽減するための特定の手順について詳しくは、移行後の検証および最適化ガイドに関するページを参照してください。

移行リソース

この移行シナリオを完了するための追加の支援については、次のリソースを参照してださい。これらは、実際の移行プロジェクトをサポートするために開発されました。

タイトル/リンク 説明
データ ワークロード評価モデルとツール このツールにより、特定のワークロードに対して、推奨される最適なターゲット プラットフォーム、クラウドの準備状況、アプリケーションとデータベースの修復レベルが提示されます。 シンプルなワンクリックの計算とレポート生成の機能があり、自動化された均一なターゲット プラットフォームの決定プロセスが用意されているため、大規模な資産評価を素早く行うことができます。
Oracle インベントリ スクリプト成果物 この資産には、Oracle システム テーブルをターゲットとし、スキーマの種類、オブジェクトの種類、および状態別にオブジェクトの数を提示する PL/SQL クエリが含まれます。 また、各スキーマの生データの概算値と、各スキーマ内のテーブルのサイズ設定も提示されます。結果は CSV 形式で保存されます。
SSMA Oracle 評価コレクションと統合の自動化 このリソースのセットでは、エントリとして .csv ファイル (プロジェクト フォルダー内の sources.csv) を使用して、コンソール モードで SSMA 評価を実行するために必要な XML ファイルが生成されます。 既存の Oracle インスタンスのインベントリを取得することによって、source.csv ファイルを用意します。 出力ファイルは、AssessmentReportGeneration_source_1.xml、ServersConnectionFile.xml、および VariableValueFile.xml です。
Oracle データベースの移行時の SSMA の問題と考えられる解決方法 Oracle では、WHERE 句に非スカラー条件を割り当てることができます。 SQL Server では、この種類の条件はサポートされません。 そのため、SSMA for Oracle では、WHERE 句に非スカラー条件が含まれるクエリは変換されません。 代わりに、エラー O2SS0001 が生成されます。 このホワイト ペーパーでは、この問題とその解決方法について詳しく説明しています。
Oracle から SQL Server への移行に関するハンドブック このドキュメントは、Oracle スキーマを最新バージョンの SQL Server に移行する場合に関連するタスクに焦点を当てています。 移行で機能の変更が必要になる場合、データベースを使用するアプリケーションを変更したときに発生する影響について慎重に考慮する必要があります。
Oracle から SQL Server へのデータベース比較ユーティリティ SSMA for Oracle Tester は、データベース オブジェクトの変換とデータ移行を自動的に検証するために推奨されるツールであり、データベース比較機能のスーパーセットです。

別のデータ検証オプションを探している場合は、データベース比較ユーティリティを使用して、すべてのまたは選択したテーブル、行、および列の行または列レベルまでデータを比較できます。

データ SQL エンジニアリング チームが、これらのリソースを開発しました。 このチームの主な目的は、Microsoft Azure データ プラットフォームへのデータ プラットフォーム移行プロジェクトのために、障害を取り除き、複雑な最新化を加速することです。

次のステップ