Oracle Databaseクライアントまたはサーバー・ソフトウェアをアップグレードする場合のアプリケーションの互換性規則
Oracle Databaseクライアントまたはサーバー・ソフトウェアのアップグレード時に、互換性規則が適用されます。
互換性規則は、実行するソフトウェア・アップグレードのタイプおよびクライアント/サーバー構成のタイプに基づきます。
ノート:
この項では、「ソフトウェアのアップグレードおよびクライアントとサーバー構成」で説明する用語を使用しています。
- Oracle Databaseサーバー・ソフトウェアのアップグレードに対する規則
Oracle Databaseのサーバー・ソフトウェアのアップグレード時には、データベース環境に応じて様々な規則が適用されます。 - Oracle Databaseクライアント・ソフトウェアのアップグレード
サーバー・ソフトウェアとクライアント・ソフトウェアのリリース番号を同じにしておくと、アプリケーションの最大の安定性を得ることができます。
Oracle Databaseサーバー・ソフトウェアのアップグレードに対する規則
Oracle Databaseのサーバー・ソフトウェアのアップグレード時には、データベース環境に応じて様々な規則が適用されます。
- クライアント環境を変更しない場合、再リンクは不要
アップグレード後にアプリケーションを再リンクする必要があるかどうかを判断するには、これらのシナリオを参照してください。 - Oracle Databaseサーバーの新/旧リリースでアプリケーションの実行が可能
データベース・サーバーに対してプリコンパイラまたはOCIアプリケーションを実行する場合、クライアント・ソフトウェア・リリース以上のリリースのデータベース・サーバー・ソフトウェアを使用することをお薦めします。
クライアント環境を変更しない場合、再リンクは不要
アップグレード後にアプリケーションを再リンクする必要があるかどうかを判断するには、これらのシナリオを参照してください。
クライアントとサーバーが異なるコンピュータにあるか、または同じコンピュータの異なるOracleホーム・ディレクトリにあるときに、クライアント・ソフトウェアを変更しないでOracle Databaseサーバー・ソフトウェアをアップグレードする場合は、アプリケーションをプリコンパイル、コンパイルまたは再リンクする必要はありません。
この一連のシナリオでは、Oracle Databaseを使用するクライアント・ソフトウェアは、サーバー・ソフトウェアとは異なる場所にあり、クライアント・ソフトウェアはアップグレードの直接の影響を受けずに動作し続けます。
ただし、アプリケーションがOracle Databaseサーバーと同じOracleホームを使用している場合は、サーバーをアップグレードするとクライアント・ソフトウェアもアップグレードされます。この場合、Oracle Databaseクライアント・ソフトウェアのアップグレードの規則に従う必要があります。
ノート:
両方のバイナリで同じOracleホームを使用している場合、新しいプリコンパイラまたはOCIクライアント・ソフトウェアはインストールせずに、Oracle Databaseサーバー・ソフトウェアをアップグレードできます。この場合、クライアント・ソフトウェアはアップグレードされません。ただし、この構成はお薦めしません。
Oracle Databaseサーバーの新/旧リリースでアプリケーションの実行が可能
データベース・サーバーに対してプリコンパイラまたはOCIアプリケーションを実行する場合、クライアント・ソフトウェア・リリース以上のリリースのデータベース・サーバー・ソフトウェアを使用することをお薦めします。
この推奨構成は、厳密に必要とされるものではありません。
たとえば、クライアント・ソフトウェアがOracle 12cリリース2 (12.2.0.1)の場合に、サーバーに対してクライアント上でプリコンパイラ・アプリケーションを実行する場合、そのサーバー・ソフトウェアはOracle 12cリリース2 (12.2)以降であることをお薦めします。
Oracle Databaseクライアント・ソフトウェアのアップグレード
サーバー・ソフトウェアとクライアント・ソフトウェアのリリース番号を同じにしておくと、アプリケーションの最大の安定性を得ることができます。
この情報を使用して、Oracle Databaseクライアントのインストールを計画してください。アプリケーションのリンク方法に応じて、Oracle Databaseのクライアント・ソフトウェアのアップグレード時に適用される規則が異なります。
ご使用のクライアント・ソフトウェアをアップグレードして、現行のサーバー・ソフトウェアと一致させることをお薦めします。たとえば、サーバーをOracle Database 18cにアップグレードする場合、クライアント・ソフトウェアもOracle Database 18cにアップグレードすることをお薦めします。最新のOracle Databaseクライアント・ソフトウェアでは、現行のOracle Databaseクライアント・リリースでのみ使用できる追加機能やパフォーマンス向上が提供される場合があります。
- アプリケーションと新しいライブラリとのリンクについて
プリコンパイラ・アプリケーションおよびOCIによって生成されたコードを、サーバー・リリース以上のリリースのクライアント・ライブラリにリンクできます。 - 静的にリンクされたアプリケーションを常に再リンクさせる必要がある
静的にリンクされたコードは、アップグレードされたORACLE_HOMEのエラー・メッセージと非互換になる可能性があります。 - 動的にリンクされたアプリケーションの再リンクについて
Oracle Database 10gリリース1 (10.1)以上のリリースから動的にリンクされたOCIアプリケーションは、現行のリリースと上位互換性があります。
アプリケーションと新しいライブラリとのリンクについて
プリコンパイラ・アプリケーションおよびOCIによって生成されたコードを、サーバー・リリース以上のリリースのクライアント・ライブラリにリンクできます。
OCIアプリケーションを、アプリケーションの開発に使用されたOCIライブラリのリリース以上のリリースのOCIランタイム・ライブラリとリンクできます。
静的にリンクされたアプリケーションを常に再リンクさせる必要がある
静的にリンクされたコードは、アップグレードされたORACLE_HOMEのエラー・メッセージと非互換になる可能性があります。
静的にリンクされたOCIアプリケーションは、メジャー・リリースとマイナー・リリースの両方で再リンクする必要があります。静的にリンクされたOracleクライアントサイド・ライブラリ・コードは、アップグレードされたORACLE_HOMEのエラー・メッセージと非互換になる可能性があります。たとえば、エラー・メッセージが追加パラメータで更新されると、それは静的にリンクされたコードとは非互換になります。
動的にリンクされたアプリケーションの再リンクについて
Oracle Database 10gリリース1 (10.1)以上のリリースから動的にリンクされたOCIアプリケーションは、現行のリリースと上位互換性があります。
Oracleクライアントサイド動的ライブラリは、そのライブラリの前のバージョンと上位互換性があります。Oracle Universal Installerによって前のバージョンのライブラリへのシンボリック・リンクが作成され、このシンボリック・リンクが現行バージョンのライブラリに解決されます。したがって、前のバージョンのOracleクライアントサイド動的ライブラリと動的にリンクされたアプリケーションは、現行バージョンのOracleクライアントサイド・ライブラリと再リンクしなくても動作します。
ノート:
アプリケーションがランタイム・ライブラリの検索パス(Linuxでの-rpath
など)にリンクされていると、リンクされているバージョンのOracleクライアントサイド・ライブラリを使用して引き続き実行される場合があります。現行バージョンのOracleクライアントサイド・ライブラリを使用して実行するには、アプリケーションを再リンクする必要があります。
アプリケーションが遅延オプション(静的にリンクされているアプリケーションなど)にリンクされている場合は、再リンクする必要があります。
Oracle Database 10gリリース1 (10.1)より前のリリースのアプリケーションを使用している場合は、再リンクする必要があります。