Oracle SQL Developer Migrations:はじめの一歩

 

日付:2011年3月

Oracle SQL Developerには、IBM DB2、MySQL、Microsoft SQL Server、Microsoft Access、Sybase、Teradataから、Oracleへデータベース・オブジェクトとデータを移行するための移行サポートが組み込まれています。 このドキュメントでは、データベース移行のための環境の準備と、新しい移行ウィザードによる処理内容および移行のおもな手順について説明します。 サポートされている特定のバージョンの一覧については、『Supported Platforms』ドキュメントを参照してください。

目次

  1. 前提条件
  2. 移行のための環境の準備
  3. 移行ウィザードの使用
    • データベースの取得
    • 取得したモデルの変換
    • ターゲットの生成
    • データの移動
  4. Oracleへのコピー

1. 前提条件

  • 移行リポジトリとして使用するOracle Database 10gまたはOracle Database 11gと、ターゲットの移行に使用するOracleデータベースへのアクセス権が必要です。 これらには同じデータベースを使用できます。
  • Oracle SQL Developer 3.0をダウンロードします。 以前のバージョンのOracle SQL Developerを使用してデータベースを移行することもできますが、SQL Developer 3.0で作業手順が変更されたため、最新版を使用することをお勧めします。

2. 移行のための環境の準備

リポジトリの作成が必要になるのは1回のみで、移行を実行するたびに同じリポジトリを繰り返し使用できます。

移行リポジトリの設定

SQL Developer Migrationsを使用するには、移行リポジトリを作成する必要があります。 移行リポジトリとは、移行プロセス中に収集および変換するメタデータを保存するデータベース・スキーマです。 このリポジトリは、トリガーおよびPL/SQLコードに加えて、必要な42の表、24のビューおよび主キーと索引で構成されます。 このリポジトリのために、専用のデータベース・スキーマを構成することを推奨します。ただし、これは必須ではありません。

メタデータ用に新しいスキーマにリポジトリを構築するためには、次のロールとシステム権限がユーザーに必要です。

  • RESOURCE
  • CREATE SESSION
  • CREATE VIEW

スキーマを作成し、上記の権限を付与し、ユーザー用の接続を作成したら、リポジトリをインストールする準備は完了です。 ユーザーの作成方法と接続の設定については、Oracle SQL Developerのドキュメントを参照してください。

Oracle SQL Developerで、「Tools」→「Migration」→「Repository management」→「Create Repository...」の順に選択し、リポジトリ所有者用として作成した接続を選択します。

この処理には少し時間がかかる場合があります。処理中はプログレス・バーが表示されます。

サード・パーティ接続の構成

移行するデータベース用にデータベース接続を構成する必要があります。 このプロセスには、次の2つの手順が含まれます。

  • JDBCドライバの構成
  • サード・パーティ接続の構成

JDBCドライバの構成は、サード・パーティの接続(MySQL、Microsoft SQL Server、およびSybase)につき1回だけ必要です。2つ目の手順は、移行するデータベースごとに実行します。

JDBCドライバの構成

JDBCは、Java Database Connectivity標準であり、Javaプログラムがデータベースに接続するためのメカニズムを提供します。 JDBCについて、詳しくはhttp://java.sun.com/javase/technologies/database/を参照してください。

JDBCを使用してデータベースにアクセスするには、JDBCドライバを使用する必要があります。 これは、通常、データベースのベンダーから無償でダウンロードできます。

このバージョンのOracle Migration Workbenchは、次のJDBCドライバを使用してテストされました。ダウンロードが終わると、ドライバのバイナリjarファイルをマシンの1つのロケーションで開く必要があります。 ドライバのバイナリjarファイルは、通常、ダウンロードされたアーカイブ・ファイル内にある独立したjarファイルです。

  • IBM DB2:バイナリのドライバjarファイル(db2jcc.jarおよびdb2jcc_license_cu.jar)が必要です。DB2のUniversal JDBCドライバを検索するか、http://www-306.ibm.com/software/data/db2/express/additional-downloads.htmlを参照してください。
  • Microsoft Access:追加のドライバは必要ありません。 Accessでは、JDBC/ODBCブリッジを使用します。
  • Microsoft SQL ServerおよびSybase:http://jtds.sourceforge.net/から入手できるjTDSドライバが必要です。 バージョン1.2を使用してください。(http://sourceforge.net/project/showfiles.php?group_id=33291からダウンロードできます。)
    jtdsディストリビューションをダウンロードする際に、jtds-1.2-dist.zipという名前のアーカイブ・ファイルをダウンロードします。 バイナリのドライバjarファイルは、このアーカイブ・ファイル内のjtds-1.2.jarという名前のファイルにあります。
  • MySQL:次のURLから入手できるMySQLのJDBCドライバ(バージョン5.0.4)が必要です。http://dev.mysql.com/downloads/connector/j/5.0.html
    mysql-connector-java-5.0.4.tar.gz(または.zip)という名前のアーカイブ・ファイルをダウンロードします。 このファイル内にあるmysql-connector-java-5.0.4-bin.jarという名前のファイルがバイナリのドライバjarファイルです。
  • Teradata:Teradataのドライバは、http://www.teradata.com/downloadcenter/からダウンロードできます。TeradataのJDBCドライバは、12.0以降のバージョンをダウンロードする必要があります。 TeradataのJDBCドライバは、バージョン12.0も13.0もjarファイルのterajdbc4.jarおよびtdgssconfig.jarを使用します。

