ヘッダーをスキップ

Oracle Database アップグレード・ガイド
11g リリース1(11.1)

E05758-02
目次
目次
索引
索引

戻る 次へ

5 アプリケーションのアップグレード

この章では、ご使用のアプリケーションのアップグレードについて説明します。この章では、次の項目について説明します。

アプリケーションのアップグレードの概要

Oracle Database 11gリリース1(11.1)で使用可能になった機能を使用しない既存のアプリケーションは、変更する必要がありません。 新しいOracle Database 11gリリース1(11.1)のデータベースで実行される既存のアプリケーションは以前のリリースと同様に機能し、同等以上のパフォーマンスを得ることができます。

Oracle Database 11gリリース1(11.1)にアップグレードすると、多くの新機能および拡張機能を使用できます。機能やファンクションが追加された機能がある一方、パフォーマンスが向上した機能もあります。アプリケーションをアップグレードする前に、これらの新機能を確認して、どの機能を使用するかを判断する必要があります。

参照:

Oracle Database 11gリリース1(11.1)で使用可能な機能については、『Oracle Database新機能ガイド』を参照してください。 

アプリケーションの互換性の問題

Oracle Databaseの異なるリリース間には、アプリケーションに影響を与えかねない互換性の問題がある場合があります。 これらの互換性の問題は、Oracle Databaseの様々なリリースにおける相違によるものです。 また、Oracle Databaseのリリースが新しくなるたびに、Oracleの新しい予約語が追加され、初期化パラメータおよびデータ・ディクショナリが変更されている場合があります。

Oracle Databaseソフトウェアを新しいリリースにアップグレードする場合は、アプリケーションでOracleの予約語が使用されていないか、アプリケーションにデータベースの初期化パラメータとの互換性があるか、アプリケーションにデータベースのデータ・ディクショナリとの互換性があるかを確認してください。 新しいリリースのOracle Databaseソフトウェアでは、特定のリリースのオペレーティング・システムまたは特定のパッチ・セットの適用が必要な場合があります。

参照:

  • 初期化パラメータおよびデータ・ディクショナリの変更の詳細は、付録A「動作の変更点」を参照してください。

  • Oracleの予約語の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

  • オペレーティング・システムの要件の詳細は、ご使用のオペレーティング・システム固有のOracleマニュアルを参照してください。

 

Net8およびOracle Net Servicesは、様々なリリースのOracle Databaseで動作します。 そのため、Oracle8i、Oracle9i、Oracle Database 10gおよびOracle Database 11gリリース1(11.1)では、Net8およびOracle Net Servicesを使用して通信できます。

プリコンパイラおよびOCIアプリケーションのアップグレード

プリコンパイラとOCIアプリケーションのアップグレード・パスは似ています。この項では、これらのアプリケーションのアップグレード選択肢について説明します。また、必要に応じてプリコンパイラとOCIアプリケーションの違いを注記します。

本番環境をアップグレードする前に、テスト環境を作成します。 テスト環境には、アップグレードされたアプリケーションおよび新しいOracle Databaseソフトウェアが必要です。また、テスト環境では、アプリケーションの現実的なテストを行う必要があります。

参照:

これらのプログラミング環境の使用方法の詳細は、『Pro*C/C++プログラマーズ・ガイド』、『Pro*COBOLプログラマーズ・ガイド』および『Oracle Call Interfaceプログラマーズ・ガイド』を参照してください。 

ソフトウェアのアップグレードおよびクライアント/サーバー構成の理解

プリコンパイラおよびOCIアプリケーションのアップグレード選択肢を理解するには、まず、実行するソフトウェアのアップグレード・タイプおよびクライアント/サーバー構成を理解する必要があります。

ソフトウェアのアップグレード・タイプ

Oracle Databaseのクライアントおよびサーバー・ソフトウェアに対して、次の2つのタイプのアップグレードを行うことができます。

データベースのメジャー・リリースのアップグレード

