Oracle Databaseの互換性の概要

新しい機能に以前のリリースとの互換性がない場合、データベースの互換性が問題の原因であることがあります。

異なるリリースのOracle Databaseソフトウェアで同じ機能がサポートされており、その機能が同様に動作する場合は、リリースが異なってもデータベースには互換性があります。新しいリリースのOracle Databaseへアップグレードする場合、一部の新機能が原因で以前のリリースとの互換性が失われることがあります。

アップグレードしたデータベースで以前のリリースとの互換性が失われるのは、次の場合です。

  • 新機能によってディスクに格納されるデータ(データ・ディクショナリの変更を含む)が、以前のリリースでは処理できない場合。

  • 既存の機能の動作が、以前の環境と新しい環境とで異なる場合。

トピック:

Oracle DatabaseのCOMPATIBLE初期化パラメータ

非CDBおよびマルチテナント・アーキテクチャ・コンテナのCOMPATIBLE初期化パラメータの設定方法を確認してください。

Oracle Databaseでは、COMPATIBLE初期化パラメータを使用して、データベースの互換性を制御できます。

COMPATIBLE初期化パラメータの理解

Oracle Database 18cでは、COMPATIBLE初期化パラメータがパラメータ・ファイルで設定されていない場合、COMPATIBLEパラメータ値はデフォルトの18.0.0になります。COMPATIBLE初期化パラメータを18.0.0に設定しない場合、アップグレードしたデータベースがOracle Database 18c機能にとって必要なCOMPATIBILITY設定で実行されていないため、Oracle Database 18cの新機能を使用することはできません。

Oracle DatabaseのCOMPATIBLEパラメータが18.0.0に増加されると、データベースに対する最初のJavaコールによって、名前変換操作が開始されます。この操作は、完了するまでに数分間かかることがあります。互換性パラメータを増加した後に、データベースに対して最初のJavaコールが行われるときは、この遅延を予期しておく必要があります。名前変換を実行する際のこの初期遅延は、最初のJavaコール中にのみ発生します。

ノート:

  • Oracle Database 18cにアップグレードする前に、COMPATIBLE初期化パラメータをOracle Database 18cの最小設定である11.2.0以上に設定する必要があります。

  • COMPATIBLEパラメータは、ピリオドで区切られた3つ以上の10進数である必要があります。次に例を示します。

    SQL> ALTER SYSTEM SET COMPATIBLE = '12.1.0.2' SCOPE=SPFILE;
  • COMPATIBLEパラメータの増加は、アップグレードしたデータベースを完全にテストした後にのみ行うことをお薦めします。

  • COMPATIBLEパラメータを増やした後に、データベースはダウングレードできません。

注意:

Oracle Databaseリリース11.2からアップグレードする場合、COMPATIBLEの値を11.2.0以上に設定する必要があります。これは、アップグレード時に行う必要があります。COMPATIBLE初期化パラメータ値を増加した後に以前の互換性レベルにダウングレードすることはできないため、アップグレードの準備が完了するまで、この変更は行わないでください。

参照:

初期化パラメータの管理の詳細は、『Oracle Database管理者ガイド』を参照してください

マルチテナント・アーキテクチャでのCOMPATIBLEパラメータ設定のルール

コンテナ・データベース(CDB)のCOMPATIBLEパラメータは、そのコンテナ・データベースに接続されているプラガブル・データベース(PDB)のCOMPATIBLEパラメータ設定に影響します。PDBをCDBに接続したときに発生する次のシナリオを確認してください。

  • PDBのCOMPATIBLECDB$ROOT COMPATIBLEパラメータの設定と同じ。

    結果: PDB COMPATIBLEパラメータ設定への変更はありません。

  • PDB COMPATIBLECDB$ROOT COMPATIBLEパラメータ設定より低い。

    結果: PDB COMPATIBLEパラメータはCDB$ROOTと同じCOMPATIBLEパラメータ設定に、自動的に増やされます。PDBに接続した後では、以前のリリースにPDBをダウングレードできません。

  • PDB COMPATIBLECDB$ROOT COMPATIBLEパラメータ設定より高い。

    結果: PDBを接続できません。CDB$ROOTと同等以上のCOMPATIBLEパラメータを持つPDBだけが、CDBに接続できます。

