日付:2011年3月
Oracle SQL Developerには、IBM DB2、MySQL、Microsoft SQL Server、Microsoft Access、Sybase、Teradataから、Oracleへデータベース・オブジェクトとデータを移行するための移行サポートが組み込まれています。 このドキュメントでは、データベース移行のための環境の準備と、新しい移行ウィザードによる処理内容および移行のおもな手順について説明します。 サポートされている特定のバージョンの一覧については、『Supported Platforms』ドキュメントを参照してください。
リポジトリの作成が必要になるのは1回のみで、移行を実行するたびに同じリポジトリを繰り返し使用できます。
SQL Developer Migrationsを使用するには、移行リポジトリを作成する必要があります。 移行リポジトリとは、移行プロセス中に収集および変換するメタデータを保存するデータベース・スキーマです。 このリポジトリは、トリガーおよびPL/SQLコードに加えて、必要な42の表、24のビューおよび主キーと索引で構成されます。 このリポジトリのために、専用のデータベース・スキーマを構成することを推奨します。ただし、これは必須ではありません。
メタデータ用に新しいスキーマにリポジトリを構築するためには、次のロールとシステム権限がユーザーに必要です。
スキーマを作成し、上記の権限を付与し、ユーザー用の接続を作成したら、リポジトリをインストールする準備は完了です。 ユーザーの作成方法と接続の設定については、Oracle SQL Developerのドキュメントを参照してください。
Oracle SQL Developerで、「Tools」→「Migration」→「Repository management」→「Create Repository...」の順に選択し、リポジトリ所有者用として作成した接続を選択します。
この処理には少し時間がかかる場合があります。処理中はプログレス・バーが表示されます。
移行するデータベース用にデータベース接続を構成する必要があります。 このプロセスには、次の2つの手順が含まれます。
JDBCドライバの構成は、サード・パーティの接続(MySQL、Microsoft SQL Server、およびSybase)につき1回だけ必要です。2つ目の手順は、移行するデータベースごとに実行します。
JDBCは、Java Database Connectivity標準であり、Javaプログラムがデータベースに接続するためのメカニズムを提供します。 JDBCについて、詳しくはhttp://java.sun.com/javase/technologies/database/を参照してください。
JDBCを使用してデータベースにアクセスするには、JDBCドライバを使用する必要があります。 これは、通常、データベースのベンダーから無償でダウンロードできます。
このバージョンのOracle Migration Workbenchは、次のJDBCドライバを使用してテストされました。ダウンロードが終わると、ドライバのバイナリjarファイルをマシンの1つのロケーションで開く必要があります。 ドライバのバイナリjarファイルは、通常、ダウンロードされたアーカイブ・ファイル内にある独立したjarファイルです。
jtdsディストリビューションをダウンロードする際に、jtds-1.2-dist.zipという名前のアーカイブ・ファイルをダウンロードします。 バイナリのドライバjarファイルは、このアーカイブ・ファイル内のjtds-1.2.jarという名前のファイルにあります。
ダウンロードが終わると、ドライバのバイナリjarファイルをマシンの1つのロケーションで開く必要があります。 ドライバのバイナリjarファイルは、通常、ダウンロードされたアーカイブ・ファイル内にある独立したjarファイルです。 関連するjarファイルをディスクに抽出した後、Oracle SQL Developerを構成して、このドライバが存在するロケーションを指示する必要があります。
Oracle SQL Developerでは、MySQL、Microsoft SQL Server、およびSybaseに必要なドライバをインストールするためにCheck for Updatesオプションを使用できます。 Check for Updatesオプションを使用するには、Oracle SQL Developerを起動して、「Help」→「Check for Updates」を選択し、次のようにウィザードに従います。
注:IBM DB2およびTeradataのためのドライバをインストールするには、2.1 JDBCドライバの構成で説明されている方法を使用する必要があります。
移行元のデータベース用にサード・パーティ接続を追加する必要があります。
これは、次の手順で実行します。
構成が終わると、他のOracle SQL Developerの接続と同様に、サード・パーティ製のデータベースの内容を表示できます。
Oracle SQL Developer 3.0は、オンラインとオフラインの両方の移行をサポートしています。
Oracle SQL Developer 3.0には移行プロジェクトという概念が取り入れられており、ユーザーが移行ウィザードを使用して移行プロセスを順番に実行できるようになっています。 ウィザードを起動するには、サード・パーティ製のデータベース用の接続を選択し、接続を右クリックして「Migrate to Oracle...」を選択します。
移行ウィザードを使用するために必要な項目を次に示します。
移行ウィザードの手順に従います。
移行ウィザードが完了したら、Migration Projectsナビゲータが表示されていない場合は、「View」→「Migration Projects」を選択して開きます。 新しい移行プロジェクトがリストに表示されます。 新しいプロジェクトを展開してCaptured Database ObjectsとConverted Database Objectsを表示します。「Converted Database Objects」を展開し、作成されたユーザーのリストを表示します。 それらはOracle Databaseの新しいユーザーの名前です。 移行されたデータを確認するには、新しいユーザー用の接続を作成する必要があります。
移行ウィザードは以下のプロセスを順番に実行します。 プロセスが完了したら、プロセスのどのフェーズからでも再開できます。 再開すると、ウィザードが再度開き、必要に応じてフェーズが実行されます。
これは、移行プロセスの最初の手順です。 サード・パーティ製のデータベースの現在の状態のスナップショットを取得するために使用され、Oracle Migration Workbenchにデータベースの"ポイント・イン・タイム"ビューを提供するために必要です。 この手順が終わると、移行ウィザードは、稼働中のデータベースに対して問合せを発行する代わりに、リポジトリに保存されているメタデータにアクセスします。
オンライン移行のこのフェーズでは、サード・パーティ製のデータベースに作成した接続が使用され、出力は新しい移行プロジェクトのCaptured Database Objectsノードに表示されます。
移行プロセスの次の手順は、取得したデータベースのモデルをOracle特有のモデルに変換することです。 取得したモデルには、データベース・ベンダーが定義したデータ型、ネーミング・スキーマなどが含まれています。これをOracleの形式に変換する必要があります。 いったん移行が完了したら、Captured Database Objectsノードに戻ってここからウィザードを再実行し、再度、オブジェクトの一部またはすべてを変換できます。
取得したモデルを変換する方法
これにより、移行ウィザードの変換のステージが再度開きます。前の手順はすべてスキップされます。 データ型変換ダイアログが表示されます。 このダイアログでは、プラットフォーム固有のデータ型をOracle固有のデータ型に変換するために必要なデータ型変換を指定できます。 ほとんどの場合、デフォルトのままで問題ありません。 また、使用するマッピングを変更できます。その後、「Next」をクリックして、ウィザードの手順を続行します。
変換プロセスが完了すると、Oracle SQL Developer Migrationsに、変換されたデータベースのモデルができます。 このモデルを使用して、新しいOracle Databaseのスキーマを作成するSQLスクリプトを生成し、生成されたスクリプトを実行します。 注:このステージでは、SYSTEMユーザーか、ユーザーや表などを作成する権限を持つ他のユーザーなど、Oracleの特権ユーザーのアクセス権が必要です。 スクリプトの実行に使用するのは、このユーザー(接続)です。
生成されたスクリプトは、ウィザードで指定したディレクトリにあります。 スクリプトを生成する方法は次のとおりです。
データベース・スキーマの作成に必要なSQLが移行ウィザードによって生成されます。
移行ウィザードの最後の手順は、データを新しいデータベースに移行することです。 データの移行は、サード・パーティ製のデータベースからOracleデータベースの新しい表にデータをコピーするプロセスです。 移行ウィザードでは、データの移動のときと同様に、スクリプトの実行に必要な同じ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を参照してください。