このチュートリアルでは、Oracle SQL Developer 3.0を使用して、Microsoft SQL ServerデータベースからOracle Database 11gへ移行する方法について説明します。
約45分
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つの方法があります。
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つから選択できます。
|
このチュートリアルを始める前に以下のことを確認してください。
|
. |
Oracle Database 10g以上、またはOracle Database XEをインストールしていること。 |
|---|---|
|
. |
こちらからOracle SQL Developerをダウンロードし、解凍していること。 |
|
. |
ステップ2で取得したファイルを解凍して、SQL Developer 3.0をインストールしていること。 |
|
. |
|
新規データベース・ユーザーを作成するには、次の手順を実行します。
注: system_orcl接続とmwrepユーザーがすでに作成されている場合、このステップをスキップします。
|
. |
デスクトップにSQL Developerアイコンがインストールされている場合、アイコンをクリックしてSQL Developerセッションを開始します。 デスクトップにアイコンがない場合、実行可能ファイル(Windowsの場合は"sqldeveloper.exe"、Linuxの場合は"sqldeveloper.sh")を見つけて実行します。
|
|---|---|
|
. |
「View」→「Connections」の順に選択します。
|
|
. |
Connectionsタブで、「Connections」を右クリックし、「New Connection」を選択します。 New / Select Database Connectionウィンドウが表示されます。
|
|
. |
Connection Nameフィールドにsystem_orcl(または接続を識別できるその他の名前)を入力し、Usernameフィールドにsystem、Passwordフィールドに<指定したパスワード>を入力します。 「Save Password」チェック・ボックスを選択します。 Hostnameフィールドに<ホスト名>を、SIDフィールドにorclを入力します。 「Test」をクリックします。
|
| . |
左下(Helpボタンの上)に表示される接続ステータスを確認します。 Successと表示されているはずです。 接続を保存するには、「Save」をクリックします。 接続するには、「Connect」をクリックします。 このウィンドウを閉じます。
|
|
. |
ConnectionsタブのConnections内に、保存された接続が表示されます。
|
|
. |
「system_orcl」接続を開きます。 注: 接続を開くと、自動的にSQL Worksheetが開きます。 SQL Worksheetを使用すると、先ほど作成した接続に対してSQLを実行できます。
|
|
. |
SQL Worksheetに次のコードを入力し、移行リポジトリ用のユーザーを作成します。 CREATE USER MWREP
|
|
. |
「Run Script」(F5)アイコンを使用して、スクリプトを実行します。
|
|
. |
mwrepユーザーが正しく作成されました。
|
Microsoft SQL ServerデータベースをOracleデータベースに変換するには、必要なリポジトリ表とPL/SQLパッケージを格納するためのリポジトリを作成する必要があります。 次の手順を実行します。
注: mwrep_orcl接続と移行リポジトリがすでに作成されている場合、このステップをスキップします。
|
. |
リポジトリを作成する前に、mwrepユーザーへの接続を作成する必要があります。 Connectionsタブで、「Connections」を右クリックし、「New Connection」を選択します。 New / Select Database Connectionウィンドウが表示されます。 注: このタブが表示されていない場合は、「View」→「Connections」を選択してください。
|
|---|---|
|
. |
Connection Nameフィールドにmwrep_orcl(または接続を識別できるその他の名前)を入力し、UsernameフィールドとPasswordフィールドにmwrepと入力します。 「Save Password」チェック・ボックスを選択します。 Hostnameフィールドに<ホスト名>を、SIDフィールドにorclを入力します。 「Test」をクリックします。
|
|
. |
左下(Helpボタンの上)に表示される接続ステータスを確認します。 Successと表示されているはずです。 接続を保存するには、「Connect」をクリックします。 このウィンドウを閉じます。
|
|
. |
ConnectionsタブのConnections内に、保存された接続が表示されます。
|
|
. |
「mwrep_orcl」接続を右クリックし、「Migration Repository」→「Associate Migration Repository」を選択します。
|
|
. |
進捗ウィンドウが表示されます。 「OK」をクリックします。
|
Microsoft SQL Serverデータベース・スクリプトを作成する工程は完了しており、そのファイルは前提条件の項のzipファイルに含まれています。
取得したMicrosoft SQL Serverデータベース・スクリプトをOracle SQL Developerにロードするには、次の手順を実行します。
|
. |
「Tools」→「Migration」→「Migrate」の順に選択します。
|
|---|---|
|
. |
移行ウィザードが表示され、サード・パーティ・データベースからOracleデータベースへの変換手順が順を追って表示されます。
|
|
. |
ステップ2では、移行リポジトリへの接続を選択します。 「mwrep_orcl」接続を選択し、「Next」をクリックします。
|
|
. |
ステップ3では、プロジェクトの詳細情報を入力します。 プロジェクトは、移行エンティティを含んだコンテナです。 Nameにプロジェクトの名前を、Output Directory には出力先ディレクトリを指定します。「Next」をクリックします。
|
|
. |
ステップ4では、ソース・データベースの詳細情報を入力します。 「Offline」モードを選択します。「Choose」をクリックして、オフラインで取得されたソース・ファイルを選択します。
|
|
. |
「sqlserver2005.ocp」ファイルを選択し、「Open」をクリックします。
|
|
. |
「Next」をクリックします。
|
|
. |
ステップ5では、定義を取得するデータベースを選択します。 「Northwind」データベースを選択し、「Next」をクリックします。
|
|
. |
ステップ6では、変換オプションを指定します。 新しいルールを追加することもできます。 「Next」をクリックします。
|
|
. |
ステップ7では、ターゲット・データベースの詳細情報が表示されます。 「Offline」モードを選択します。また、ここでターゲット・オブジェクトを削除することを選択します。 Generated Script Directoryの場所を書き留めてから「Next」をクリックします。
|
|
. |
ステップ8では、データ移動の詳細情報が表示されます。Data Move Script Directoryの場所を書き留めてから「Next」をクリックします。
|
|
. |
ステップ9では、プロジェクト全体のサマリーが表示されます。 詳細情報を書き留めます。内容を変更する必要がある場合は、「Back 」をクリックします。 最後に、「Finish」をクリックします。
|
|
. |
データ移行が正しく実行されています。
|
|
. |
メッセージを確認したら、「OK」をクリックします。
|
Oracleデータベース内にオブジェクトを作成するDDL文を含んだSQLスクリプトを作成するには、次の手順を実行します。
|
. |
スクリプトに含まれるSQLが表示されます。 右側のドロップダウンから「system_orcl」を選択します。
|
|---|---|
|
. |
「Run Script」(F5)をクリックします。
|
|
. |
スクリプトの実行結果が表示されます。
|
|
. |
スクリプトが正しく実行されたことを確認したら、dbo_Northwindユーザーへの接続を作成します。 「Connections」を右クリックして、「New Connection」を選択します。
|
|
. |
Connection Nameフィールドにdbo_northwind_migrated_orcl(または使用する接続を識別するその他の任意の名前)を、UsernameフィールドおよびPasswordフィールドにdbo_Northwindを入力します。 「Save Password」チェック・ボックスを選択します。 Hostnameフィールドに<ホスト名>を、SIDフィールドにorclを入力します。 「Test」をクリックします。
|
|
. |
左下(Helpボタンの上)に表示される接続ステータスを確認します。 Successと表示されているはずです。 接続を保存するには、「Connect」をクリックします。 このウィンドウを閉じます。
|
|
. |
「dbo_Northwind_migrated_orcl」接続を開きます。
|
|
. |
「Tables」を開きます。
|
|
. |
Oracleに変換されたデータベース表が表示されます。 「EMPLOYEES」表を選択します。
|
|
. |
「Data」タブを選択します。 この時点で表にはデータが含まれていないことを確認します。 このOBEで、後からデータを移行します。
|
プリファレンスに日付書式マスクを指定すると、オフライン・データ移動スクリプト(特にOracle SQL*Loader制御ファイル)から正しい形式を参照できます。 そのために次の手順を実行してください。
|
. |
「Tools」→「Preferences」の順に選択します。
|
|---|---|
|
. |
「Migration」を開き、「Data Move Options」を選択します。
|
|
. |
次のとおりにDate Mask形式が指定されていることを確認します。 Mon dd yyyy HH:mi:ssAM
|
|
. |
次のとおりにTimestamp Maskが指定されていることを確認します。 Mon dd yyyy HH:mi:ss:ff3AM 「OK」をクリックします。
|
Microsoft SQL ServerからOracleデータベースへの移行は非常に簡単に実行できますが、 一部のオブジェクトと構文は自動的に移行されません。 このため、手動での介入が必要になる点に注意してください。
取得モデルを分析し、オブジェクトの数や種類、そして複雑さを特定しておくと、手動タスクにかかる時間の見積り計算が簡単になります。
タスクとプロジェクトに関する見積りに対して、次のレポートを使用できます。
次の作業にかかる時間を見積もります。
データは、あらかじめMicrosoft SQL Serverから生成されています。
提供されたスクリプトを使用してデータをインポートするには、次の手順を実行します。
|
. |
ターミナル・ウィンドウを開き、次のコマンドを実行します。 <プロンプト> cd <ファイルのあるロケーション> <プロンプト> dos2unix oracle_ctl.sh <プロンプト> sh oracle_ctl.sh <ユーザー名> <パスワード>@<接続> 注: oracle_ctlは、データのロード文を含むbatファイルです。 ここでは、sqlldrを使用してデータをロードします。
|
|---|---|
|
. |
コマンドが正しく実行されました。
|
|
. |
Oracle SQL Developerに切り替え、「Refresh」アイコンをクリックして接続を更新します。
|
|
. |
表のデータが正しくロードされています。
|
移行対象データベースの複雑さによっては、移行プロジェクトの大部分がテスト作業になる場合があります。
現時点で、オラクルは移行されたデータベースを自動的に検証するツールを提供していません。 実際に移行を開始する前に、このフェーズについての計画を立て、考慮に入れておく必要があります。
プロジェクト計画には、次の作業を含める必要があります。
SQL Developer 3.0では、簡単にサード・パーティ・データベースを移行する手段が提供されています。 これは、"Copy to Oracle"と呼ばれており、 以前のリリースのQuick Migrate機能に対する後継機能です。
この機能を使用すると、サード・パーティ・データベースからOracle接続へのコピーを素早く簡単に実行できます。
SQL Developer 3.0の"Copy to Oracle"機能のデモを表示するには、こちらをクリックしてください。
このチュートリアルで学習した内容は、以下のとおりです。
![]()
|
会社情報 |オラクルとサン | |