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