このアップグレードでは、リリース番号の最初の数字が変更されます。たとえば、Oracle9iからOracle Database 11gリリース1(11.1)へのアップグレードは、データベースのメジャー・リリースのアップグレードです。

データベースのメンテナンス・リリースのアップグレード

このアップグレードは、リリース番号の2番目の数字を変更します。 たとえば、Oracle Database 10gリリース1(10.1)からOracle Database 10gリリース2(10.2)へのアップグレードは、データベースのメンテナンス・リリースのアップグレードです。


注意:

Oracle9iリリース2(9.2)以上では、リリース番号の2番目の数字が変更されて、Oracle Databaseソフトウェアのメンテナンス・リリースが示されます。以前のリリースでは、3番目の数字がメンテナンス・リリースを表していました。 


使用可能なクライアント/サーバー構成

プリコンパイラおよびOCIアプリケーションはクライアント/サーバー環境のクライアントで実行されます。この環境では、Oracle Databaseサーバーがサーバーです。ご使用の環境で、次の1つ以上のクライアント/サーバー構成を使用できます。

異なるコンピュータ

クライアント・ソフトウェアおよびサーバー・ソフトウェアが異なるコンピュータにあり、それぞれがネットワークで接続されています。クライアント環境とサーバー環境は独立しています。

同じコンピュータ上の異なるOracleホーム・ディレクトリ

クライアント・ソフトウェアおよびサーバー・ソフトウェアは同じコンピュータ上にありますが、異なるOracleホーム・ディレクトリにインストールされています。クライアント環境とサーバー環境は独立しています。

同じOracleホーム

クライアント・ソフトウェアおよびサーバー・ソフトウェアが同じコンピュータ上の同じOracleホームにインストールされています。この場合、サーバー・ソフトウェアをアップグレードすると、クライアント・ソフトウェアもアップグレードされます。

参照:

クライアント/サーバー環境の詳細は、『Oracle Database概要』および『Oracle Database Heterogeneous Connectivity管理者ガイド』を参照してください。 

クライアント/サーバー・ソフトウェアをアップグレードする場合のアプリケーションの互換性規則

この項では、Oracle Databaseクライアント・ソフトウェアまたはOracle Databaseサーバー・ソフトウェアをアップグレードする場合に適用される、互換性規則について説明します。この規則は、実行するソフトウェア・アップグレードのタイプおよびご使用のクライアント/サーバー構成に基づきます。

この項では、次のようなアップグレードの互換性規則について説明します。

Oracle Databaseサーバー・ソフトウェアのアップグレード

次の規則は、Oracle Databaseサーバー・ソフトウェアをアップグレードする場合に適用されます。

クライアント環境を変更しない場合、再リンクは不要

クライアントとサーバーが異なるコンピュータにあるか、または同じコンピュータの異なるOracleホーム・ディレクトリにあるときに、クライアント・ソフトウェアを変更しないでOracle Databaseサーバー・ソフトウェアをアップグレードする場合は、アプリケーションをプリコンパイル、コンパイルまたは再リンクする必要はありません。このような場合、クライアント・ソフトウェアはサーバー・ソフトウェアから独立しており、サーバーに対し継続して機能します。

ただし、アプリケーションがOracle Databaseサーバーと同じOracleホームを使用している場合は、サーバー・ソフトウェアをアップグレードするとクライアント・ソフトウェアもアップグレードされます。この場合、「Oracle Databaseクライアント・ソフトウェアのアップグレード」の規則に従う必要があります。


注意:

Oracle Databaseサーバー・ソフトウェアと、プリコンパイラまたはOCIクライアント・ソフトウェア用に同じOracleホームを使用している場合、新しいプリコンパイラまたはOCIクライアント・ソフトウェアはインストールしないで、サーバー・ソフトウェアをアップグレードすることができます。この場合、クライアント・ソフトウェアはアップグレードされません。ただし、このような構成はお薦めしません。 


Oracle Databaseサーバーの新/旧リリースでアプリケーションの実行が可能

