20.2 DBMS_CLOUDのインストール
DBMS_CLOUDパッケージ・ファミリを顧客管理Oracle Databaseで使用するには、新しいユーザーを作成し、そのユーザーとしてDBMS_CLOUDパッケージをインストールする必要があります。
デフォルトのDBMS_CLOUDプロシージャのインストールは、別のスキーマ(C##CLOUD$SERVICEスキーマ)によって所有されます。このスキーマはデフォルトではロックされているため、接続がこのユーザーとして直接確立されることはありません。
新しいDBMS_CLOUDデプロイメントを含むリリース更新(RU)に更新したときは、DBMS_CLOUDパッケージ・ファミリにアクセスする必要があるPDBでの既存の手順に加えて、そのインストールの手順を再実行する必要があります。このインストールは冪等性書込みであるため、DBMS_CLOUDパッケージ・ファミリをアンインストールしてから再インストールする必要はありません。このインストールを管理するために作成したユーザーは、そのスキーマに接続できます。
既存および今後のプラガブル・データベース(PDB)にDBMS_CLOUDが正しくインストールされるようにするには、ディレクトリOracleホーム/rdbms/admin/にあるcatcon.plユーティリティを使用してそれらのパッケージをインストールします。DBMS_CLOUDのコードおよびインストール・スクリプトは、Oracleディストリビューションに含まれています。2つの主要スクリプトを次に示します:
catclouduser.sql: このスクリプトでは、必要な権限があるスキーマC##CLOUD$SERVICEが作成されます。このスクリプトを変更しないでください。dbms_cloud_install.sql: このスクリプトでは、スキーマC##CLOUD$SERVICEにDBMS_CLOUDパッケージがインストールされます。このスクリプトを変更しないでください。
DBMS_CLOUDパッケージをインストールするCDBにログインし、catcon.plを使用してそのインストールを実行します。
次の例では、DBMS_CLOUDパッケージがインストールされ、ログ・ファイルが接頭辞dbms_cloud_install付きで/tmpディレクトリ内に作成されるように構成されています。
$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -u sys/your-password -force_pdb_mode 'READ WRITE' -b dbms_cloud_install -d $ORACLE_HOME/rdbms/admin/ -l /tmp catclouduser.sql
次の例では、DBMS_CLOUDパッケージがスキーマC##CLOUD$SERVICEにインストールされます:
$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -u sys/your-password -force_pdb_mode 'READ WRITE' -b dbms_cloud_install -d $ORACLE_HOME/rdbms/admin/ -l /tmp dbms_cloud_install.sql
インストールが完了したら、ログ・ファイルで、エラーがないか確認します。たとえば、パッケージDBMS_CLOUDが作成され、ROOTとすべてのPDBで有効であることがわかります。
ROOT内のパッケージを表示するには、SQLにログインし、次のチェックを実行します:
select con_id, owner, object_name, status, sharing, oracle_maintained from cdb_objects where object_name like 'DBMS_CLOUD%'
PDB内のパッケージを表示するには、SQLにログインし、次のチェックを実行します:
select owner, object_name, status, sharing, oracle_maintained from dba_objects where object_name like 'DBMS_CLOUD%';
このインストールでは、DBMS_CLOUDのインストールのためにすべてのプラガブル・データベースが強制的にオープンされます。ただし、インストール後は前のステージのPDBが維持されます。したがって、これらの問合せチェックは、オープンされているプラガブル・データベースのみを示し、それらに対してのみ機能します。
インストール・ログでエラーが示されている場合、または無効なオブジェクトがC##CLOUD$SERVICEに所有されている場合は、これらの問題を分析し修正する必要があります。
親トピック: DBMS_CLOUDパッケージ・ファミリ