ダウンロードが終わると、ドライバのバイナリjarファイルをマシンの1つのロケーションで開く必要があります。 ドライバのバイナリjarファイルは、通常、ダウンロードされたアーカイブ・ファイル内にある独立したjarファイルです。 関連するjarファイルをディスクに抽出した後、Oracle SQL Developerを構成して、このドライバが存在するロケーションを指示する必要があります。

  1. Oracle SQL Developerで、「Tools」→「Preferences...」を選択します。
  2. 左側のツリーで「Database」オプションを展開します。
  3. Third Party JDBC Drivers」をクリックします。
  4. Add Entry...」をクリックします。
  5. サード・パーティのドライバjarファイルを選択して、「OK」をクリックします。

Check For UpdatesオプションによるJDBCドライバの構成

Oracle SQL Developerでは、MySQL、Microsoft SQL Server、およびSybaseに必要なドライバをインストールするためにCheck for Updatesオプションを使用できます。 Check for Updatesオプションを使用するには、Oracle SQL Developerを起動して、Help」→「Check for Updatesを選択し、次のようにウィザードに従います。

  • Oracle SQL Developerを起動します。
  • Help」→「Check for Updatesを選択します。
  • Check for Updatesウィザードに従います。 必要なドライバとサード・パーティの拡張機能を選択します。
    • ライセンスの確認と承認、およびOTNアカウントを使用した、OTNへのサインインが求められます。
  • 指示されたら、Oracle SQL Developerを再起動します。
  • 接続と設定は維持されるので、"Migrate User Settings"ダイアログを選択する必要はありません。

注:IBM DB2およびTeradataのためのドライバをインストールするには、2.1 JDBCドライバの構成で説明されている方法を使用する必要があります。

サード・パーティ接続の追加

移行元のデータベース用にサード・パーティ接続を追加する必要があります。

これは、次の手順で実行します。

  1. Oracle SQL Developerのメイン接続ナビゲータ左上の緑色の「+」アイコンをクリックして、新しい接続ダイアログを起動します。
  2. サード・パーティ製のデータベースの詳細を入力します。 使用するサード・パーティ・データのタブを選択します。 Microsoft SQL Server、Microsoft Access、DB2、MySQL、およびTeradataのタブがあります。

構成が終わると、他のOracle SQL Developerの接続と同様に、サード・パーティ製のデータベースの内容を表示できます。

3. 移行ウィザードの使用

Oracle SQL Developer 3.0は、オンラインとオフラインの両方の移行をサポートしています。

  • オンライン移行では、サード・パーティ製のデータベースに直接接続して、データベース・オブジェクトとデータをOracleに移行します。
  • オフライン移行では、サード・パーティ製のデータベースから準備したファイルを使用します。 オフライン移行に使用するファイルの準備ができたら、サード・パーティ製のデータベースに接続できなくても構いません。

Oracle SQL Developer 3.0には移行プロジェクトという概念が取り入れられており、ユーザーが移行ウィザードを使用して移行プロセスを順番に実行できるようになっています。 ウィザードを起動するには、サード・パーティ製のデータベース用の接続を選択し、接続を右クリックして「Migrate to Oracle...」を選択します。

移行ウィザードを使用するために必要な項目を次に示します。

  • リポジトリ所有者の接続名(手順2)
  • 生成されたスクリプトが保存されるファイル・ディレクトリへのアクセス権(手順3)
  • オンラインとオフラインのいずれで移行するか(手順4)
  • オンライン移行の場合はサード・パーティ製のデータベース用の接続(手順4および8)
  • 移行するデータベースの名前(手順5)
  • Oracleデータベースでユーザーの新規作成と表の作成ができる権限を持つユーザー用の接続の名前。 このユーザーはcreate ... scriptsの実行とデータの移動に使用します。たとえば、SYSTEMユーザーか、DBA権限を持つ他のユーザーが該当します (手順7および8)

移行ウィザードの手順に従います。

移行ウィザードが完了したら、Migration Projectsナビゲータが表示されていない場合は、「View」→「Migration Projects」を選択して開きます。 新しい移行プロジェクトがリストに表示されます。 新しいプロジェクトを展開してCaptured Database ObjectsConverted Database Objectsを表示します。「Converted Database Objects」を展開し、作成されたユーザーのリストを表示します。 それらはOracle Databaseの新しいユーザーの名前です。 移行されたデータを確認するには、新しいユーザー用の接続を作成する必要があります。