データベース・サーバーに対してプリコンパイラまたはOCIアプリケーションを実行する場合、データベースのサーバー・ソフトウェアのリリースをクライアント・ソフトウェアのリリース以上にすることをお薦めします。ただし、これは必須ではありません。たとえば、クライアント・ソフトウェアがOracle9iリリース2(9.2.0)の場合は、サーバー・ソフトウェアをOracle9iリリース2(9.2.0)以上にして、クライアントのプリコンパイラ・アプリケーションをサーバーに対して実行することをお薦めします。

Oracle Databaseクライアント・ソフトウェアのアップグレード

ご使用のクライアント・ソフトウェアをアップグレードして、現行のサーバー・ソフトウェアと一致させることをお薦めします。 たとえば、サーバーをOracle Database 11gリリース1(11.1)にアップグレードする場合は、クライアント・ソフトウェアもOracle Database 11gリリース1(11.1)にアップグレードすることをお薦めします。サーバー・ソフトウェアとクライアント・ソフトウェアのリリース番号を同じにしておくと、アプリケーションの最大の安定性を得ることができます。 また、最新のOracle Databaseクライアント・ソフトウェアには、それまでのリリースにはなかった機能が追加されていたり、パフォーマンスが向上している可能性があります。

次の規則は、Oracle Databaseクライアント・ソフトウェアをアップグレードする場合に適用されます。

アプリケーションは、より新しいライブラリにリンクできる

プリコンパイラ・アプリケーションによって生成されたコードは、サーバーのリリース以上のクライアント・ライブラリのリリースにリンクできます。

OCIアプリケーションは、そのアプリケーションが開発されたOCIライブラリのバージョン以上のOCIランタイム・ライブラリのバージョンとリンクできます。

静的にリンクされたアプリケーションを常に再リンクさせる必要がある

静的にリンクされたOCIアプリケーションは、メジャー・リリースおよびマイナー・リリースの両方に再リンクさせる必要があります。静的にリンクされたOracleのクライアントサイド・ライブラリのコードは、アップグレードしたORACLE_HOMEでは、エラー・メッセージとの互換性が失われている可能性があるためです。たとえば、エラー・メッセージにパラメータが追加される更新があった場合、このエラー・メッセージは、静的にリンクされたコードとは非互換になります。

動的にリンクされたアプリケーションはメジャー・リリースへのアップグレード時の再リンクは不要

10g以上のリリースの動的にリンクされたOCIアプリケーションでは、現行のリリースとの完全な互換性が保たれます。つまり、Oracleのクライアントサイド動的ライブラリには、前のバージョンのライブラリとの上位互換性があります。旧バージョンのライブラリへのシンボリック・リンクがOracle Installerによって作成され、このシンボリック・リンクが現行バージョンのライブラリに解決されます。したがって、前のバージョンのOracleクライアントサイド動的ライブラリと動的にリンクされたアプリケーションは、現行バージョンのOracleクライアントサイド・ライブラリと再リンクしなくても動作します。


注意:

アプリケーションがランタイム・ライブラリの検索パス(Linuxでの-rpathなど)にリンクされていると、リンクされているバージョンのOracleクライアントサイド・ライブラリを使用して引き続き実行される場合があります。現行バージョンのOracleクライアントサイド・ライブラリを使用して実行するには、アプリケーションを再リンクする必要があります。

アプリケーションが遅延オプション(静的にリンクされているアプリケーションなど)にリンクされている場合は、再リンクする必要があります。 


プリコンパイラおよびOCIアプリケーションのアップグレード選択肢

プリコンパイラおよびOCIアプリケーションをアップグレードする場合は、次の選択肢があります。

これらの選択肢は、難易度が高く、考えられるメリットが大きくなる順序に記述されています。つまり、選択肢1は最も簡単ですが、考えられるメリットは最も小さくなります。選択肢3は最も難しい方法ですが、考えられるメリットは最も大きくなります。これらの選択肢については次の項で説明します。

選択肢1: アプリケーションを変更しない

