このチュートリアルでは、Oracle SQL Developerを使用して、Microsoft SQL ServerデータベースからOracle Database 11gへ移行する方法について説明します。
約30分
このチュートリアルでは、以下のトピックについて説明します。
| 概要 | |
| 前提条件 | |
| mwrepユーザーの作成 | |
| 移行リポジトリの作成 | |
| Microsoft SQL Serverからエクスポートされたファイルの取得 | |
| 変換プリファレンスの確認 | |
| Oracleモデルへの変換 | |
| Oracleデータベース・オブジェクトを作成するスクリプトの生成と実行 | |
| オフライン・データ移動プリファレンスの確認 | |
| 分析と見積り | |
| データの移行 | |
| テストと配置 | |
| まとめ |
このアイコンの上にカーソルを置くと、すべてのスクリーンショットがロードし、表示されます。 (警告:すべてのスクリーンショットが同時にロードされるため、ご使用のインターネット接続によってはレスポンス・タイムが遅くなる場合があります。)
注:各手順に関連したスクリーンショットのみを表示する場合は、それぞれの手順にあるアイコンの上にカーソルを置いてください。 スクリーンショットをクリックすると、非表示になります。
Oracle SQL Developerを使用する理由
Oracle SQL Developerは無償のグラフィカル・ツールです。生産性が向上し、データベース開発タスクがシンプルになります。 Oracle SQL Developerを使用すると、データベース・オブジェクトの参照、SQL文の実行、PL/SQL文の編集およびデバッグ、提供レポートまたはカスタム・レポートの実行などが実現します。
Microsoft SQL Serverの移行の概要
Oracle SQL Developer Migration Workbenchを使用すると、サード・パーティ・データベースからOracleデータベースへ簡単に移行できます。
データベース移行プロセスは、おもに次の4つのステップで構成されています。
| ソース・データベースの取得 |
最初のステップでは、Microsoft SQL Serverデータベースの"スナップショット"を取得します。 これには、次の2つの方法があります。
このチュートリアルでは、2番目の方法を使用します。 Oracle SQL Developerのオフライン取得機能を使用して、Microsoft SQL ServerのNorthwindサンプル・データベースがオフライン・データ・ファイルに抽出されています。 取得ツールによって生成されたSQLServer2005.ocpファイルには、Microsoft SQL ServerのNorthwind Tradersデータベースのデータベース・スキーマ情報が含まれています。 Oracle SQL Developer Migration Workbenchは、ソースとなるMicrosoft SQL Serverデータベースの構造表現を構築する基盤として、このファイルを使用します。 この構造は、取得モデルと呼ばれます。 |
| 取得されたデータベースの変換 | Oracle SQL Developer Migration Workbenchは取得モデルを使用して、取得されたオブジェクトをOracle形式のオブジェクトに変換し、変換先データベースの構造表現を構築します。 この構造は、変換モデルと呼ばれます。 |
| Oracleデータベースの生成 | Oracle SQL Developer Migration Workbenchは、変換モデル・オブジェクトに基づいて新しいOracleデータベースを作成するためのDDL文を生成します。 DDL文を実行すると、Oracleデータベース内にオブジェクトが作成されます。 |
| データの移行 |
最後のステップでは、データを移行します。 移行する方法は次の2つから選択できます。
このチュートリアルでは、2番目の方法を使用します。 |
このチュートリアルでは、オフライン移行に必要なスクリプトがあらかじめ生成され、修正されています。 このチュートリアルを実行する時間がないときは、オフライン移行のデモで確認してください。こちらをクリックしてください。
オンライン移行の手順を表示するには、こちらをクリックしてください。
このチュートリアルを始める前に、次を実行しておく必要があります。
| 1. | Oracle Database 10g以上、またはOracle Database XEをインストールしていること。 |
|
| 2. | こちらからOracle SQL Developerをダウンロードし、解凍していること。 |
|
| 3. | mssqlservermigration.zipファイルを作業ディレクトリ(wkdirなど)にダウンロードし、解凍していること。 |
|
新規データベース・ユーザーを作成するには、次の手順を実行します。
注: system_orcl接続とmwrepユーザーがすでに作成されている場合は、このステップは飛ばしてください。
| 1. |
デスクトップ上のアイコンを使用して、Oracle SQL Developerを起動します。
|
|
| 2. |
「View」→「Connections」の順に選択します。
|
|
| 3. |
Connectionsタブで、「Connections」を右クリックし、「New Connection」を選択します。 New / Select Database Connectionウィンドウが表示されます。
|
|
| 4. |
接続名フィールドにsystem_orcl(または接続を識別できるその他の名前)を入力し、ユーザー名フィールドにsystem、パスワード・フィールドに<指定したパスワード>を入力します。 「Save Password」チェック・ボックスを選択します。 ホスト名フィールドに<ホスト名>を、SIDフィールドにorclを入力します。 「Test」をクリックします。
|
|
| 5. |
左下に表示される接続ステータス(Helpボタンの上)がSuccessになっていることを確認します。 接続を保存するには、「Connect」をクリックします。 ウィンドウを閉じます。
|
|
| 6. |
ConnectionsタブのConnections内に、保存された接続が表示されます。
|
|
| 7. |
system_orcl接続を展開します。 注: 接続を開くと、自動的にSQL Worksheetが開きます。 SQL Worksheetを使用すると、先ほど作成した接続に対してSQLを実行できます。
|
|
| 8. |
SQL Worksheetに次のコードを入力し、移行リポジトリ用のユーザーを作成します。 CREATE USER MWREP
IDENTIFIED BY mwrep
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;
GRANT CONNECT, RESOURCE, CREATE SESSION, CREATE VIEW TO MWREP;
|
|
| 9. |
「Run Script」(F5)アイコンを使用して、スクリプトを実行します。
|
|
| 10. |
mwrepユーザーが正しく作成されました。
|
|
Microsoft SQL ServerデータベースをOracleデータベースに変換するには、必要なリポジトリ表とPL/SQLパッケージを格納するためのリポジトリを作成する必要があります。 次の手順を実行します。
注: mwrep_orcl接続と移行リポジトリがすでに作成されている場合は、このステップを飛ばしてください。
| 1. |
リポジトリを作成する前に、mwrepユーザーへの接続を作成する必要があります。 Connectionsタブで、「Connections」を右クリックし、「New Connection」を選択します。 New / Select Database Connectionウィンドウが表示されます。 注: このタブが表示されていない場合は、「View」→「Connections」を選択してください。
|
| 2. |
接続名フィールドにmwrep_orcl(または接続を識別できるその他の名前)を入力し、ユーザー名フィールドとパスワード・フィールドにmwrepと入力します。 「Save Password」チェック・ボックスを選択します。 ホスト名フィールドに<ホスト名>を、SIDフィールドにorclを入力します。 「Test」をクリックします。
|
| 3. |
左下に表示される接続ステータス(Helpボタンの上)がSuccessになっていることを確認します。 接続を保存するには、「Connect」をクリックします。 ウィンドウを閉じます。
|
| 4. |
ConnectionsタブのConnections内に、保存された接続が表示されます。
|
| 5. |
「mwrep_orcl」接続を右クリックし、「Migration Repository」→「Associate Migration Repository」を選択します。
|
| 6. |
進捗ウィンドウが表示されます。
|
| 7. |
インストールが完了したら、「Close」をクリックします。
|
| 8. |
「OK」をクリックします。
|
Microsoft SQL Serverデータベース・スクリプトの作成手順はあらかじめ完了しており、前提条件の項でzipファイルが提供されています。 この手順を表示するには、こちらをクリックしてください。
取得されたMicrosoft SQL Serverデータベース・スクリプトをOracle SQL Developerにロードするには、次の手順を実行します。
| 1. |
「Migration」→「Third Party Database Offline Capture」→「Load Database Capture Script Output」の順に選択します。
|
| 2. |
Captureディレクトリを参照し、「sqlserver2005.ocp」ファイルを選択します。
|
| 3. |
オブジェクトが作成されます。 終了したら、「Close」をクリックします。
|
| 4. |
Captured ModelsタブにSQLServer2005が表示されます。 「SQLServer2005」を展開します。
|
| 5. |
「dbo」を展開し、取得されたオブジェクトのリストを確認します。
|
この時点で変換プリファレンスを確認することが重要です。 次の手順を実行してください。
| 1. |
「Tools」→「Preferences」の順に選択します。
|
| 2. |
「Migration」を展開し、「Identifier Options」を選択します。
|
| 3. |
Is Quoted Identifier Onが選択されていることを確認します。 「OK」をクリックします。
|
取得モデルをOracleモデルに変換するには、次の手順を実行してください。
| 1. |
取得モデル「SQLServer2005」を右クリックし、「Convert to Oracle Model」を選択します。
|
| 2. |
Set Data Mapウィンドウが開き、ソース・データ・タイプとOracleモデル内の変換先データ・タイプが表示されます。 「Apply」をクリックします。
|
| 3. |
変換が実行されます。 終了したら、「Close」をクリックします。
|
| 4. |
Converted Modelsタブに表示された「Converted:SQLServer2005 」を展開します。
|
| 5. |
「dbo_Northwind」を展開し、変換されたオブジェクトを確認します。
|
Oracleデータベース内にオブジェクトを作成するDDL文を含んだSQLスクリプトを作成するには、次の手順を実行します。
| 1. |
「Converted:SQLServer2005」を右クリックし、「Generate」を選択します。
|
| 2. |
Oracle SQLが作成されます。 終了したら、「Close」をクリックします。
|
| 3. |
スクリプトに含まれるSQLが表示されます。 右側のドロップダウンから「system_orcl」を選択します。
|
| 4. |
「Run Script」(F5)をクリックします。
|
| 5. |
スクリプトの実行結果が表示されます。
|
| 6. |
スクリプトが正しく実行されたことを確認したら、dbo_Northwindユーザーへの接続を作成します。 「Connections」を右クリックして、「New Connection」を選択します。
|
| 7. |
接続名フィールドにdbo_northwind-migrated_orcl(または接続を識別できるその他の名前)を入力し、ユーザー名フィールドとパスワード・フィールドにdbo_Northwindと入力します。 「Save Password」チェック・ボックスを選択します。 ホスト名フィールドに<ホスト名>を、SIDフィールドにorclを入力します。 「Test」をクリックします。
|
| 8. |
左下に表示される接続ステータス(Helpボタンの上)がSuccessになっていることを確認します。 接続を保存するには、「Connect」をクリックします。 ウィンドウを閉じます。
|
| 9. |
「dbo_Northwind-migrated_orcl」接続を展開します。
|
| 10. |
「Tables」を展開します。
|
| 11. |
Oracleに変換されたデータベース表が表示されます。 「EMPLOYEES」表を選択します。
|
| 12. |
「Data」タブを選択します。 この時点で表にはデータが含まれていないことを確認します。 このチュートリアルの後半でデータを移行します。
|
プリファレンスに日付書式マスクを指定すると、オフライン・データ移動スクリプト、そして特にOracle SQL*Loader制御ファイルから正しい形式を参照できます。 そのために次の手順を実行してください。
| 1. |
「Tools」→「Preferences」の順に選択します。
|
| 2. |
「Migration」を展開し、「Data Move Options」を選択します。
|
| 3. |
日付マスク形式が次のように指定されていることを確認します。 Mon dd yyyy HH:mi:ssAM
|
| 4. |
タイムスタンプ・マスクが次のように指定されていることを確認します。 Mon dd yyyy HH:mi:ss:ff3AM 「OK」をクリックします。
|
Microsoft SQL ServerからOracleデータベースへの移行は非常に簡単に実行できますが、 一部のオブジェクトと構文は自動的に移行されません。 このため、手動での介入が必要になる点に注意してください。
取得モデルを分析し、オブジェクトの数や種類、そして複雑さを特定しておくと、手動タスクにかかる時間の見積り計算が簡単になります。
タスクとプロジェクトに関する見積りに対して、次のレポートを使用できます。
次の作業にかかる時間を見積もります。
データは、あらかじめMicrosoft SQL Serverから生成されています。 生成手順を確認するには、こちらをクリックします。
提供されたスクリプトを使用してデータをインポートするには、次の手順を実行します。
| 1. |
DOSコマンド・プロンプトを開いて、次のコマンドを実行します。 <プロンプト> cd <ファイルのあるロケーション> <プロンプト> oracle_ctl 前提条件の項で提供されているファイルを解凍したDataディレクトリに、ファイルが保管されています。 oracle_ctlは、データをロードするための文を含むbatファイルです。 ここでは、sqlldrを使用してデータをロードします。
|
| 2. |
コマンドが正しく実行されました。
|
| 3. |
Oracle SQL Developerに切り替えて、接続を更新します。
|
| 4. |
表に含まれるデータが正しくロードされています。
|
| 5. |
「CATEGORIES」表を選択します。
|
| 6. |
PICTURE列の最初のセルをダブルクリックし、「...」をクリックします。
|
| 7. |
「Image」チェック・ボックスを選択し、「OK」をクリックします。
|
移行対象データベースの複雑さによっては、移行プロジェクトの大部分がテスト作業になる場合があります。
現時点で、オラクルは移行されたデータベースを自動的に検証するツールを提供していません。 実際に移行を開始する前に、このフェーズについての計画を立て、考慮に入れておく必要があります。
プロジェクト計画には、次の作業を含める必要があります。
このチュートリアルで学習した内容は、次のとおりです。
| mwrepユーザーの作成 | |
| 移行リポジトリの作成 | |
| Microsoft SQL Serverからエクスポートされたファイルの取得 | |
| 変換プリファレンスの確認 | |
| Oracleモデルへの変換 | |
| Oracleデータベース・オブジェクトを作成するスクリプトの生成と実行 | |
| オフライン・データ移動プリファレンスの確認 | |
| データの移行 |