Microsoft SQL ServerデータベースからOracle Database 11gへの移行

<このテキストを削除しないでください。これは、ブラウザ実行時に生成される"主要"なトピック一覧のプレースホルダです。>

目的

このチュートリアルでは、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つの方法があります。
  1. オンライン取得: この方法では、実行中のMicrosoft SQL Serverデータベースに対する接続をOracle SQL Developer内で作成する必要があります。 JDBCを使用すると、Microsoft SQL Serverデータベースのメタデータにアクセスし、取得モデルを作成できます。
  2. オフライン取得: この方法の場合は、Oracle SQL Developerによって生成されたBCPスクリプトを使用して、Microsoft SQL Serverデータベースのメタデータをファイルに抽出します。 次にOracle SQL Developerを使用してこれらのファイルを"取得"することで、取得モデルを作成します。
    このチュートリアルでは、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つから選択できます。
  1. オンライン・データ移動: Oracle SQL Developer内にMicrosoft SQL Serverソース・データベースへの接続を作成し、データを移行できます。
  2. オフライン・データ移動: Microsoft SQL Serverからデータをエクスポートできます。 Oracle SQL Developerによって一連のBCPファイルとsqlldrファイルが作成され、バッチ・ファイルからこれらを実行できます。
    このチュートリアルでは、2番目の方法を使用します。

前提条件

このチュートリアルを始める前に以下のことを確認してください。

.

Oracle Database 10g以上、またはOracle Database XEをインストールしていること。

.

こちらからOracle SQL Developerをダウンロードし、解凍していること。

.

ステップ2で取得したファイルを解凍して、SQL Developer 3.0をインストールしていること。

.

mssqlservermigration.zipファイルを作業ディレクトリ(wkdirなど)にダウンロードし、解凍していること。

mwrepユーザーの作成

新規データベース・ユーザーを作成するには、次の手順を実行します。

注: 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
IDENTIFIED BY mwrep
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;
GRANT CONNECT, RESOURCE, CREATE SESSION, CREATE VIEW TO 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からエクスポートされたファイルの取得

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データベース・オブジェクトを作成するスクリプトの実行

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"機能のデモを表示するには、こちらをクリックしてください。

まとめ

このチュートリアルで学習した内容は、以下のとおりです。

 

Hardware and Software Engineered to Work Together 会社情報 |オラクルとサン | Oracle RSS Feeds | 採用情報 | お問い合わせ | サイトマップ | 情報保護基本方針 | ウェブサイトのご使用条件 | 個人情報保護基本方針