5 例: SQL翻訳フレームワークを使用したアプリケーションの移行
Sybase JDBCアプリケーションの移行例、移行レポートに含まれる情報、移行をチューニングして最適な結果を得るためのレポートの使用方法を詳しく見ていきます。
Sybase JDBCアプリケーションの移行
図5-1に、Sybaseデータベースに問合せを行うようにコード化されているアプリケーションが、SQL翻訳フレームワークを使用して、かわりにOracle Databaseに格納される情報に問合せを行う方法を示します。
アプリケーションの概要
この例で使用されるSybaseデータベースには、3つの表と5つのプロシージャがあり、次の機能を備えています。
-
IDENTITY
列 -
IDENTITY
列を含む表へのINSERT
文 -
4000
文字を超えるサイズのVARCHAR
列 -
プロシージャから戻される複数の暗黙的結果セット
Javaアプリケーションは、JDBCを使用してこのSybaseデータベースに接続します。
移行の設定
移行プロセスには、取得、変換、生成およびデータ移動の4つのフェーズがあります。ベスト・プラクティスとして、移行プロセスの各フェーズを完了し、「サマリー」ページで問題を確認してから、次のフェーズに進みます。移行ウィザードでは、各手順を順番に完了したらウィザードに戻り、次の手順を完了することができます。このためには、各フェーズの完了後に「サマリー・ページに進む」チェック・ボックスを選択して、「次へ」をクリックします。
次の手順を実行して、移行を設定します。
-
JDBCドライバJTDS 1.2をダウンロードします。
-
JTDSをサード・パーティJDBCドライバとして次のように追加します。
-
「ツール」メニューから、「プリファレンス」を選択します。
-
図5-2に示すように、右パネルの「データベース」オプションから「サード・パーティJDBCドライバ」を選択します。
図5-2 JTDS 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-3 ユーザーと移行リポジトリの関連付け
-
図5-4に示すように、Sybaseデータベース(この例では
simpledemo12c
)への接続を作成します。図5-4 Sybaseデータベースへの接続の作成
移行の取得
次の手順を実行して、移行を取得します。
取得フェーズでは、この時点で選択したデータベースのスナップショットを保存します。実際の表データではなく、オブジェクト定義のみが取得されます。この取得したスナップショットは、「移行プロジェクト」ナビゲータで表示できます。
スナップショットはデータベースへの接続ではありませんが、これを使用すると、移行リポジトリに保存された情報を通じて参照のみを行うことができることに注意してください。
移行の変換
変換フェーズ中に、オブジェクト名は有効なOracle名に解決されます。データ型は、Oracle Database型に変換され、T-SQL定義オブジェクト(ストアド・プロシージャ、ビューなど)は、Oracle PL/SQLに変換されます。変換されたモデルが作成され、「移行プロジェクト」ナビゲータで参照できます。変換されたプロシージャは、変換されたモデルで確認できます。
変換されたモデルは、実際のOracle Databaseではありませんが、Oracle Databaseのプロトタイプになることに注意してください。情報は、引き続き、移行リポジトリ表にのみ格納されます。
移行の生成
移行生成フェーズでは、ターゲットのOracle Databaseにオブジェクトが作成されます。スクリプトが作成され、選択したOracle接続に対して次の2つの方法で実行されます。
-
オフライン
・モードでは、スクリプトはSQLワークシートで開き、接続を選択して手動で実行する必要があります。 -
オンライン
・モードでは、ウィザードでターゲットの接続を指定する必要があります。ウィザードにより、スクリプトは自動で実行されます。
次の手順では、オフライン
・モードでの移行プロセスの生成フェーズの実行方法を示します。
移行レポートの生成
Oracle SQL Developerは、移行プロセスに関するレポートを多数用意しており、解決するタスクと問題の特定に役立ちます。「移行プロジェクト」ナビゲータで、移行したプロジェクトをクリックまたはダブルクリックします。図5-19に示すように、複数のタブや子レポートを含むレポートが右パネルに表示されます。
図5-19 移行レポートの生成
図5-20に示すように、分析レポートには、移行したデータベースのサイズ(オブジェクトの数、行サイズなど)に関する情報が表示されます。
図5-20 移行分析レポート
ターゲット・ステータス・レポートには、ターゲット・データベースでの移行済オブジェクトのステータスに関する情報が表示されます。最初に、十分な権限を持つターゲット接続を選択し、他のスキーマ・オブジェクトのステータスを表示してから「リフレッシュ」を選択します。変換されたモデルにあるオブジェクトでも、ターゲットOracle Databaseにないオブジェクトは、欠落したものとしてリスト表示されます。これらのオブジェクトは有効または無効のいずれかになります。
図5-21 ターゲット・ステータス・レポート
「データ品質」タブには、ソース・データベースと比較した、ターゲットOracle Databaseの行数に関する情報が表示されます。次の手順を実行して、データベースを比較します。