この選択肢では、アプリケーションのOracleホーム環境をアップグレードしないでください。 アプリケーションは変更しなくても、新しいOracle Database 11gリリース1(11.1)サーバーで引き続き使用できます。この選択肢の主なメリットは、単純で簡単であることです。さらに、この選択肢では、クライアント・コンピュータをアップグレードする必要がないため、管理の必要性が最も少なくなります。多くのクライアント・コンピュータがある場合は、すべてのコンピュータのアップグレードに費やす管理コストを削減することが大変重要になります。

この選択肢の主なデメリットは、Oracle Database 11gリリース1(11.1)で使用可能な機能をアプリケーションで使用できないことです。 また、期待できるOracle Database 11gリリース1(11.1)のパフォーマンス上のメリットをアプリケーションで活用することができません。

選択肢2: 新しいソフトウェアを使用してアプリケーションをプリコンパイルまたはコンパイルする

メンテナンス・リリースからOracle Database 11gリリース1(11.1)ソフトウェアにアップグレードする場合は、APIが非推奨になったか変更されたために必要になったコードの変更を行った後、新しいソフトウェアを使用してアプリケーションをプリコンパイルまたはコンパイルする必要があります。 ただし、Oracle Database 11gソフトウェア内のマイナー・リリースにアップグレードする場合は、再コンパイルを行う必要はありません。

この選択肢では、各クライアント・コンピュータに新しいOracle Databaseクライアント・ソフトウェアをインストールする必要があります。ただし、クライアントの数にかかわらず、必要なアプリケーションのプリコンパイルまたはコンパイルおよび再リンクは1回のみです。これは大きなメリットです。

再コンパイルすることによって、アプリケーション・コードの構文チェックを実行します。新しいOracleソフトウェアを使用してプリコンパイルまたはコンパイルすると、Oracleソフトウェアの以前のリリースでは検出されなかったアプリケーション・コードのいくつかの問題が、検出される場合があります。したがって、新しいソフトウェアを使用したプリコンパイルまたはコンパイルは、以前に検出されなかった可能性があるアプリケーション・コードの問題の検出および解決に役立ちます。

また、アプリケーションは新しいOracleソフトウェアで動作するため、再コンパイルすることによって、アプリケーションの最大の安定性を得ることができます。さらに、使用可能な最新のツール製品および機能を使用して、ご使用の環境で新しい開発を行うことができます。さらに、再コンパイルおよび再リンクの実行後のみ、新しいOracleソフトウェアで得られるパフォーマンスの向上を得ることができます。

選択肢3: アプリケーション・コードを変更して、Oracle Database 11gリリース1(11.1)の新機能を使用する

アプリケーションのコードを変更することで、Oracle Database 11gリリース1(11.1)の新機能を利用できます。この選択肢は最も難しい方法ですが、考えられるメリットも最大です。 この選択肢では、選択肢2で説明したすべてのメリットを得ることができます。さらに、アプリケーションを変更することにより、Oracle Database 11gリリース1(11.1)で得られるパフォーマンスおよびスケーラビリティのメリットを活用できます。 さらに、Oracle Database 11gリリース1(11.1)でのみ使用できる新機能を、アプリケーションに追加できます。

『Oracle Database新機能ガイド』を参照して、Oracle Database 11gリリース1(11.1)の新機能を理解してください。使用する機能の実装方法については、ご使用の開発環境のOracleマニュアルを参照してください。 プリコンパイラの詳細は、『Pro*C/C++プログラマーズ・ガイド』および『Pro*COBOLプログラマーズ・ガイド』を参照してください。OCIの詳細は、『Oracle Call Interfaceプログラマーズ・ガイド』を参照してください。

使用する新機能を決定したら、アプリケーションのコードを変更して、これらの機能を使用できるようにします。ご使用の開発環境に基づいて、次の項の該当する指示に従ってください。

プリコンパイラ・アプリケーションの変更