Oracle DatabaseのCOMPATIBLE初期化パラメータの値

参照して、COMPATIBLE初期化パラメータのデフォルト値、最小値および最大値を見つけてください。

次の表に、Oracle Database 18cおよびOracle Database 18cへのアップグレードがサポートされている各リリースでのCOMPATIBLEのデフォルト値、最小値および最大値を示します。

表1-2 COMPATIBLE初期化パラメータ

Oracle Databaseのリリース デフォルト値 最小値 最大値
Oracle Database 18c

18.0.0

11.2.0

CDBまたは非CDBインスタンスの場合、RUまたはRURのCOMPATIBLEパラメータを変更しないでください。

Oracle Database 12cリリース2 (12.2)

12.2.0

11.2.0

12.2.0

Oracle Database 12c リリース1(12.1)

12.0.0

11.0.0

12.1.0

Oracle Database 11gリリース2(11.2)

11.2.0

10.0.0

11.2.0

Oracle Databaseのアップグレードでのダウングレードおよび互換性について

Oracle Database 18c にアップグレードする前に、COMPATIBLE初期化パラメータを11.2.0以上に設定する必要があります。

Oracle Database 18cにアップグレード後、COMPATIBLE初期化パラメータを新しいリリースのリリース番号と一致するように設定できます。このように設定すると、新しいリリースのすべての機能を使用できますが、以前のリリースにダウングレードすることはできません。COMPATIBLE初期化パラメータがより小さい値に設定されている場合、Oracle Database 18cの機能のサブセットのみを使用できます。

ノート:

COMPATIBLEパラメータを増やすと、データベースをダウングレードできません。

Oracle DatabaseでのCOMPATIBLE初期化パラメータの動作

COMPATIBLE初期化パラメータによって、リリースの互換性に基づいてOracle Database機能を有効化または無効化できます

COMPATIBLE初期化パラメータは、次のように動作します。

  • COMPATIBLE初期化パラメータによって、機能の使用を有効化または無効化することで、既存のアプリケーションによるデータの使用を保護するために役立ちます。

    COMPATIBLE初期化パラメータを11.2.0に設定してOracle Database 12cデータベースを実行すると、データベース・ソフトウェアによって、Oracle Databaseリリース11gリリース2 (11.2)と互換性のあるデータベース構造がディスクに生成されます。Oracle Databaseのより新しいリリースに含まれる機能の使用を試み、データベースがCOMPATIBLE初期化パラメータとの互換性を失うと、エラーが発生します。ただし、Oracle Databaseリリース11gリリース2と互換性のない変更がディスクに作成されない新機能は、有効化されます。

  • 使用するCOMPATIBLE初期化パラメータ設定との互換性をデータベースが失う変更がデータベースに行われると、データベースは起動せず、初期化はエラーで終了します。この場合、COMPATIBLE初期化パラメータを、データベースに対する適切な値に設定する必要があります。

参照:

データベース構造の詳細は、『Oracle Database概要』を参照してください。

Oracle Databaseの互換性レベルの確認

このSQL問合せを使用して、データベースの互換性レベルがCOMPATIBLE初期化パラメータの値に対応しているかどうかを確認します。

SQL> SELECT name, value FROM v$parameter
         WHERE name = 'compatible';

Oracle DatabaseでのCOMPATIBLE初期化パラメータ設定のタイミング

COMPATIBLEパラメータの増加は、アップグレードしたデータベースのテストが完了した後にのみ行うことをお薦めします。

アップグレードが完了したら、COMPATIBLE初期化パラメータの設定をOracle Databaseの新リリース用に最大レベルに増やすことができます。ただし、COMPATIBLEパラメータを増やすと、後でデータベースをダウングレードできません。