ヘッダーをスキップ
Oracle® Database移行ガイド
12cリリース1 (12.1)
B71352-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

5 SQL翻訳フレームワークを使用したアプリケーションの移行例

この章では、次の移行例について説明します。

Sybase JDBCアプリケーションの移行

図5-1に、Sybaseデータベースに問合せを行うようにコード化されているアプリケーションが、SQL翻訳フレームワークを使用して、かわりにOracle Databaseに格納される情報に問合せを行う方法を示します。

図5-1 Oracle Databaseに対して実行するSybaseアプリケーション

図5-1の説明が続きます
「図5-1 Oracle Databaseに対して実行するSybaseアプリケーション」の説明

この項の内容は次のとおりです。

アプリケーションの概要

この例で使用されるSybaseデータベースには、3つの表と5つのプロシージャがあり、次の機能を備えています。

  • IDENTITY列

  • IDENTITY列を含む表へのINSERT文

  • 4000文字を超えるサイズのVARCHAR列

  • プロシージャから戻される複数の暗黙的結果セット

Javaアプリケーションは、JDBCを使用してこのSybaseデータベースに接続します。

移行の設定

次の手順を実行して、移行を設定します。

  1. JDBCドライバJTDS 1.2をダウンロードします。

  2. JTDSをサード・パーティJDBCドライバとして次のように追加します。

    1. 「ツール」メニューから、「プリファレンス」を選択します。

    2. 図5-2に示すように、右パネルの「データベース」オプションから「サード・パーティJDBCドライバ」を選択します。

      図5-2 JTDS JDBCドライバの設定

      JTDS JDBCドライバの設定
  3. 「エントリの追加」をクリックします。

    「パス・エントリの選択」ボックスが表示されます。

  4. jtds-1.2.jarファイルを選択して、「選択」をクリックします。

  5. 「OK」をクリックします。

  6. 情報の移行先のOracle Databaseに接続します。

  7. 次のコマンドで、接続がOracle Database 12c JDBCドライバを使用していることを確認します。

    show jdbc
    
  8. 次のコマンドで、移行リポジトリ用の新しいユーザーmigrepをOracle Databaseで作成します。

    GRANT CONNECT,RESOURCE,CREATE VIEW to migrep INDENTIFIED BY migrep;
    ALTER USER migrep QUOTA UNLIMITED to users;
    
  9. 図5-3に示すように、migrepユーザーとしてデータベースに接続し、移行リポジトリとユーザーを関連付けます。

    図5-3 ユーザーと移行リポジトリの関連付け

    ユーザーと移行リポジトリの関連付け
  10. 図5-4に示すように、Sybaseデータベース(この例ではsimpledemo12c)への接続を作成します。

    図5-4 Sybaseデータベースへの接続の作成

    Sybaseデータベースへの接続の作成

注意:

移行プロセスには、取得、変換、生成およびデータ移動の4つのフェーズがあります。ベスト・プラクティスとして、移行プロセスの各フェーズを完了し、「サマリー」ページで問題を確認してから、次のフェーズに進みます。移行ウィザードでは、各手順を順番に完了したらウィザードに戻り、次の手順を完了することができます。このためには、各フェーズの完了後に「サマリー・ページに進む」チェック・ボックスを選択して、「次へ」をクリックします。

移行の取得

次の手順を実行して、移行を取得します。

  1. 図5-5に示すように、simpledemo12c Sybaseデータベースを右クリックして、「Oracleへの移行」オプションを選択します。

    図5-5 移行プロセスの取得フェーズの開始

    移行プロセスの取得フェーズの開始

    図5-6に示すように、移行ウィザードが開きます。

    「次へ」をクリックします。

    図5-6 移行ウィザードの「概要」画面

    移行ウィザードの「概要」画面
  2. 図5-7に示すように、「移行リポジトリ」を選択します。

    「次へ」をクリックします。

    図5-7 「移行リポジトリ」の選択

    「移行リポジトリ」の選択
  3. 図5-8に示すように、プロジェクト名を入力して、ファイルを置く出力ディレクトリを指定します。

    「次へ」をクリックします。

    図5-8 プロジェクト名と出力ディレクトリの指定

    プロジェクト名と出力ディレクトリの指定
  4. 図5-9に示すように、データベース接続とモードを選択します。

    「次へ」をクリックします。

    図5-9 データベース接続とモードの選択

    データベース接続とモードの選択
  5. データベース(この場合はsimpledemo12c)を選択します。選択するには、図5-10に示すように、データベースを「使用可能なデータベース」から「選択したデータベース」に移動します。

    「サマリー・ページに進む」をクリックして、移行プロセスの次のフェーズに進む前に取得フェーズを確認します。

    「次へ」をクリックします。

    図5-10 移行するデータベースの選択

    移行するデータベースの選択

取得フェーズでは、この時点で選択したデータベースのスナップショットを保存します。実際の表データではなく、オブジェクト定義のみが取得されます。この取得したスナップショットは、「移行プロジェクト」ナビゲータで表示できます。

スナップショットはデータベースへの接続ではありませんが、これを使用すると、移行リポジトリに保存された情報を通じて参照のみを行うことができることに注意してください。

移行の変換

変換フェーズを開始する前に、移行プリファレンスを設定する必要があります。それには、次の手順を実行します。

  • 「ツール」メニューから、「プリファレンス」「移行」「トランスレータ」の順に選択します。図5-11に示すように、「複合トリガーの生成」オプションを選択します。

    図5-11 移行プリファレンスの設定

    移行プリファレンスの設定
  • 「ツール」メニューから、「プリファレンス」「移行」「生成オプション」の順に選択します。図5-12に示すように、「移行時にOracle Database 12cの機能をすべて使用」オプションを選択します。

    図5-12 移行プリファレンスの設定

    移行プリファレンスの設定