プリコンパイラ・アプリケーションを変更してOracle Database 11gリリース1(11.1)の機能を使用できるようにするには、次の手順を実行します。

  1. Oracle Database 11gリリース1(11.1)の新機能を利用する場合は、それらの新機能のコードを既存のアプリケーションに取り込みます。

  2. Oracleプリコンパイラを使用して、アプリケーションをプリコンパイルします。

  3. アプリケーションをコンパイルします。

  4. プリコンパイラに付属するOracle Database 11gリリース1(11.1)のランタイム・ライブラリ(SQLLIB)を、アプリケーションと再リンクさせます。

OCIアプリケーションの変更

OCIアプリケーションを変更してOracle Database 11gリリース1(11.1)の機能を使用できるようにするには、次の手順を実行します。

  1. 新しいOracle Database 11gリリース1(11.1)のOCIコールを既存のアプリケーションに取り込みます。

  2. アプリケーションをコンパイルします。

  3. アプリケーションをOracle Database 11gリリース1(11.1)のランタイム・ライブラリと再リンクさせます。

SQL*PlusスクリプトおよびPL/SQLのアップグレード

Oracle Database 11gリリース1(11.1)の新機能およびファンクションを使用するには、Oracle Database 11gリリース1(11.1)の新しい構文を使用するように既存のSQLスクリプトを変更します。 Oracle Database 11gリリース1(11.1)の新機能およびファンクションを使用しない場合は、既存のSQLスクリプトをそのままOracle Database 11gリリース1(11.1)で実行できるため、変更は不要です。

ただし、Oracle Database 11gリリース1(11.1)ではエラー確認機能が強化されているため、実行時ではなくコンパイル時にエラーを識別できる場合があります。

数値リテラルの評価

数値リテラルの評価方法が変更され、リテラルを使用する数値計算の場合は、定数の1つ以上で小数第1位に小数点を指定することが必要になりました。 これは、Oracle Database 10gリリース1(10.1)以上のリリースのOracle Databaseでは一部の式でINTEGER演算(有効桁は約9桁)が使用されますが、Oracle9iリリース2ではNUMBER演算(有効桁数は約38桁)が使用されるためです。

したがって、有効桁数が9桁を超える計算結果を扱う場合、数値オーバーフローのエラーを回避するには、リテラルのうち1つが小数形式であることが必要です。たとえば、リリース10gでは、次に示す例のv1の計算で数値オーバーフローのエラーが発生します。

DECLARE
  v1 NUMBER(38);
BEGIN
  v1 := 256*256*256*256;
  DBMS_OUTPUT.PUT_LINE(v1);
END;
/

エラーが発生しないようにするには、数値リテラルの1つを次のように小数(256.0)として指定します。

DECLARE
  v1 NUMBER(38);
BEGIN
  v1 := 256*256*256*256.0;
  DBMS_OUTPUT.PUT_LINE(v1);
END;
/

参照:

  • SQL*Plusの新機能の詳細は、『SQL*Plusユーザーズ・ガイドおよびリファレンス』の新機能に関する項を参照してください。

  • SQLスクリプトのアップグレードの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

 

Oracle FormsまたはOracle Developerアプリケーションのアップグレード

Formsアプリケーションは、Oracle9i、Oracle Database 10gおよびOracle Database 11gリリース1(11.1)で同様に動作します。 ただし、『Oracle Database新機能ガイド』で説明されている新機能を確認して、Oracle Database 11gリリース1(11.1)の新機能がアプリケーションに有効か、アプリケーションに影響を与えるかを判断してください。 Oracle Database 11gリリース1(11.1)の機能がFormsおよびDeveloperアプリケーションとどのように相互作用するかについては、Oracle Developerのドキュメント・セットを参照してください。また、オペレーティング・システムのOracle Developerドキュメントには、ご使用のFormsまたはDeveloperアプリケーションのアップグレード方法が記述されています。


注意:

Oracle Developerの新しいリリースでは、Oracle Developer固有の新しい予約語が導入されている場合があります。アプリケーションがこれらの予約語を使用している場合は、コードを変更する必要があります。 



戻る 次へ
Oracle
Copyright © 2008 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引