移行ガイド: Oracle から Azure SQL Database
適用対象: Azure SQL データベース
このガイドでは、SQL Server Migration Assistant for Oracle (SSMA for Oracle) を使用して、Oracle スキーマを Azure SQL Database に移行する方法について説明します。
その他の移行ガイドについては、「Azure データベースの移行ガイド」を参照してください。
重要
Oracle の場合は、Azure Data Studio で新しい Database Migration Assessment for Oracle 拡張機能を試して、SQL の事前評価とワークロードの分類を行います。 SQL の移行を行う Oracle の初期段階で、Oracle ワークロードに対する Azure SQL ターゲットのサイズ設定に関心がある、または機能移行パリティを理解するために、高レベルのワークロード評価を行う必要がある場合は、新しい拡張機能を試してください。 コードの評価と変換の詳細については、SSMA for Oracle に進んでください。
前提条件
Oracle スキーマの SQL Database への移行を始める前に:
- ソース環境がサポートされていることを確認する。
- SSMA for Oracle をダウンロードします。
- ターゲットの SQL Database インスタンスを用意します。
- SSMA for Oracle に必要なアクセス許可とプロバイダーを取得します。
移行前
前提条件を満たしたら、環境のトポロジを検出し、Azure Cloud 移行の実現可能性を評価する準備が整いました。 プロセスのこの部分では、移行する必要があるデータベースのインベントリを実行し、移行に関する潜在的な問題や障害の有無についてそれらのデータベースを評価し、発見していなかったおそれがあるすべての項目を解決します。
アクセス
SSMA for Oracle を使用すると、データベース オブジェクトとデータを確認し、移行についてデータベース オブジェクトを評価し、SQL Database にデータベース オブジェクトを移行して、最後にそのデータベースにデータを移行することができます。
評価を作成するには、次のようにします。
SSMA for Oracle を開きます。
[ファイル] を選択してから、 [新しいプロジェクト] を選択します。
プロジェクト名と、プロジェクトを保存する場所を入力します。 次に、ドロップダウンリストから移行ターゲットとして [Azure SQL Database] を選択し、 [OK] を選択します。
[Oracle への接続] を選択します。 [Oracle への接続] ダイアログ ボックスで、Oracle への接続に関する詳細な値を入力します。
移行する Oracle スキーマを選択します。
[Oracle Metadata Explorer](Oracle メタデータ エクスプローラー) で、移行する Oracle スキーマを右クリックし、 [レポートの作成] を選択して HTML レポートを生成します。 代わりに、データベースを選択し、 [レポートの作成] タブを選択してもかまいません。
HTML レポートを確認し、変換の統計情報とエラーまたは警告を把握します。 また、Excel でレポートを開き、Oracle オブジェクトのインベントリとスキーマ変換の実行に必要な作業量を確認することもできます。 レポートの既定の場所は、SSMAProjects 内のレポート フォルダーです。
例については、「
drive:\<username>\Documents\SSMAProjects\MyOracleMigration\report\report_2020_11_12T02_47_55\
」を参照してください。
データ型を検証する
既定のデータ型マッピングを検証し、必要に応じて要件に基づいて変更します。 これを行うには、次のステップに従います。
SSMA for Oracle で、 [ツール] を選択し、 [プロジェクトの設定] を選択します。
[Type Mapping](型のマッピング) タブを選択します。
[Oracle メタデータ エクスプローラー] でテーブルを選択することにより、テーブルごとに型のマッピングを変更できます。
スキーマの変換
スキーマを変換するには、次のようにします。
(省略可能) 動的またはアドホック クエリをステートメントに追加します。 ノードを右クリックし、 [Add statements](ステートメントの追加) を選択します。
[Azure SQL Database への接続] タブを選択します。
- [SQL Database] で、データベースに接続するための接続の詳細を入力します。
- ドロップダウン リストからターゲットの SQL Database インスタンスを選択するか、新しい名前を入力します。その場合、データベースがターゲット サーバー上に作成されます。
- 認証の詳細を入力し、 [接続] を選択します。
[Oracle Metadata Explorer](Oracle メタデータ エクスプローラー) で Oracle スキーマを右クリックし、 [Convert Schema](スキーマの変換) を選択します。 または、スキーマを選択してから、 [Convert Schema](スキーマの変換) タブを選択します。
変換が終了した後、変換されたオブジェクトと元のオブジェクトを比較および確認して、潜在的な問題を特定し、推奨事項に基づいてそれらに対処します。
変換された Transact-SQL テキストを元のストアド プロシージャと比較し、推奨事項を確認します。
[出力] ペインで [結果の確認] を選択し、 [エラー一覧] ペインでエラーを確認します。
オフライン スキーマ修復の演習のために、プロジェクトをローカルに保存します。 [ファイル] メニューの [プロジェクトの保存] を選択します。 このステップでは、スキーマを SQL Database に発行する前に、ソースとターゲットのスキーマをオフラインで評価し、修復を実行することができます。
Migrate
データベースの評価と不整合への対処が完了した後、次の手順で移行プロセスを実行します。 移行には、スキーマの発行とデータの移行という 2 つのステップが含まれます。
スキーマを発行し、データを移行するには:
[Azure SQL Database Metadata Explorer](Azure SQL Database メタデータ エクスプローラー) の [データベース] ノードでデータベースを右クリックし、 [Synchronize with Database](データベースと同期) を選択して、スキーマを発行します。
ソース プロジェクトとターゲットの間のマッピングを確認します。
[Oracle Metadata Explorer](Oracle メタデータ エクスプローラー) で移行するデータベースまたはオブジェクトを右クリックし、 [データの移行] を選択して、データを移行します。 または、 [データの移行] タブを選択することもできます。データベース全体のデータを移行するには、データベース名の横にあるチェック ボックスをオンにします。 個々のテーブルからデータを移行するには、データベース、 [テーブル] の順に展開してから、テーブルの横にあるチェック ボックスをオンにします。 個々のテーブルのデータを除外するには、チェック ボックスをオフにします。
Oracle と SQL Database 両方の接続の詳細を入力します。
移行が完了したら、データ移行レポートを表示します。
SQL Server Management Studio を使用してお使いの SQL Database インスタンスに接続し、データとスキーマを確認して移行を検証します。
または、SQL Server Integration Services を使用して移行を実行することもできます。 詳細については、次を参照してください。
移行後
移行段階が正常に完了したら、移行後の一連のタスクを完了し、すべてが可能な限り円滑かつ効率的に機能していることを確認する必要があります。
アプリケーションを修復する
データがターゲット環境に移行された後、以前にソースを使用していたすべてのアプリケーションは、ターゲットの使用を開始する必要があります。 このタスクを実現するために、場合によってはアプリケーションの変更が必要になります。
Data Access Migration Toolkit は、Java ソース コードを分析し、データ アクセス API の呼び出しとクエリを検出できるようにする Visual Studio Code の拡張機能です。 このツールキットを使用すると、新しいデータベース バックエンドをサポートするために対処する必要があることが、単一ペインのビューに表示されます。 詳細については、Oracle からの Java アプリケーションの移行に関するブログ記事を参照してください。
テストを実行する
データベース移行に対するテスト アプローチは、次のアクティビティで構成されます。
- 検証テストを作成する: データベース移行をテストするには、SQL クエリを使用する必要があります。 ソース データベースとターゲット データベースの両方に対して実行する検証クエリを作成する必要があります。 その検証クエリでは、定義されているスコープに対応する必要があります。
- テスト環境を設定する: このテスト環境には、ソース データベースとターゲット データベースのコピーを含める必要があります。 必ずテスト環境を分離してください。
- 検証テストを実行する: ソースとターゲットに対して検証テストを実行した後、結果を分析します。
- パフォーマンス テストを実行する: ソースとターゲットに対してパフォーマンス テストを実行した後、結果を分析および比較します。
移行されたオブジェクトを検証する
Microsoft SQL Server Migration Assistant for Oracle Tester (SSMA Tester) を使用すると、移行されたデータベース オブジェクトをテストできます。 SSMA Tester は、変換されたオブジェクトが同じように動作することを検証するために使用されます。
テスト ケースの作成
SSMA for Oracle を開き、 [Tester](テスター) 、 [新しいテスト ケース] の順に選択します。
新しいテスト ケースに関して、次の情報を指定します。
[名前]: テスト ケースを識別する名前を入力します。
[作成日] : 今日の日付が自動的に定義されます。
[最終更新日]: 自動的に入力され、変更することはできません。
[説明]: テスト ケースの目的を示すための任意の追加情報を入力します。
左側にある Oracle のオブジェクト ツリーから、テスト ケースの一部であるオブジェクトを選択します。
この例では、ストアド プロシージャ
ADD_REGION
とテーブルREGION
が選択されています。詳細については、「テストするオブジェクトの選択と構成」を参照してください。
次に、左側のウィンドウの Oracle のオブジェクト ツリーから、テーブル、外部キー、その他の依存オブジェクトを選択します。
詳細については、影響を受けるオブジェクトの選択と構成に関するページを参照してください。
オブジェクトの評価シーケンスを確認します。 順序を変更するにはグリッド内のボタンをクリックします。
前の手順で指定した情報を確認して、テスト ケースを最終処理します。 テスト シナリオに基づいて、テストの実行オプションを構成します。
テスト ケースの設定の詳細については、テスト ケースの準備の終了に関するページを参照してください。
[完了] をクリックして、テスト ケースを作成します。
テスト ケースを実行する
SSMA Tester でテスト ケースが実行されると、テスト対象に選択したオブジェクトがテスト エンジンによって実行され、検証レポートが生成されます。
テスト リポジトリからテスト ケースを選択し、[実行] をクリックします。
起動テスト ケースを確認し、[実行] をクリックします。
次に、Oracle ソースの資格情報を指定します。 資格情報を入力した後、[接続] をクリックします。
対象の SQL Server の資格情報を入力し、[接続] をクリックします。
成功すると、テスト ケースは初期化ステージに移行します。
リアルタイムの進行状況バーに、テスト実行の実行状態が示されます。
テストの完了後にレポートを確認します。 レポートには、統計、テストの実行中に発生したエラー、詳細レポートが表示されます。
[詳細] をクリックすると、詳細情報が表示されます。
合格したデータ検証の例。
失敗したデータ検証の例。
最適化
移行後の段階は、発生したデータの精度の問題を調整したり、完全性を検証したり、ワークロードでのパフォーマンスの問題に対処したりするために非常に重要です。
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 DB - データベース比較ユーティリティ | SSMA for Oracle Tester は、データベース オブジェクトの変換とデータ移行を自動的に検証するために推奨されるツールであり、データベース比較機能のスーパーセットです。 別のデータ検証オプションを探している場合は、データベース比較ユーティリティを使用して、すべてのまたは選択したテーブル、行、および列の行または列レベルまでデータを比較できます。 |
データ SQL エンジニアリング チームが、これらのリソースを開発しました。 このチームの主要な作業は、Microsoft の Azure データ プラットフォームへのデータ プラットフォーム移行プロジェクトの複雑な近代化を容易にし、迅速に進めることです。
次のステップ
さまざまなデータベースおよびデータ移行シナリオや特殊なタスクを支援するために使用できる Microsoft とサードパーティのサービスとツールのマトリックスについては、データ移行のためのサービスとツールに関するページを参照してください。
SQL Database の詳細については、以下を参照してください。
クラウド移行のためのフレームワークと導入サイクルの詳細については、次を参照してください。
ビデオ コンテンツについては、以下をご覧ください。