この章では、次の移行例について説明します。
図5-1に、Sybaseデータベースに問合せを行うようにコード化されているアプリケーションが、SQL翻訳フレームワークを使用して、かわりにOracle Databaseに格納される情報に問合せを行う方法を示します。
この項の内容は次のとおりです。
この例で使用されるSybaseデータベースには、3つの表と5つのプロシージャがあり、次の機能を備えています。
IDENTITY列
IDENTITY列を含む表へのINSERT文
4000文字を超えるサイズのVARCHAR列
プロシージャから戻される複数の暗黙的結果セット
Javaアプリケーションは、JDBCを使用してこのSybaseデータベースに接続します。
次の手順を実行して、移行を設定します。
JDBCドライバJTDS 1.2をダウンロードします。
JTDSをサード・パーティJDBCドライバとして次のように追加します。
「ツール」メニューから、「プリファレンス」を選択します。
図5-2に示すように、右パネルの「データベース」オプションから「サード・パーティJDBCドライバ」を選択します。
「エントリの追加」をクリックします。
「パス・エントリの選択」ボックスが表示されます。
jtds-1.2.jar
ファイルを選択して、「選択」をクリックします。
「OK」をクリックします。
情報の移行先のOracle Databaseに接続します。
次のコマンドで、接続がOracle Database 12c JDBCドライバを使用していることを確認します。
show jdbc
次のコマンドで、移行リポジトリ用の新しいユーザーmigrep
をOracle Databaseで作成します。
GRANT CONNECT,RESOURCE,CREATE VIEW to migrep INDENTIFIED BY migrep; ALTER USER migrep QUOTA UNLIMITED to users;
図5-3に示すように、migrep
ユーザーとしてデータベースに接続し、移行リポジトリとユーザーを関連付けます。
図5-4に示すように、Sybaseデータベース(この例ではsimpledemo12c
)への接続を作成します。
注意: 移行プロセスには、取得、変換、生成およびデータ移動の4つのフェーズがあります。ベスト・プラクティスとして、移行プロセスの各フェーズを完了し、「サマリー」ページで問題を確認してから、次のフェーズに進みます。移行ウィザードでは、各手順を順番に完了したらウィザードに戻り、次の手順を完了することができます。このためには、各フェーズの完了後に「サマリー・ページに進む」チェック・ボックスを選択して、「次へ」をクリックします。 |
次の手順を実行して、移行を取得します。
図5-5に示すように、simpledemo12c Sybase
データベースを右クリックして、「Oracleへの移行」オプションを選択します。
図5-6に示すように、移行ウィザードが開きます。
「次へ」をクリックします。
図5-7に示すように、「移行リポジトリ」を選択します。
「次へ」をクリックします。
図5-8に示すように、プロジェクト名を入力して、ファイルを置く出力ディレクトリを指定します。
「次へ」をクリックします。
図5-9に示すように、データベース接続とモードを選択します。
「次へ」をクリックします。
データベース(この場合はsimpledemo12c
)を選択します。選択するには、図5-10に示すように、データベースを「使用可能なデータベース」から「選択したデータベース」に移動します。
「サマリー・ページに進む」をクリックして、移行プロセスの次のフェーズに進む前に取得フェーズを確認します。
「次へ」をクリックします。
取得フェーズでは、この時点で選択したデータベースのスナップショットを保存します。実際の表データではなく、オブジェクト定義のみが取得されます。この取得したスナップショットは、「移行プロジェクト」ナビゲータで表示できます。
スナップショットはデータベースへの接続ではありませんが、これを使用すると、移行リポジトリに保存された情報を通じて参照のみを行うことができることに注意してください。
変換フェーズを開始する前に、移行プリファレンスを設定する必要があります。それには、次の手順を実行します。
「ツール」メニューから、「プリファレンス」、「移行」、「トランスレータ」の順に選択します。図5-11に示すように、「複合トリガーの生成」オプションを選択します。
「ツール」メニューから、「プリファレンス」、「移行」、「生成オプション」の順に選択します。図5-12に示すように、「移行時にOracle Database 12cの機能をすべて使用」オプションを選択します。
次の手順を実行して、移行プロセスの変換フェーズを開始します。
図5-13に示すように、取得モデル・ノードを右クリックして、「変換」を選択します。
図5-14に示すように、移行ウィザードが変換フェーズで開きます。
「サマリー・ページに進む」を選択して、「次へ」をクリックします。
「終了」をクリックします。
変換フェーズ中に、オブジェクト名は有効なOracle名に解決されます。データ型は、Oracle Database型に変換され、T-SQL定義オブジェクト(ストアド・プロシージャ、ビューなど)は、Oracle PL/SQLに変換されます。変換されたモデルが作成され、「移行プロジェクト」ナビゲータで参照できます。変換されたプロシージャは、変換されたモデルで確認できます。
変換されたモデルは、実際のOracle Databaseではありませんが、Oracle Databaseのプロトタイプになることに注意してください。情報は、引き続き、移行リポジトリ表にのみ格納されます。
移行生成フェーズでは、ターゲットのOracle Databaseにオブジェクトが作成されます。スクリプトが作成され、選択したOracle接続に対して次の2つの方法で実行されます。
オフライン
・モードでは、スクリプトはSQLワークシートで開き、接続を選択して手動で実行する必要があります。
オンライン
・モードでは、ウィザードでターゲットの接続を指定する必要があります。ウィザードにより、スクリプトは自動で実行されます。
次の手順では、オフライン
・モードでの移行プロセスの生成フェーズの実行方法を示します。
次の手順を実行して、データをOracle Databaseに移動します。
図5-18に示すように、「変換されたデータベース・オブジェクト」ノードを右クリックして、「データの移動」を選択します。
「次へ」をクリックします。
「データの移動」画面で、データ移動モードに「オンライン」
を選択します。
移行プロセスに大容量のデータが含まれる場合は、データ移動モードに「オフライン」
を選択できます。
「次へ」をクリックします。「サマリー」画面が表示されます。
「終了」をクリックします。
データベース・オブジェクトを参照して、データがOracle Databaseに移動していることを確認できます。
詳細は、『Oracle SQL Developerユーザーズ・ガイド』を参照してください。
Oracle SQL Developerは、移行プロセスに関するレポートを多数用意しており、解決するタスクと問題の特定に役立ちます。「移行プロジェクト」ナビゲータで、移行したプロジェクトをクリックまたはダブルクリックします。図5-19に示すように、複数のタブや子レポートを含むレポートが右パネルに表示されます。
図5-20に示すように、分析レポートには、移行したデータベースのサイズ(オブジェクトの数、行サイズなど)に関する情報が表示されます。
ターゲット・ステータス・レポートには、ターゲット・データベースでの移行済オブジェクトのステータスに関する情報が表示されます。最初に、十分な権限を持つターゲット接続を選択し、他のスキーマ・オブジェクトのステータスを表示してから「リフレッシュ」を選択します。変換されたモデルにあるオブジェクトでも、ターゲットOracle Databaseにないオブジェクトは、欠落したものとしてリスト表示されます。これらのオブジェクトは有効または無効のいずれかになります。
「データ品質」タブには、ソース・データベースと比較した、ターゲットOracle Databaseの行数に関する情報が表示されます。次の手順を実行して、データベースを比較します。
変換したモデル、ソース接続およびターゲット接続を選択します。
分析をクリックします。
「リフレッシュ」をクリックします。
ソース・データベースとターゲット・データベースの各表に対してcount(*)
ファンクションが実行されます。そのため、本番データに対してこの操作を実行しないようにしてください。