この記事ではアプリケーションコンテナへのアプリケーションインストールについて解説します。
アプリケーションのインストールとは
アプリケーションコンテナにおいてアプリケーションのインストールとは、アプリケーションルートに対してアプリケーションコンテナ共通で使用するオブジェクトを作成することを言います。
アプリケーションをインストールしただけではなく、その後同期処理をすることによってアプリケーションPDBでもオブジェクトが使用できるようになります。
インストール方法
最初にアプリケーションのインストールを行います。
アプリケーションルートに接続し、アプリケーションのインストールの開始を宣言します。
$ sqlplus / as sysdba
SQL> alter session set container=toys_root;
Session altered.
SQL> ALTER PLUGGABLE DATABASE APPLICATION toys_app1 BEGIN INSTALL '1.0';
Pluggable database altered.
アプリケーション名「toys_app1」、アプリケーションのバージョン「1.0」は任意に設定可能です。
なお、アプリケーションのアップグレード(バージョンを上げる)の場合は下記のようになります。
ALTER PLUGGABLE DATABASE APPLICATION toys_app1 BEGIN UPDATE '1.0' TO '1.1';
アプリケーションの状態はdba_applicationsビューで確認できます。
アプリケーションコンテナ共通で使用するユーザ「toys_owner」と表「sales」を作成します。
SQL> CREATE USER toys_owner IDENTIFIED BY password CONTAINER=ALL;
User created.
SQL> GRANT dba TO toys_owner;
Grant succeeded.
SQL> CREATE TABLE toys_owner.sales SHARING=METADATA(
2 sale_id NUMBER(10),
3 product_name VARCHAR2(100),
4 sale_date DATE
5 );
Table created.
表の作成ではSHARING=METADATAを付けることによって共通のオブジェクトとして使用できます。
作成が完了したらインストールの終了を宣言します。
SQL> ALTER PLUGGABLE DATABASE APPLICATION toys_app1 END INSTALL '1.0';
Pluggable database altered.
なお、アプリケーションのアップグレードの場合は下記のようになります。
ALTER PLUGGABLE DATABASE APPLICATION toys_app1 END UPDATE TO '1.1';
同期処理
インストールが完了したらアプリケーションPDBへ同期を行います。
アプリケーションPDBへ接続し同期処理を行います。
インストールした「toys_app1」を同期します。
SQL> alter session set container=robot;
Session altered.
SQL> ALTER PLUGGABLE DATABASE APPLICATION toys_app1 SYNC;
Pluggable database altered.
作成した表が同期されているか確認します。
SQL> show con_name
CON_NAME
------------------------------
ROBOT
SQL> desc toys_owner.sales
Name Null? Type
--------------------------------------------- -------- -----------------------------
SALE_ID NUMBER(10)
PRODUCT_NAME VARCHAR2(100)
SALE_DATE DATE
表が同期されていることが確認できました。