この章では、Oracle Database 12cマルチテナント・アーキテクチャで導入されるプラガブル・データベースのコピーおよび移動に関連するインストールの選択項目と様々な使用例について、Oracle Application Express (Application Express)に関連付けて説明します。
Oracle Database 12cリリース1 (12.1)では、マルチテナント・アーキテクチャが導入されています。このデータベース・アーキテクチャには、ルート・コンテナCDB$ROOT
、シード・データベースPDB$SEED
および複数のプラガブル・データベース(PDB)を含むマルチテナント・コンテナ・データベース(CDB)が含まれます。各プラガブル・データベースは、Oracle Databaseリリース11gの個別のデータベース・インスタンスに相当します。ルート・コンテナCDB$ROOT
は、メタデータ・リンクまたはオブジェクト・リンクを使用してすべてのPDBにアクセス可能な共通オブジェクトを保持します。シード・データベースPDB$SEED
は、新しいデータベースをシードするために新しいPDBを作成する際に使用されます。Oracle Database 12cマルチテナント・アーキテクチャの主なメリットは、CPUやメモリーなどのデータベース・リソースをすべてのPDBで共有できることです。また、このアーキテクチャでは、アップグレード、パッチ、バックアップなどのタスクにおいて、複数のデータベースを1つのデータベースとして扱うことができます。
Oracle Application Expressリリース4.2は、Oracle Database 12cとともに構成できる最も古いリリースです。Oracle Database 12cマルチテナント・アーキテクチャを使用してOracle Database 12cをインストールする場合は、一般的なデータベース・オプションとして、デフォルトでOracle Application Express 4.2.4がインストールされます。また、ルート・コンテナからApplication Expressをアンインストールして、1つ以上のPDBにローカルApplication Expressリリース4.2.4以上を個別にインストールすることもできます。任意のPDBを構成した後、ルート・コンテナからApplication Expressをアンインストールしたり、ルート・コンテナにApplication Expressを再インストールすることはできません。これにより、既存のApplication Expressインストールに関連するメタ・データが無効または完全に削除されます。
マルチテナント・アーキテクチャを構成している場合、デフォルトでは、Oracle Application Expressはルート・コンテナ・データベースにインストールされます。このインストールでは、ルート・コンテナCDB$ROOT
にAPEX_040200
スキーマが含まれ、Application Expressエンジンの一般的なデータベース・オブジェクト(パッケージ、ファンクション、プロシージャ、ビューなど)を格納するために使用されます。APEX_040200
スキーマは、シード・データベースPDB$SEED
にも含まれ、Application Expressエンジンの一部である表を格納するために使用されます。
新しいPDBを作成するには、Application Express表を持つAPEX_040200
スキーマを含むPDB$SEED
をコピーし、CDB$ROOT
内のAPEX_040200
スキーマに保持されている一般的なデータベース・オブジェクトにメタデータ・リンクを作成します。この方法により、Application Expressエンジンのパッケージ、ファンクション、プロシージャおよびビューの1つのコピーのみで、Application Expressエンジンの表の複数のコピーを作成することができます。各PDBは、APEX_040200
スキーマとともに、Application Expressエンジンの表のコピーを独自に保持するため、そのPDB内で定義されたApplication Expressアプリケーションのメタデータを保持できます。
ベスト・プラクティスとして、すべてのPDBで同じバージョンのOracle Application Expressが実行されるように、ルート・コンテナに一般的なOracle Application Expressをインストールすることをお薦めします。これによって、アップグレードやパッチ適用などのOracle Application Expressインフラストラクチャのタスクを集中的に管理できるようになるため、管理が容易になります。代替手段として、CDB$ROOT
、PDB$SEED
および他のすべてのPDBからApplication Expressをアンインストールしてから、各PDBにApplication Expressをローカルにインストールできます。ローカルOracle Application Expressの利点は、PDBごとに異なるバージョンのApplication Expressを実行できることです。ただし、このオプションのデメリットとして、Application Expressのアップグレードおよびパッチについて、インストールした各ローカルOracle Application Expressで個別に管理する必要があるため、メンテナンスに労力が必要になることがあげられます。
各PDBに異なるバージョンのOracle Application Expressを柔軟にインストールするには、コンテナ・データベースにインストールされているOracle Application Expressリリース4.2.4をアンインストールする必要があります。コンテナ・データベースからOracle Application Expressを削除したら、必要に応じて、各PDB内にローカルApplication Expressをインストールできます。Oracle Application Expressをローカルにインストールする際に、Application Expressのメタデータ・リンク・オブジェクトが含まれないため、すべてのパッケージ、ビューおよび表は、Application Expressがインストールされる各PDB内のAPEX_0402000
スキーマ内に作成されます。
CDBからOracle Application Expressをアンインストールするには、次のステップを実行します。
作業ディレクトリを$ORACLE_HOME/apex
に変更します。
SQL*Plusを起動し、Oracle 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
apxremov_con.sql
を実行します。
次に例を示します。
@apxremov_con.sql
注意: CDBにPDBを追加した後でapexremov_con.sql を実行すると、すべてのPDBからApplication Expressがアンインストールされます。したがって、いずれのPDBで定義されているアプリケーションも削除されます。apxremov.sql を実行すると、ルート・コンテナからのみApplication Expressが削除されます。ただし、すべてのPDBが無効な状態で残るため、PDBをオープンしようとするとエラーが発生します。 |
「CDBからのApplication Expressのアンインストール」の手順に従って、コンテナ・データベースからOracle Application Expressを削除したら、PDBにApplication Expressをローカルにインストールできます。
Oracle Application ExpressをPDBにローカルにインストールするには、次のステップを実行します。
作業ディレクトリを$ORACLE_HOME/apex
に変更します。
SQL*Plusを起動し、Oracle 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
Application ExpressをローカルにインストールするPDBにコンテナを設定します。
ALTER SESSION SET CONTAINER = <PDB_name>;
適切なインストール・オプションを選択します。
完全開発環境ではアプリケーションを開発するため、アプリケーション・ビルダー環境へのすべてのアクセス権があります。ランタイム環境ではアプリケーションは変更できず、実行することができます。詳細は、「Oracle Application Expressランタイム環境について」を参照してください。
使用可能なインストール・オプションは次のとおりです。
完全開発環境: 次の4つの引数を記載された順序どおりに渡し、apexins.sql
を実行します。
@apexins.sql tablespace_apex tablespace_files tablespace_temp images
各要素の意味は次のとおりです。
tablespace_apex
は、Oracle Application Expressアプリケーション・ユーザーの表領域の名前です。
tablespace_files
は、Oracle Application Expressファイル・ユーザーの表領域の名前です。
tablespace_temp
は、一時表領域または一時表領域グループの名前です。
images
は、Oracle Application Expressイメージの仮想ディレクトリです。将来的にOracle Application Expressのアップグレードをサポートするために、仮想イメージ・ディレクトリを/i/
と定義します。
次に例を示します。
@apexins.sql SYSAUX SYSAUX TEMP /i/
ランタイム環境: 次の4つの引数を記載された順序どおりに渡し、apxrtins.sql
を実行します。
o @apxrtins.sql tablespace_apex tablespace_files tablespace_temp images
各要素の意味は次のとおりです。
tablespace_apex
は、Oracle Application Expressアプリケーション・ユーザーの表領域の名前です。
tablespace_files
は、Oracle Application Expressファイル・ユーザーの表領域の名前です。
tablespace_temp
は、一時表領域または一時表領域グループの名前です。
images
は、Oracle Application Expressイメージの仮想ディレクトリです。将来的にOracle Application Expressのアップグレードをサポートするために、仮想イメージ・ディレクトリを/i/
と定義します。
次に例を示します。
@apxrtins.sql SYSAUX SYSAUX TEMP /i/
注意: 前のステップでapxremov_con.sql を実行する前にデータベース・パッチを適用していなかった場合、インストール・スクリプトは、Oracle Application Expressをインストールせずに即座に終了し、PDBへのOracle Application Expressのインストールは失敗します。このような場合は、詳細についてOracleサポート・サービスに連絡してください。 |
Oracle REST Data Servicesを使用している場合、「Oracle REST Data Servicesのダウンロードおよびインストール」から「ワークスペースの作成およびOracle Application Expressユーザーの追加」の適切な手順を完了します。
Oracle HTTP Serverを使用している場合は、「Oracle Database 12cで配布されたOracle HTTP Serverの構成」から「ワークスペースの作成およびOracle Application Expressユーザーの追加」の適切なステップを実行します。
埋込みPL/SQLゲートウェイを使用している場合は、Oracleホームへのパスを渡し、apex_epg_config.sql
を実行してから、「埋込みPL/SQLゲートウェイの構成」の適切なステップを実行します。
参照: SQL*Plusの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。 |
Oracle Application Expressをインストールすると、3つの新しいデータベース・アカウントが作成されます。
APEX_040200
: Oracle Application Expressのスキーマおよびメタデータを所有するアカウント。
FLOWS_FILES
: Oracle Application Expressのアップロードされたファイルを所有するアカウント。
APEX_PUBLIC_USER
- Oracle REST Data ServicesまたはOracle HTTP Serverおよびmod_plsql
を使用したOracle Application Expressの構成に使用する最小限の権限が付与されたアカウント。
RESTful Webサービスを構成した場合は、これらの追加アカウントが作成されます。
APEX_REST_PUBLIC_USER
-Oracle Application Expressに格納されているRESTfulサービスの定義を呼び出す際に使用されるアカウント。
APEX_LISTENER
- Oracle Application Expressに格納されているRESTfulサービスの定義を照会するために使用されるアカウント。
以前にOracle Application Express 4.2.4をアンインストール済である場合に、CDBにApplication Expressを再インストールするには、Oracle Database 12cディストリビューションを使用してOracle Application Express 4.2.4をインストールする必要があります。再インストールの後で、必要に応じて、「CDBのApplication Expressへのパッチ適用」の説明に従ってApplication Expressパッチを適用できます。
Application ExpressをCDBに再インストールするには、次のステップを実行します。
作業ディレクトリを$ORACLE_HOME/apex
に変更します。
SQL*Plusを起動し、Oracle 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
適切なインストール・オプションを選択します。
完全開発環境ではアプリケーションを開発するため、アプリケーション・ビルダー環境へのすべてのアクセス権があります。ランタイム環境ではアプリケーションは変更できず、実行することができます。詳細は、「Oracle Application Expressランタイム環境について」を参照してください。
使用可能なインストール・オプションは次のとおりです。
完全開発環境。次の4つの引数を記載された順序どおりに渡し、apexins_con.sql
を実行します。
@apexins_con.sql tablespace_apex tablespace_files tablespace_temp images
各要素の意味は次のとおりです。
tablespace_apex
は、Oracle Application Expressアプリケーション・ユーザーの表領域の名前です。
tablespace_files
は、Oracle Application Expressファイル・ユーザーの表領域の名前です。
tablespace_temp
は一時表領域または一時表領域グループの名前です。
images
は、Oracle Application Expressイメージの仮想ディレクトリです。将来的にOracle Application Expressのアップグレードをサポートするために、仮想イメージ・ディレクトリを/i/
と定義します。
例:
@apexins_con.sql SYSAUX SYSAUX TEMP /i/
ランタイム環境。次の引数を記載された順序どおりに渡し、apxrtins_con.sql
を実行します。
@apxrtins_con.sql tablespace_apex tablespace_files tablespace_temp images
各要素の意味は次のとおりです。
tablespace_apex
は、Oracle Application Expressアプリケーション・ユーザーの表領域の名前です。
tablespace_files
は、Oracle Application Expressファイル・ユーザーの表領域の名前です。
tablespace_temp
は一時表領域または一時表領域グループの名前です。
images
は、Oracle Application Expressイメージの仮想ディレクトリです。将来的にOracle Application Expressのアップグレードをサポートするために、仮想イメージ・ディレクトリを/i/
と定義します。
例:
@apxrtins_con.sql SYSAUX SYSAUX TEMP /i/
Oracle REST Data Servicesを使用している場合、「Oracle REST Data Servicesのダウンロードおよびインストール」から「ワークスペースの作成およびOracle Application Expressユーザーの追加」の項の適切な手順を完了します。
Oracle HTTP Serverを使用している場合は、「Oracle Database 12cで配布されたOracle HTTP Serverの構成」から「ワークスペースの作成およびOracle Application Expressユーザーの追加」のセクションの適切なステップを実行します。
埋込みPL/SQLゲートウェイを使用している場合は、Oracleホームへのパスを渡し、apex_epg_config_con.sql
を実行してから、「埋込みPL/SQLゲートウェイの構成」の適切な手順を実行します。
参照: SQL*Plusの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。 |
Oracle Application Expressをインストールすると、3つの新しいデータベース・アカウントが作成されます。
APEX_040200
: Oracle Application Expressのスキーマおよびメタデータを所有するアカウント。
FLOWS_FILES
: Oracle Application Expressのアップロードされたファイルを所有するアカウント。
APEX_PUBLIC_USER
- Oracle REST Data ServicesまたはOracle HTTP Serverおよびmod_plsql
を使用したOracle Application Expressの構成に使用する最小限の権限が付与されたアカウント。
RESTful Webサービスを構成した場合は、これらの追加アカウントが作成されます。
APEX_REST_PUBLIC_USER
-Oracle Application Expressに格納されているRESTfulサービスの定義を呼び出す際に使用されるアカウント。
APEX_LISTENER
- Oracle Application Expressに格納されているRESTfulサービスの定義を照会するために使用されるアカウント。
このセクションでは、ターゲット・データベースでルート・コンテナCDB$ROOT
にApplication Expressがインストールされている例(デフォルトのインストール・オプション)について説明します。接続するデータベースの元の場所、および元のデータベースでApplication Expressが構成されていた方法について、複数の例があることに注意してください。
以前のリリースの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スクリプト
を実行する必要があります。このスクリプトによって、ローカル・オブジェクトではなく、必要なメタデータ・リンク・オブジェクトが作成され、Oracle Application Expressを含む一般的なすべてのデータベース・オプションのデータベース・オブジェクトが再コンパイルされます。Oracle Application Expressのインストール後、「データベースからのインストール時の構成タスク」の説明に従って、PDBにWebリスナーを構成する必要があります。
元のデータベース(現在のPDB)にインストールされているApplication Expressのバージョンが、ターゲット・データベースのルート・コンテナにインストールしたApplication Expressのバージョンと異なる場合は、PDBをオープンしようとするとエラーが発生します。Application Expressのバージョンに互換性を持たせる方法の詳細は、「互換性のないApplication Expressバージョンについて」を参照してください。
元のCDBのルート・コンテナにApplication Expressがインストールされている既存のOracle Database 12cからPDBをコピーまたは移動するには、「データベースからのインストール時の構成タスク」の説明に従って、PDBにWebリスナーを構成するのみで済みます。
Oracle Application Expressリリース4.2がインストールされている場合は、接続元のPDB内のAPEX_040200
スキーマにメタデータ・リンク・オブジェクトが定義済であるため、ターゲットCDB内のメタデータ・リンク・オブジェクトに対してエラーなしでコンパイルされます。
元のデータベースにインストールされているApplication Expressのバージョンが、ターゲット・データベースのルート・コンテナにインストールしたApplication Expressのバージョンと異なる場合は、PDBをオープンしようとするとエラーが発生します。Application Expressのバージョンに互換性を持たせる方法の詳細は、「互換性のないApplication Expressバージョンについて」を参照してください。
Application Expressがルート・コンテナではなく、ローカルにインストールされている既存のOracle Database 12cからPDBをコピーまたは移動するには、PDBをエラーなしでオープンできるように次のステップを実行する必要があります。Oracle Application Expressリリース4.2がインストールされている場合、接続元のPDB内のAPEX_040200
スキーマには、Application Expressのすべてのデータベース・オブジェクトが含まれますが、メタデータ・リンク・オブジェクトは含まれません。このため、$ORACLE_HOME/rdbms/admin/apex_to_common.sql
を実行して一般的なオブジェクトを削除し、パッケージ、ビューおよびその他に対するメタデータ・リンクを作成する必要があります。
ローカル・オブジェクトをPDBのメタデータ・リンクで置き換えるには、次のステップを実行します。
作業ディレクトリを$ORACLE_HOME/rdbms/admin
に変更します。
SQL*Plusを起動し、Oracle 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のバージョンに互換性を持たせる方法の詳細は、「互換性のないApplication Expressバージョンについて」を参照してください。
非CDBを接続する場合、あるいは他のCDBからPDBをコピーまたは移動する場合に、元のデータベースまたはPDBにApplication Expressがインストールされていないと、ターゲット・データベースでPDBをオープンしようとした際にアラート・ログに警告が発生します。
この例では、元のデータベースまたは接続元のPDBに、Application Expressスキーマ(Oracle Application Expressリリース4.2ではAPEX_040200
)が存在しません。PDBを問題なくオープンして新しいPDB内でApplication Expressを実行するには、元のデータベースまたはPDBにApplication Expressをインストールしてから、ターゲット・データベースへの接続を試行する必要があります。元のデータベースまたはPDBにインストールするApplication Expressのバージョンは、ターゲット・データベースにインストールしたバージョンと同じである必要があります。
Oracle Application Expressのバージョンがルート・コンテナCDB$ROOT
とPDBで異なる場合は、PDBをオープンするたびにエラーが発生し、PDB内での通常のデータベース操作が妨げられます。バージョンの互換性が確保されるまで、PDBは、RESTRICTED SESSION権限を持つユーザーによって制限モードでのみオープンできます。
Application Expressのバージョンがルート・コンテナよりもPDBで高い場合、エラーが発生することなくPDBをオープンするには、ルート・コンテナのApplication Expressのバージョンにパッチを適用する必要があります。
ルート・コンテナのApplication Expressにパッチを適用するには、次のステップを実行します。
My Oracle Supportから適切なパッチをダウンロードします。
解凍してインストール・ファイルを抽出します。
作業ディレクトリを、インストール・ファイルを抽出したディレクトリに変更します。
SQL*Plusを起動し、Oracle 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
たとえば、apxpatch_con.sql
を実行します。
@apxpatch_con.sql
パッチ・セット・ノートの説明に従って、使用しているWebサーバーに基づいてイメージ・ディレクトリを更新します。たとえば、埋込みPL/SQLゲートウェイを使用している場合は、apxldimg_con.sql
を実行します。
@apxldimg_con.sql
Application Expressのバージョンがルート・コンテナCDB$ROOT
よりもPDBで低い場合、PDBのApplication Expressのバージョンにパッチを適用する必要があります。
PDBのApplication Expressにパッチを適用するには、次のステップを実行します。
My Oracle Supportから適切なパッチをダウンロードします。
解凍してインストール・ファイルを抽出します。
作業ディレクトリを、インストール・ファイルを抽出したディレクトリに変更します。
SQL*Plusを起動し、Oracle 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
次の例に示すように、catcon.plを使用してapxpatch.sqlを実行します。
host &OH_HOME/perl/bin/perl -I &OH_HOME/rdbms/admin &OH_HOME/rdbms/admin/catcon.pl -b apxpatch -c '<PDB_name>' apxpatch.sql
各要素の意味は次のとおりです。
&OH_HOME
は、Oracleホームのフルパスを表します。
<PDB_name
>は、パッチを適用しているPDBの名前です。
パッチ・セット・ノートの説明に従って、使用しているWebサーバーに基づいてイメージ・ディレクトリを更新します。たとえば、埋込みPL/SQLゲートウェイを使用している場合は、apxldimg.sql
を実行します。
ALTER SESSION SET CONTAINER = <PDB_name>;
@apxldimg.sql
このセクションの例では、「CDBからのApplication Expressのアンインストール」の説明に従って、Oracle Application Expressを明示的に削除することで、ルート・コンテナCDB$ROOT
にOracle Application Expressがインストールされていない場合について説明します。このような場合は、オプションで、各PDBにローカルApplication Expressを個別にインストールできます。Oracle Application ExpressをPDBにインストールした場合、ローカルにインストールされたとみなされ、メタデータ・リンク・オブジェクトは定義されません。接続中のデータベースの元の場所、および元のデータベースでApplication Expressが構成されていた方法について、複数の例があります。
以前のリリースの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スクリプト
を実行する必要があります。このスクリプトによって、(ローカル・オブジェクトではなく)必要なメタデータ・リンク・オブジェクトが作成され、一般的なすべてのデータベース・オプションのデータベース・オブジェクトが再コンパイルされます。ただし、ルート・コンテナからOracle Application Expressが削除されているため、スクリプトを実行しても、いずれのApplication Expressオブジェクトにもメタデータ・リンクが作成されません。このスクリプトでは、元のデータベースからApplication Expressインストールが変更されないため、「データベースからのインストール時の構成タスク」で説明するように、Webサーバーを構成するのみで済みます。
元のCDBのルート・コンテナにApplication Expressがインストールされている既存のOracle Database 12cからPDBをコピーまたは移動する場合は、PDBをオープンしようとするたびにエラーが発生します。このエラーは、ターゲットのルート・コンテナにApplication Expressが含まれないために、元のPDBに含まれる、元のルート・コンテナのオブジェクトへのメタデータ・リンクを再コンパイルできないことが原因で発生します。PDBをオープンするには、PDBからApplication Expressを削除するか、ターゲットのルート・コンテナにApplication Expressをインストールする必要があります。ルート・コンテナにApplication Expressをインストールするには、PDBがインストールされていない状態である必要があります。詳細は、Oracleサポートに連絡してください。
(CDBではなく)元のPDBにローカルApplication Expressがインストールされている既存のOracle Database 12cからPDBをコピーまたは移動するには、「データベースからのインストール時の構成タスク」の説明に従って、PDBにWebサーバーを構成するのみで済みます。Oracle Application Expressリリース4.2がインストールされている場合、接続元のPDB内のAPEX_040200
スキーマには、ローカルに定義されたApplication Expressのすべてのオブジェクトが含まれますが、メタデータ・リンクは含まれません。