移行ガイド: Oracle から Azure SQL Managed Instance

適用対象: Azure SQL Managed Instance

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

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

前提条件

Oracle スキーマの SQL Managed Instance への移行を始める前に:

移行前

前提条件を満たしたら、環境のトポロジを検出し、移行の実現可能性を評価する準備が整いました。 プロセスのこの部分では、移行する必要があるデータベースのインベントリを実行し、移行に関する潜在的な問題や障害の有無についてそれらのデータベースを評価し、発見していなかったおそれがあるすべての項目を解決します。

アクセス

SSMA for Oracle を使用すると、データベース オブジェクトとデータを確認し、移行についてデータベース オブジェクトを評価し、SQL Managed Instance にデータベース オブジェクトを移行して、最後にそのデータベースにデータを移行することができます。

評価を作成するには:

  1. SSMA for Oracle を開きます。

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

  3. プロジェクト名と、プロジェクトを保存する場所を入力します。 次に、ドロップダウンリストから移行ターゲットとして [Azure SQL Managed Instance] を選択し、 [OK] を選択します。

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

  4. [Oracle への接続] を選択します。 [Oracle への接続] ダイアログ ボックスで、Oracle への接続に関する詳細な値を入力します。

    [Oracle への接続] を示すスクリーンショット。

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

    Oracle スキーマの選択を示すスクリーンショット。

  6. [Oracle Metadata Explorer](Oracle メタデータ エクスプローラー) で、移行する Oracle スキーマを右クリックし、 [レポートの作成] を選択して HTML レポートを生成します。 代わりに、データベースを選択し、 [レポートの作成] タブを選択してもかまいません。

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

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

    例については、「 drive:\<username>\Documents\SSMAProjects\MyOracleMigration\report\report_2020_11_12T02_47_55\」を参照してください。

    評価レポートを示すスクリーンショット。

データ型を検証する

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

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

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

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

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

スキーマの変換

スキーマを変換するには、次のようにします。

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

  2. [Azure SQL Managed Instance への接続] タブを選択します。

    1. SQL Database Managed Instance でデータベースに接続するための接続の詳細を入力します。
    2. ドロップダウン リストから自分のターゲット データベースを選択するか、新しい名前を入力します。これにより、データベースはターゲット サーバー上に作成されます。
    3. 認証の詳細を入力し、 [接続] を選択します。

    [Azure SQL Managed Instance への接続] への接続を示すスクリーンショット。

  3. [Oracle Metadata Explorer](Oracle メタデータ エクスプローラー) で Oracle スキーマを右クリックし、 [Convert Schema](スキーマの変換) を選択します。 または、スキーマを選択してから、 [Convert Schema](スキーマの変換) タブを選択します。

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

  4. 変換が終了した後、変換されたオブジェクトと元のオブジェクトを比較および確認して、潜在的な問題を特定し、推奨事項に基づいてそれらに対処します。

    テーブルの推奨事項の比較を示すスクリーンショット。

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

    プロシージャの推奨事項の比較を示すスクリーンショット。

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

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

移行

データベースの評価と不整合への対処が完了したら、次の手順は移行プロセスの実行です。 移行には、スキーマの発行とデータの移行という 2 つのステップが含まれます。

スキーマを発行し、データを移行するには:

  1. [Azure SQL Managed Instance Metadata Explorer](Azure SQL Managed Instance メタデータ エクスプローラー)[データベース] ノードでデータベースを右クリックし、 [Synchronize with Database](データベースと同期) を選択して、スキーマを発行します。

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

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

    [Synchronize with the Database]\(データベースとの同期\) のレビューを示すスクリーンショット。

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

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

  4. Oracle と SQL Managed Instance 両方の接続の詳細を入力します。

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

    [Data Migration Report]\(データ移行レポート\) を示すスクリーンショット。

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

    SSMA for Oracle での検証を示すスクリーンショット。

または、SQL Server Integration Services を使用して移行を実行することもできます。 詳細については、次を参照してください。

移行後

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

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

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

Data Access Migration Toolkit は、Java ソース コードを分析し、データ アクセス API の呼び出しとクエリを検出できるようにする Visual Studio Code の拡張機能です。 このツールキットを使用すると、新しいデータベース バックエンドをサポートするために対処する必要があることが、単一ペインのビューに表示されます。 詳細については、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 ファイルが生成されます。 source.csv は、既存の Oracle インスタンスのインベントリに基づいて、顧客によって提供されます。 出力ファイルは、AssessmentReportGeneration_source_1.xml、ServersConnectionFile.xml、および VariableValueFile.xml です。
Oracle から SQL MI - データベース比較ユーティリティ SSMA for Oracle Tester は、データベース オブジェクトの変換とデータ移行を自動的に検証するために推奨されるツールであり、データベース比較機能のスーパーセットです。

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

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

次のステップ