5.4 ルート・コンテナにOracle APEXがインストールされている場合のPDBの接続
ターゲット・データベースでルート・コンテナCDB$ROOT
にOracle APEXがインストールされているシナリオ(デフォルトのインストール・オプション)について学習します。
この項では、ターゲット・データベースでルート・コンテナCDB$ROOT
にOracle APEXがインストールされているシナリオ(デフォルトのインストール・オプション)について説明します。接続するデータベースの元の場所、および元のデータベースでOracle APEXが構成されていた方法に関連する複数のシナリオがあることに注意してください。
- シナリオ1: Oracle APEXを含む非CDBの接続
Oracle APEXを含む非CDBを接続します。 - シナリオ2: 他のCDBからの一般的なAPEXを含むPDBの接続
他のCDBからAPEXを含むPDBを接続します。 - シナリオ3: 他のCDBからのローカルOracle APEXを含むPDBの接続
他のCDBからローカルOracle APEXを含むPDBを接続します。 - シナリオ4: Oracle APEXを含まない非CDBまたはPDBの接続
Oracle APEXがインストールされていない場合は非CDBまたはPDBを接続します。 - 互換性のないOracle APEXバージョンでの作業
互換性のないバージョンのOracle APEXでの作業方法を理解します。
5.4.1 シナリオ1: Oracle APEXを含む非CDBの接続
Oracle APEXを含む非CDBを接続します。
以前のリリースのOracle Databaseからアップグレードする場合は、Oracle Database 12cの非CDB (またはローカルにAPEXをインストールしたPDB)にアップグレードしてから、ご使用のCDBにデータベースを接続する必要があります。また、非CDBのOracle Database 12c以降(またはローカルにAPEXをインストールしたPDB)を構成済である場合は、そのデータベースをCDBに接続できます。いずれの場合も、元のデータベースは、APEXがインストールされており、以前はPDBではありませんでした。
ご使用のオペレーティング・システムの『Oracle Databaseインストレーション・ガイド』で説明されているとおり、スタンドアロン・データベースに接続するには、$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sqlスクリプト
を実行する必要があります。このスクリプトによって、ローカル・オブジェクトではなく、必要なメタデータ・リンク・オブジェクトが作成され、APEXを含む一般的なすべてのデータベース・オプションのデータベース・オブジェクトが再コンパイルされます。
Oracle APEXをインストールした後に、PDBにWebサーバーを構成する必要があります。
元のデータベース(現在のPDB)にインストールされているOracle APEXのバージョンが、ターゲット・データベースのルート・コンテナにインストールしたAPEXのバージョンと異なる場合は、PDBをオープンしようとするとエラーが発生します。
5.4.2 シナリオ2: 他のCDBからの共通のAPEXを含むPDBの接続
他のCDBからAPEXを含むPDBを接続します。
元のCDBのルート・コンテナにAPEXがインストールされている既存のOracle Database 12c以降からPDBをコピーまたは移動するには、PDBにWebサーバーを構成する以外は追加ステップを実行する必要はありません。
このシナリオでは、前提として、APEXリリース21.1がインストールされ、接続するPDB内のAPEX_220100
スキーマにはすでにメタデータ・リンク・オブジェクトが定義されており、ターゲットCDB内のメタデータ・リンク・オブジェクトに対してエラーなしでコンパイルされているとします。
元のデータベースにインストールされているAPEXのバージョンが、ターゲット・データベースのルート・コンテナにインストールしたAPEXのバージョンと異なる場合は、PDBをオープンしようとするとエラーが発生します。
5.4.3 シナリオ3: 他のCDBからのローカルOracle APEXを含むPDBの接続
他のCDBからローカルOracle APEXを含むPDBを接続します。
APEXがルート・コンテナではなく、ローカルにインストールされている既存のOracle Database 12c以降からPDBをコピーまたは移動するには、PDBをエラーなしでオープンできるように次のステップを実行する必要があります。
このシナリオでは、前提として、APEXリリース22.1がインストールされ、接続するPDB内のAPEX_220100
スキーマにはAPEXのすべてのデータベース・オブジェクトが含まれており、メタデータ・リンク・オブジェクトはないものとします。このため、$ORACLE_HOME/rdbms/admin/apex_to_common.sql
を実行して一般的なオブジェクトを削除し、パッケージ、ビューおよびその他に対するメタデータ・リンクを作成する必要があります。
ローカル・オブジェクトをPDBのメタデータ・リンクで置き換えるには:
-
作業ディレクトリを
$ORACLE_HOME/rdbms/admin
に変更します。 -
SQL*Plusを起動し、APEXがインストールされているデータベースに、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
元のデータベースにインストールされているOracle APEXのバージョンが、ターゲット・データベースのルート・コンテナにインストールしたAPEXのバージョンと異なる場合は、PDBをオープンしようとするとエラーが発生します。
5.4.4 シナリオ4: Oracle APEXを含まない非CDBまたはPDBの接続
Oracle APEXがインストールされていない場合は非CDBまたはPDBを接続します。
このシナリオでは、元のデータベースまたは接続するPDBにAPEXスキーマ(たとえば、Oracle APEXリリース22.1ではAPEX_220100
)は存在しません。PDBを問題なくオープンして新しいPDB内でAPEXを実行するには、元のデータベースまたはPDBにAPEXをインストールしてから、ターゲット・データベースへの接続を試行する必要があります。元のデータベースまたはPDBにインストールするOracle APEXのバージョンは、ターゲット・データベースにインストールしたバージョンと同じである必要があります。
5.4.5 互換性のないOracle APEXバージョンでの作業
互換性のないバージョンのOracle APEXでの作業方法を学習します。
Oracle APEXのバージョンがルート・コンテナCDB$ROOT
とPDBで異なる場合は、PDBをオープンするたびにエラーが発生し、PDB内での通常のデータベース操作が妨げられます。バージョンの互換性が確保されるまで、PDBは、RESTRICTED SESSION権限を持つユーザーによって制限モードでのみオープンできます。
- CDBのOracle APEXのパッチ適用またはアップグレード
ルート・コンテナでOracle APEXに対してパッチ適用またはアップグレードを行う方法を学習します。 - PDBのOracle APEXのパッチ適用またはアップグレード
PDBでOracle APEXに対してパッチ適用またはアップグレードを行う方法を学習します。
5.4.5.1 CDBのOracle APEXのパッチ適用またはアップグレード
ルート・コンテナでOracle APEXに対してパッチ適用またはアップグレードを行う方法を学習します。
Oracle APEXのバージョンがルート・コンテナよりもPDBがより後のマイナー・リリース・バージョンの場合(たとえば、PDBにOracle APEXリリース5.1.4が含まれ、CDBにOracle APEXリリース5.1.3が含まれる場合)、エラーが発生することなくPDBをオープンするには、ルート・コンテナのOracle APEXのバージョンにパッチを適用する必要があります。PDBのOracle APEXのメジャー・バージョンがCDBのバージョンより高い場合(たとえばPDBがOracle APEXリリース19.2で、CDBがOracle APEXリリース18.1)、エラーが発生することなくPDBを開くためには、CDBのOracle APEXのバージョンをアップグレードする必要があります。
ルート・コンテナのOracle APEXにパッチを適用するには:
5.4.5.2 PDBのOracle APEXのパッチ適用またはアップグレード
PDBでOracle APEXに対してパッチ適用またはアップグレードを行う方法を学習します。
Oracle APEXのマイナー・バージョンがルート・コンテナよりもPDBで低い場合(たとえばPDBがAPEXリリース4.2.0で、CDBがAPEXリリース4.2.6の場合)、PDBのAPEXのバージョンにパッチを適用する必要があります。PDBのOracle APEXのメジャー・バージョンがルート・コンテナよりも低い場合(たとえばPDBがAPEXリリース4.2で、CDBがAPEXリリース19.2の場合)、PDBのAPEXのバージョンをアップグレードする必要があります。
- PDBのOracle APEXのパッチ適用
PDBでOracle APEXにパッチを適用する方法を学習します。 - PDBのOracle APEXのアップグレード
PDBでOracle APEXをアップグレードする方法を学習します。
親トピック: 互換性のないOracle APEXバージョンでの作業