ターゲット・データベースでルート・コンテナCDB$ROOT
にApplication Expressがインストールされている例(デフォルトのインストール・オプション)を理解します。
このセクションでは、ターゲット・データベースでルート・コンテナCDB$ROOT
にApplication Expressがインストールされている例(デフォルトのインストール・オプション)について説明します。接続するデータベースの元の場所、および元のデータベースでApplication Expressが構成されていた方法について、複数の例があることに注意してください。
Application Expressを含む非CDBを接続します。
以前のリリースのOracle Databaseからアップグレードする場合は、Oracle Database 12c以降の非CDB (またはスタンドアロン・データベース)にアップグレードしてから、ご使用のCDBにデータベースを接続する必要があります。また、非CDBのOracle Database 12c以降を構成済である場合は、そのデータベースをCDBに接続できます。いずれの場合も、元のデータベースは、Application Expressがインストールされており、以前はPDBではありませんでした。
ご使用のオペレーティング・システムの『Oracle Databaseインストレーション・ガイド』で説明されているとおり、スタンドアロン・データベースに接続するには、$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sqlスクリプト
を実行する必要があります。このスクリプトによって、ローカル・オブジェクトではなく、必要なメタデータ・リンク・オブジェクトが作成され、Application Expressを含む一般的なすべてのデータベース・オプションのデータベース・オブジェクトが再コンパイルされます。
Application Expressをインストールした後に、PDBにWebリスナーを構成する必要があります。
元のデータベース(現在のPDB)にインストールされているApplication Expressのバージョンが、ターゲット・データベースのルート・コンテナにインストールしたApplication Expressのバージョンと異なる場合は、PDBをオープンしようとするとエラーが発生します。
他のCDBからApplication Expressを含むPDBを接続します。
元のCDBのルート・コンテナにApplication Expressがインストールされている既存のOracle Database 12c以降からPDBをコピーまたは移動するには、PDBにWebリスナーを構成するのみで済みます。
Application Expressリリース18.1がインストールされている場合は、接続元のPDB内のAPEX_180100
スキーマにメタデータ・リンク・オブジェクトが定義済であるため、ターゲットCDB内のメタデータ・リンク・オブジェクトに対してエラーなしでコンパイルされます。
元のデータベースにインストールされているApplication Expressのバージョンが、ターゲット・データベースのルート・コンテナにインストールしたApplication Expressのバージョンと異なる場合は、PDBをオープンしようとするとエラーが発生します。
他のCDBからローカルApplication Expressを含むPDBを接続します。
Application Expressがルート・コンテナではなく、ローカルにインストールされている既存のOracle Database 12c以降からPDBをコピーまたは移動するには、PDBをエラーなしでオープンできるように次のステップを実行する必要があります。
Application Expressリリース18.1がインストールされている場合、接続元のPDB内のAPEX_180100
スキーマには、Application Expressのすべてのデータベース・オブジェクトが含まれますが、メタデータ・リンク・オブジェクトは含まれません。このため、$ORACLE_HOME/rdbms/admin/apex_to_common.sql
を実行して一般的なオブジェクトを削除し、パッケージ、ビューおよびその他に対するメタデータ・リンクを作成する必要があります。
ローカル・オブジェクトをPDBのメタデータ・リンクで置き換えるには、次のステップを実行します。
作業ディレクトリを$ORACLE_HOME/rdbms/admin
に変更します。
SQL*Plusを起動し、Application Expressがインストールされているデータベースに、SYSDBAロールが指定されているSYSとして接続します。次に例を示します。
Windowsの場合:
SYSTEM_DRIVE:\ sqlplus /nolog
SQL> CONNECT SYS as SYSDBA
Enter password: SYS_password
UNIXおよびLinuxの場合:
$ sqlplus /nolog
SQL> CONNECT SYS as SYSDBA
Enter password: SYS_password
次のように、コンテナを、構成するPDBに設定します。
ALTER SESSION SET CONTAINER = <PDB_name
>;
apex_to_common.sql
を実行します。次に例を示します。
@apex_to_common.sql
元のデータベースにインストールされているApplication Expressのバージョンが、ターゲット・データベースのルート・コンテナにインストールしたApplication Expressのバージョンと異なる場合は、PDBをオープンしようとするとエラーが発生します。
Application Expressがインストールされていない場合は非CDBまたはPDBを接続します。
非CDBを接続する場合、あるいは他のCDBからPDBをコピーまたは移動する場合に、元のデータベースまたはPDBにApplication Expressがインストールされていないと、ターゲット・データベースでPDBをオープンしようとした際にアラート・ログに警告が発生します。
この例では、元のデータベースまたは接続元のPDBに、Application Expressスキーマ(Application Expressリリース18.1ではAPEX_180100
)が存在しません。PDBを問題なくオープンして新しいPDB内でApplication Expressを実行するには、元のデータベースまたはPDBにApplication Expressをインストールしてから、ターゲット・データベースへの接続を試行する必要があります。元のデータベースまたはPDBにインストールするApplication Expressのバージョンは、ターゲット・データベースにインストールしたバージョンと同じである必要があります。
互換性のないバージョンのApplication Expressでの作業方法を理解します。
Application Expressのバージョンがルート・コンテナCDB$ROOT
とPDBで異なる場合は、PDBをオープンするたびにエラーが発生し、PDB内での通常のデータベース操作が妨げられます。バージョンの互換性が確保されるまで、PDBは、RESTRICTED SESSION権限を持つユーザーによって制限モードでのみオープンできます。
ルート・コンテナでApplication Expressに対してパッチ適用またはアップグレードを行う方法を理解します。
Application Expressのバージョンがルート・コンテナよりもPDBがより後のマイナー・リリース・バージョンの場合(たとえば、PDBにApplication Expressリリース4.2.6が含まれ、CDBにApplication Expressリリース4.2.5が含まれる場合)、エラーが発生することなくPDBをオープンするには、ルート・コンテナのApplication Expressのバージョンにパッチを適用する必要があります。PDBのApplication Expressのメジャー・バージョンがCDBのバージョンより高い場合(たとえばPDBがApplication Expressリリース18.1で、CDBがApplication Expressリリース4.2)、エラーが発生することなくPDBを開くためには、CDBのApplication Expressのバージョンをアップグレードする必要があります。
ルート・コンテナのApplication Expressにパッチを適用するには、次のステップを実行します。
ヒント:
ルート・コンテナのApplication Expressをアップグレードするには、「CDBへのApplication Expressの再インストール」を参照してください。
PDBのApplication Expressのパッチ適用またはアップグレードについて理解します。
Application Expressのマイナー・バージョンがルート・コンテナよりもPDBで低い場合(たとえばPDBがApplication Expressリリース4.2.0で、CDBがApplication Expressリリース4.2.6の場合)、PDBのApplication Expressのバージョンにパッチを適用する必要があります。PDBのApplication Expressのメジャー・バージョンがルート・コンテナよりも低い場合(たとえばPDBがApplication Expressリリース4.2で、CDBがApplication Expressリリース18.1の場合)、PDBのApplication Expressのバージョンをアップグレードする必要があります。
PDBでApplication Expressにパッチ適用する方法を理解します。
PDBでApplication Expressにパッチを適用するには、次のステップを実行します。