移行ウィザードは以下のプロセスを順番に実行します。 プロセスが完了したら、プロセスのどのフェーズからでも再開できます。 再開すると、ウィザードが再度開き、必要に応じてフェーズが実行されます。

データベースの取得

これは、移行プロセスの最初の手順です。 サード・パーティ製のデータベースの現在の状態のスナップショットを取得するために使用され、Oracle Migration Workbenchにデータベースの"ポイント・イン・タイム"ビューを提供するために必要です。 この手順が終わると、移行ウィザードは、稼働中のデータベースに対して問合せを発行する代わりに、リポジトリに保存されているメタデータにアクセスします。

オンライン移行のこのフェーズでは、サード・パーティ製のデータベースに作成した接続が使用され、出力は新しい移行プロジェクトのCaptured Database Objectsノードに表示されます。

取得したモデルの変換

移行プロセスの次の手順は、取得したデータベースのモデルをOracle特有のモデルに変換することです。 取得したモデルには、データベース・ベンダーが定義したデータ型、ネーミング・スキーマなどが含まれています。これをOracleの形式に変換する必要があります。 いったん移行が完了したら、Captured Database Objectsノードに戻ってここからウィザードを再実行し、再度、オブジェクトの一部またはすべてを変換できます。

取得したモデルを変換する方法

  1. Captured Database Objectsノードに移動します。
  2. このノードを選択して右クリックします。
  3. Convert...」を選択します。

    これにより、移行ウィザードの変換のステージが再度開きます。前の手順はすべてスキップされます。 データ型変換ダイアログが表示されます。 このダイアログでは、プラットフォーム固有のデータ型をOracle固有のデータ型に変換するために必要なデータ型変換を指定できます。 ほとんどの場合、デフォルトのままで問題ありません。 また、使用するマッピングを変更できます。その後、「Next」をクリックして、ウィザードの手順を続行します。

変換したモデルに対するターゲットの生成

変換プロセスが完了すると、Oracle SQL Developer Migrationsに、変換されたデータベースのモデルができます。 このモデルを使用して、新しいOracle Databaseのスキーマを作成するSQLスクリプトを生成し、生成されたスクリプトを実行します。 注:このステージでは、SYSTEMユーザーか、ユーザーや表などを作成する権限を持つ他のユーザーなど、Oracleの特権ユーザーのアクセス権が必要です。 スクリプトの実行に使用するのは、このユーザー(接続)です。

生成されたスクリプトは、ウィザードで指定したディレクトリにあります。 スクリプトを生成する方法は次のとおりです。

  1. Converted Database Objectsノードに移動します。
  2. このノードを選択して右クリックします。
  3. Generate Target...」を選択します。

データベース・スキーマの作成に必要なSQLが移行ウィザードによって生成されます。

Oracleへのデータの移行

移行ウィザードの最後の手順は、データを新しいデータベースに移行することです。 データの移行は、サード・パーティ製のデータベースからOracleデータベースの新しい表にデータをコピーするプロセスです。 移行ウィザードでは、データの移動のときと同様に、スクリプトの実行に必要な同じOracleデータベース接続を使用します。

移行ウィザードに再アクセスしてデータを移動する方法

  1. Converted Database Objectsノードに移動します。
  2. このノードを選択して右クリックします。
  3. Move Data...」を選択します。

これにより、移行ウィザードが再起動されます。

  1. " Source Connection"という名前のフィールドは、サード・パーティ製のデータベースに接続するためのものです。
  2. "Target"という名前のフィールドは、新規作成されたユーザーにデータを移行するときに必要なOracleの特権ユーザーです。
  3. OK」をクリックします。

完了後、データは新しく作成されたデータベース・スキーマに移動しています。

4. Oracleへのコピー

Oracle SQL Developer 3.0にはCopy to Oracleオプションがあり、これを使用すると移行リポジトリを使用せずに、サード・パーティ製のデータベースからOracleに表およびデータをコピーできます。 この簡易移行オプションは2つか3つの表をOracleにすばやくコピーするときにとても便利で、追加で必要となる設定はありません。 この機能は表とデータをコピーする場合のみ使用できます。それ以外の移行の場合は移行ウィザードを使用してください。

Copy to Oracleオプションを使用するには、上記の手順2 サード・パーティ接続の追加で作成したサード・パーティ接続を選択します。 接続ダイアログが起動するので、表をコピーするOracle接続を選択し、「Apply」をクリックします。

注:MS Access:このオプションの場合はシステム権限がなくてもデータベースのメタデータにアクセスできるため、MS Accessのユーザーには、Copy to Oracleオプションを使用することをお勧めします。 MS Access接続の場合は、接続を右クリックしてもCopy to Oracleオプションが使用できるため、簡単にすべての表をコピー対象にすることができます。


次のステップ
 ディスカッション・フォーラムに参加してください。 Oracle Migration Workbench
 追加情報は、OTNのOracle Migration Technology Centerを参照してください。