次の手順を実行して、移行プロセスの変換フェーズを開始します。

  1. 図5-13に示すように、取得モデル・ノードを右クリックして、「変換」を選択します。

    図5-13 移行プロセスの変換フェーズの開始

    移行プロセスの変換フェーズの開始

    図5-14に示すように、移行ウィザードが変換フェーズで開きます。

    図5-14 移行されたデータの変換

    移行されたデータの変換
  2. 「サマリー・ページに進む」を選択して、「次へ」をクリックします。

  3. 「終了」をクリックします。

変換フェーズ中に、オブジェクト名は有効なOracle名に解決されます。データ型は、Oracle Database型に変換され、T-SQL定義オブジェクト(ストアド・プロシージャ、ビューなど)は、Oracle PL/SQLに変換されます。変換されたモデルが作成され、「移行プロジェクト」ナビゲータで参照できます。変換されたプロシージャは、変換されたモデルで確認できます。

変換されたモデルは、実際のOracle Databaseではありませんが、Oracle Databaseのプロトタイプになることに注意してください。情報は、引き続き、移行リポジトリ表にのみ格納されます。

移行の生成

移行生成フェーズでは、ターゲットのOracle Databaseにオブジェクトが作成されます。スクリプトが作成され、選択したOracle接続に対して次の2つの方法で実行されます。

  • オフライン・モードでは、スクリプトはSQLワークシートで開き、接続を選択して手動で実行する必要があります。

  • オンライン・モードでは、ウィザードでターゲットの接続を指定する必要があります。ウィザードにより、スクリプトは自動で実行されます。

次の手順では、オフライン・モードでの移行プロセスの生成フェーズの実行方法を示します。

  1. 「移行プロジェクト」パネルで「変換されたデータベース・オブジェクト」を右クリックし、「ターゲットの生成」を選択します。

  2. 図5-15に示すように、移行ウィザードのデータベース・モードに「オフライン」を選択します。

    「次へ」をクリックします。

    図5-15 データベース・モードの選択

    データベース・モードの選択
  3. 図5-16に示すように、ターゲットのOracle Databaseで接続を選択します。

    図5-16 ターゲット・ユーザーdbo_simpledemo12cのOracle Database接続の作成

    ターゲット・ユーザーのOracle Database接続の作成

    この手順で選択した接続に、データベース・オブジェクトは作成されません。ただし、この接続には、他のユーザーやオブジェクトを作成する十分な権限が必要です

ターゲットのOracleユーザーの作成

図5-17に示すように、新規作成したユーザー(手順3で説明)への接続を作成します。この時点で、Sybaseデータベース・オブジェクトはOracle Databaseに移行されますが、データは移行されていません。

図5-17 Oracleユーザーの対象指定

周囲のテキストは図5-17の説明です。

データの移動

次の手順を実行して、データをOracle Databaseに移動します。

  1. 図5-18に示すように、「変換されたデータベース・オブジェクト」ノードを右クリックして、「データの移動」を選択します。

    「次へ」をクリックします。

    図5-18 SybaseデータベースからOracle Databaseへのデータの移動

    SybaseデータベースからOracle Databaseへのデータの移動
  2. 「データの移動」画面で、データ移動モードに「オンライン」を選択します。

    移行プロセスに大容量のデータが含まれる場合は、データ移動モードに「オフライン」を選択できます。

  3. 「次へ」をクリックします。「サマリー」画面が表示されます。

  4. 「終了」をクリックします。

    データベース・オブジェクトを参照して、データがOracle Databaseに移動していることを確認できます。

    詳細は、『Oracle SQL Developerユーザーズ・ガイド』を参照してください。

移行レポートの生成

Oracle SQL Developerは、移行プロセスに関するレポートを多数用意しており、解決するタスクと問題の特定に役立ちます。「移行プロジェクト」ナビゲータで、移行したプロジェクトをクリックまたはダブルクリックします。図5-19に示すように、複数のタブや子レポートを含むレポートが右パネルに表示されます。

図5-19 移行レポートの生成

移行レポートの生成

図5-20に示すように、分析レポートには、移行したデータベースのサイズ(オブジェクトの数、行サイズなど)に関する情報が表示されます。

図5-20 移行分析レポート

移行分析レポート

ターゲット・ステータス・レポートには、ターゲット・データベースでの移行済オブジェクトのステータスに関する情報が表示されます。最初に、十分な権限を持つターゲット接続を選択し、他のスキーマ・オブジェクトのステータスを表示してから「リフレッシュ」を選択します。変換されたモデルにあるオブジェクトでも、ターゲットOracle Databaseにないオブジェクトは、欠落したものとしてリスト表示されます。これらのオブジェクトは有効または無効のいずれかになります。

図5-21 ターゲット・ステータス・レポート

ターゲット・ステータス・レポート

「データ品質」タブには、ソース・データベースと比較した、ターゲットOracle Databaseの行数に関する情報が表示されます。次の手順を実行して、データベースを比較します。

  1. 変換したモデル、ソース接続およびターゲット接続を選択します。

  2. 分析をクリックします。

  3. 「リフレッシュ」をクリックします。

    ソース・データベースとターゲット・データベースの各表に対してcount(*)ファンクションが実行されます。そのため、本番データに対してこの操作を実行しないようにしてください。