移行ガイド: Oracle から SQL Server に
適用対象:SQL Server
このガイドでは、SQL Server Migration Assistant for Oracle (SSMA for Oracle) を使用して、Oracle データベースを SQL Server に移行する方法について説明します。
その他の移行ガイドについては、「Azure データベースの移行ガイド」を参照してください。
コードの評価と変換の詳細については、SSMA for Oracle に進んでください。
前提条件
Oracle データベースの SQL Server への移行を開始する前に、以下の手順を実行します。
- ソース環境がサポートされていることを確認する。
- SQL Server をダウンロードしてインストールする。
- SSMA for Oracle をダウンロードしてインストールする。
- SSMA for Oracle に必要なアクセス許可とプロバイダーを取得する。
- ソースとターゲットの両方にアクセスするための接続と十分なアクセス許可を取得する。
移行前
クラウドへの移行の準備をする場合には、ソース環境がサポートされていること、およびその他の前提条件をすべて満たしていることを確認します。 そうすることで、確実に効率よく移行を成功させるのに役立ちます。
プロセスのこの部分では、移行する必要があるデータベースのインベントリを実行し、移行に関する潜在的な問題や障害の有無についてそれらを評価し、発見していなかったおそれがあるすべての項目を解決します。
発見
Microsoft Assessment and Planning (MAP) Toolkit を使用して、既存のデータ ソースを特定し、組織で使用されている機能の詳細を確認します。 このプロセスには、ネットワークをスキャンして、組織内のすべての Oracle インスタンス、バージョン、機能を特定することが含まれます。
MAP Toolkit を使用してインベントリ スキャンを実行するには、以下を実行します。
MAP Toolkit を開きます。
[概要] ペインで [Create/Select database](データベースの作成/選択) を選択します。
[Create/Select database](データベースの作成/選択) の下で [インベントリ データベースの作成] を選択し、作成するインベントリ データベースの名前を入力し、簡単な説明を入力して、 [OK] を選択します。
[インベントリ データの収集] を選択して、インベントリと評価ウィザードを開きます。
ウィザードで [Oracle] を選択し、 [次へ] を選択します。
組織のニーズおよびご使用の環境に最も適したコンピューター検索オプションを選択し、 [次へ] を選択します。
探索するシステムの現在の資格情報を入力するか、新しい資格情報を作成し、 [次へ] を選択します。
資格情報の順序を設定し、 [次へ] を選択します。
検出する各コンピューターの資格情報を指定します。 コンピューターまたはマシンごとに一意の資格情報を使用するか、 [コンピューター] 一覧から選択できます。
選択の概要を確認し、 [完了] を選択します。
スキャンが完了したら、 [データ収集] 概要レポートを表示します。 スキャンには数分かかる場合がありますが、時間はデータベースの数によって異なります。 完了したら、 [閉じる] をクリックします。
[オプション] を選択して、Oracle の評価とデータベースの詳細に関するレポートを生成します。 レポートを生成するには、両方のオプションを (一度に 1 つずつ) 選択します。
アクセス
データ ソースを特定したら、SSMA for Oracle を使用して、2 つの間のギャップを理解するために、SQL Server 仮想マシンに移行する Oracle インスタンスを評価します。 Migration Assistant を使用すると、データベース オブジェクトとデータを確認し、データベースの移行の評価を行った上で、データベース オブジェクトを SQL Server に移行した後、データを SQL Server に移行できます。
評価を作成するには、次の手順を実行します。
SSMA for Oracle を開きます。
[ファイル] を選択し、 [新しいプロジェクト] を選択します。
プロジェクト名と場所を指定し、ドロップダウン リストで SQL Server 移行ターゲットを選択します。 [OK] を選択します。
[Oracle への接続] を選択し、Oracle 接続の詳細を入力して、 [接続] を選択します。
[Filter objects](オブジェクトのフィルター) ペインで、移行する Oracle スキーマを選択し、 [OK] を選択します。
[Oracle メタデータ エクスプローラー] ペインで、処理する Oracle スキーマを選択し、 [レポートの作成] を選択して、変換の統計とエラーまたは警告 (ある場合) を含む HTML レポートを生成します。 または、右上にある [レポートの作成] タブを選択することもできます。
HTML レポートを確認して、変換の統計情報のほか、エラーや警告がないかどうかを把握します。 また、Excel でレポートを開き、Oracle オブジェクトのインベントリとスキーマ変換の実行に必要な作業量を確認することもできます。 このレポートの既定の場所は、SSMAProjects 内のレポート フォルダーです。 次に例を示します。
drive:\<username>\Documents\SSMAProjects\MyOracleMigration\report\report_2016_11_12T02_47_55\
データ型を検証する
既定のデータ型マッピングを検証し、必要に応じて要件に基づいて変更します。 そのためには次を行います。
[ツール] を選択し、 [プロジェクトの設定] を選択します。
[Type Mapping](型のマッピング) タブを選択します。
[Oracle メタデータ エクスプローラー] ペインでテーブル名を選択すると、各テーブルの型マッピングを変更できます。
スキーマの変換
スキーマを変換するには、次の手順を行います。
(省略可能) 動的または特殊なクエリを変換するには、ノードを右クリックし、 [ステートメントの追加] を選択します。
[SQL Server への接続] タブを選択し、SQL Server インスタンスの接続の詳細を入力します。
[データベース] ドロップダウン リストで、ターゲット データベースを選択するか、新しい名前を指定してターゲット サーバーにデータベースを作成します。
認証の詳細を指定します。
[接続] を選択します。
[Oracle メタデータ エクスプローラー] ペインで、処理するスキーマを右クリックして、 [スキーマの変換] を選択します。 または、右上にある [スキーマの変換] タブを選択することもできます。
変換が完了したら、変換されたオブジェクトと元のオブジェクトを比較して、潜在的な問題を特定し、推奨事項に基づいてそれらに対処します。
変換された Transact-SQL テキストを元のコードと比較し、推奨事項を確認します。
出力ペインで [結果の確認] アイコンを選択し、 [エラー一覧] ペインでエラーを確認します。
オフライン スキーマ修復の演習のために、 [ファイル]>[プロジェクトの保存] を選択して、プロジェクトをローカルに保存します。 このようにすると、スキーマを SQL Server インスタンスに公開する前に、ソースとターゲットのスキーマをオフラインで評価し、それらの修復を実行する機会が得られます。
データベースの移行
前提条件を満たし、移行前段階に関連するタスクを完了すると、スキーマとデータベースの移行を実行する準備が整います。 移行には、スキーマの公開とデータベースの移行という 2 つの手順が必要です。
スキーマを公開してデータベースを移行するには、以下を実行します。
スキーマを公開します。 [SQL Server メタデータ エクスプローラー] ペインで、データベースを右クリックして [Synchronize with Database](データベースと同期する) を選択します。 この操作により、Oracle スキーマが SQL Server インスタンスに公開されます。
こちらに示すように、ソース プロジェクトとターゲット間のマッピングを確認します。
データを移行します。 [Oracle メタデータ エクスプローラー] ペインで、スキーマまたはオブジェクトを右クリックし、 [データの移行] を選択します。 または、右上にある [データの移行] タブを選択することもできます。
データベース全体のデータを移行するには、データベース名の横にあるチェック ボックスをオンにします。 個々のテーブルからデータを移行するには、データベースを展開し、 [テーブル] を展開して、テーブルの横にあるチェック ボックスをオンにします。 個々のテーブルのデータを除外するには、このチェック ボックスをオフにします。
[データの移行] ペインで、Oracle と SQL Server の両方の接続の詳細を入力します。
移行が完了したら、データ移行レポートを表示します。
SQL Server Management Studio (SSMS) を使用してお使いの SQL Server インスタンスに接続し、データとスキーマを確認して移行を検証します。
SSMA を使用するだけでなく、SQL Server Integration Services (SSIS) を使用してデータを移行することもできます。 詳細については、以下をご覧ください。
- SQL Server Integration Services (記事)
- SQL Server Integration Services: Azure の SSIS とハイブリッド データ移動 (テクニカル ホワイト ペーパー)
移行後
移行段階が正常に完了したら、移行後の一連のタスクを完了し、すべてが可能な限り円滑かつ効率的に機能していることを確認する必要があります。
アプリケーションを修復する
データをターゲット環境に移行した後、以前にソースが使用されていたすべてのアプリケーションで、ターゲットの使用を開始する必要があります。 このステップを実行するには、場合によってはアプリケーションの変更が必要になります。
Data Access Migration Toolkit は、Java ソース コードを分析し、データ アクセス API の呼び出しとクエリを検出できるようにする Visual Studio Code の拡張機能です。 このツールキットを使用すると、新しいデータベース バックエンドをサポートするために対処する必要がある項目を 1 つのペイン ビューで表示できます。 詳細については、Oracle からの Java アプリケーションの移行に関するブログを参照してください。
テストを実行する
データベース移行に対するテスト アプローチは、次のアクティビティで構成されます。
検証テストを作成する: データベース移行をテストするには、SQL クエリを使用する必要があります。 ソースとターゲットの両方のデータベースに対して実行する検証クエリを作成する必要があります。 検証クエリには、定義したスコープが含まれている必要があります。
テスト環境を設定する: このテスト環境には、ソース データベースとターゲット データベースのコピーを含める必要があります。 必ずテスト環境を分離してください。
検証テストを実行する: ソースとターゲットに対して検証テストを実行した後、結果を分析します。
パフォーマンス テストを実行する: ソースとターゲットに対してパフォーマンス テストを実行した後、結果を分析および比較します。
最適化
移行後の段階は、発生したデータの精度の問題を調整したり、完全性を検証したり、ワークロードでのパフォーマンスの問題に対処したりするために非常に重要です。
これらの問題とそれを軽減するための手順の詳細については、「移行後の検証および最適化ガイド」を参照してください。
移行資産
この移行シナリオの詳細については、次のリソースを参照してください。 これらは、実際の移行プロジェクトの取り組みをサポートするために開発されました。
タイトル | 説明 |
---|---|
データ ワークロード評価モデルとツール | 特定のワークロードに対して、推奨される "最適な" ターゲット プラットフォーム、クラウドの準備状況、アプリケーションとデータベースの修復レベルを提供します。 シンプルなワンクリックの計算とレポート生成機能があり、自動化された均一なターゲット プラットフォームの決定プロセスが用意されているので、大規模な資産評価の促進に役立ちます。 |
Oracle インベントリ スクリプト成果物 | Oracle システム テーブルにヒットし、スキーマの種類、オブジェクトの種類、および状態別にオブジェクトの数を提供する PL/SQL クエリが含まれています。 また、各スキーマの "生データ" の概算値と、各スキーマ内のテーブルのサイズ設定も提供します。結果は CSV 形式で格納されます。 |
SSMA Oracle 評価コレクションと統合の自動化 | エントリとして .csv ファイル (プロジェクトのフォルダー内の sources.csv) を使用して、コンソール モードで SSMA 評価を実行するために必要な xml ファイルを生成するリソースのセットです。 source.csv ファイルは、既存の Oracle インスタンスのインベントリに基づいて、顧客によって提供されます。 出力ファイルは、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 データ プラットフォームへのデータ プラットフォーム移行プロジェクトの複雑な近代化を容易にし、迅速に進めることです。