この項では、Oracle Database 12cマルチテナント・アーキテクチャで導入されるプラガブル・データベースのコピーおよび移動に関連するインストールの選択項目と様々な使用例について、Oracle REST Data Servicesに関連付けて説明します。
Oracle Database 12cリリース1 (12.1)では、マルチテナント・アーキテクチャが導入されています。このデータベース・アーキテクチャには、ルート・コンテナCDB$ROOT
、シード・データベースPDB$SEED
および複数のプラガブル・データベース(PDB)を含むマルチテナント・コンテナ・データベース(CDB)が含まれます。PDBは、ユーザーおよびアプリケーションからは、非CDBであるかのように見えます。各PDBは、Oracle Databaseリリース11gの個別のデータベース・インスタンスに相当します。
ルート・コンテナCDB$ROOT
は、メタデータ・リンクまたはオブジェクト・リンクを使用してすべてのPDBにアクセス可能な共通オブジェクトを保持します。シード・データベースPDB$SEED
は、新しいプラガブル・データベースをシードするために新しいPDBを作成する際に使用されます。Oracle Database 12cマルチテナント・アーキテクチャの主なメリットは、CPUやメモリーなどのデータベース・リソースをすべてのPDBで共有できることです。また、このアーキテクチャでは、アップグレード、パッチ、バックアップなどのタスクにおいて、複数のデータベースを1つのデータベースとして扱うことができます。
Oracle REST Data Servicesを、マルチテナント・データベースの1つ以上のプラガブル・データベースPDBまたはコンテナ・データベース(CDB)にインストールできます。インストールの選択項目を次に示します。
すべてのPDBでOracle REST Data Servicesの同じバージョンを有効にする場合には、CDBにインストールします。この項の残りの説明はCDBへのインストールを示します。
一部のPDBのみがOracle REST Data Servicesを使用できるようにするには、または別々のPDBが別々のバージョンのOracle REST Data Servicesを使用するようにするには、目的のPDBにインストールします。(非CDBでも同じプロシージャを使用します。)
Oracle REST Data ServicesがCDBにインストールされている場合、ルート・コンテナ、シード・コンテナおよび任意の既存PDBにインストールされています。ルート・コンテナ(CDB$ROOT
)には、Oracle REST Data Servicesパッケージ、ファンクション、プロシージャ、ビューなどの一般的なデータベース・オブジェクトを格納するORDS_METADATAスキーマが含まれます。Oracle REST Data Servicesのパブリック・ユーザー(ORDS_PUBLIC_USER)も含まれます。
シード・コンテナ(PDB$SEED
)には、ORDS_METADATAスキーマおよびORDSパブリック・ユーザーが含まれます。新しいPDBを作成するには、PDB$SEED
をコピーし、CDB$ROOT
内のORDS_METADATAスキーマの一般的なデータベース・オブジェクトにメタデータ・リンクを作成します。そのため、Oracle REST Data Services表の複数のコピーがあり、Oracle REST Data Servicesパッケージ、機能、プロシージャ、ビューの単一のコピーのみがあります。このように、各PDBにはORDS_METADATAスキーマとそれ自体のOracle REST Data Services表のコピーがあるため、Oracle REST Data ServicesアプリケーションのメタデータをそのPDB内に保持できます。各PDBにはそれ自体のORDSパブリック・ユーザーがあります。
『Oracle Database管理者ガイド』のシードを使用したPDBの作成に関する項も参照してください。
すべてのPDBを1つのマルチテナント環境に入れて、Oracle REST Data Servicesの同じリリースとパッチ・セットを使用するにはCDBにインストールします。(この選択をすると、別々のPDBでOracle REST Data Servicesの別々のリリースを使用することを許可しません。)
CDBにインストールする前に次を確認します。
PDBが読取り/書込みモードでオープン(マウント済またはクローズ済ではない)であることを確認します(PDB$SEED
以外。これは読取り専用モードのままです)。『Oracle Database管理者ガイド』のPDBのオープン・モードの変更に関する項を参照してください。
デフォルトの表領域および一時表領域がORDS_METADATAによって使用され、ORDS_PUBLIC_USERユーザーが存在し、表領域名がわかっていることを確認します。インストール・プロシージャはそれらのユーザーを作成しますが、表領域は作成しません。
ORDS_METADATAおよびORDS_PUBLIC_USERもシード・コンテナにインストールされ、デフォルトの表および一時表がPDB$SEED
に存在する必要があります。これらの表領域がそこに存在しない場合には、PDB$SEED
に表領域を作成します。『Oracle Database管理者ガイド』のCDBでのオラクル社が提供するSQLスクリプトの実行に関する項を参照してください。
Oracle REST Data ServicesをCDBにインストールするには、次の手順を実行します。
Oracle REST Data Servicesのインストール・キットを解凍したフォルダに移動します。
次のコマンドを入力します。
java -jar ords.war install advanced
注意:
プラガブル・マッピング機能を使用するには、「Oracle REST Data Servicesによって、すべてのPDBをアドレス可能にする(プラガブル・マッピング)」を参照してください。
プロンプトが表示されたら、CDBのデータベース接続情報を入力します。
Enter the name of the database server [localhost]: Enter the database listen port [1521]: Enter 1 to specify the database service name, or 2 to specify the database SID [1]: Enter the database service name: (for example, cdb.example.com)
Oracle REST Data Servicesのインストールを検証します。
Enter 1 if you want to verify/install Oracle REST Data Services schema or 2 to skip this step [1]:
受け入れるか、1 (デフォルト)を入力して、CDBとそのPDBすべてにOracle REST Data Servicesをインストールします。
ORDS_PUBLIC_USERのパスワードを入力して確認します。
Enter the database password for ORDS_PUBLIC_USER: Confirm password:
入力を求めるメッセージが表示されたら、必要に応じて追加情報を入力します。(「コマンドライン・プロンプトを使用した拡張インストール」を参照してください。)
関連トピック
Oracle REST Data Servicesの新しいリリースを使用する場合、CDBおよびそのプラガブル・データベース(PDB)でのORDSスキーマのアップグレードは、簡易または詳細インストールを実行すると自動的に発生します。
次に例を示します。
java -jar ords.war
Oracle REST Data Servicesがすでにインストールまたはアップグレードされている場合は、メッセージにOracle REST Data Servicesスキーマ・バージョンが表示され、情報の入力を要求されません。
エラーが発生した場合には、ログファイルを確認します。
プラガブル・マッピングは、CDB内のすべてのPDBをOracle REST Data Servicesによってアドレス可能にする機能を示します。この機能を使用するには、この項の指示に従ってください。
Oracle REST Data Services構成ファイルにdb.serviceNameSuffix
パラメータが含まれている場合、これはOracle REST Data ServicesプールがCDBを指し、そのCDBに接続されているPDBをOracle REST Data Servicesによってアドレス可能にすることを示しています。
db.serviceNameSuffix
パラメータの値は、データベースのDB_DOMAIN
データベース初期化パラメータの値と一致している必要があり、ピリオド(.)で始まる必要があります。db.serviceNameSuffix
パラメータの値を設定するには、次の手順を実行します。
SQL*Plusで、SYSDBA権限を持つユーザーとしてルートに接続します。
DB_DOMAIN
データベース初期化パラメータの値を確認します。
SQL> show parameter DB_DOMAIN
SQL*Plusを終了します。
SQL> exit
DB_DOMAIN
値が空ではない場合、コマンドラインでdb.serviceNameSuffix
パラメータのキーと値およびそのDB_DOMAIN
を作成するコマンドを入力します。これは、このエントリをORDS構成ファイルに追加するために使用されます。
echo db.serviceNameSuffix=.value-of-DB_DOMAIN > snsuffix.properties
たとえば、DB_DOMAIN
がexample.com
に設定されている場合、次を入力します。
echo db.serviceNameSuffix=.example.com > snsuffix.properties
db.serviceNameSuffix
パラメータ値が定義されていない場合、次の形式でコマンドを入力して構成ファイルにエントリを追加します。
java -jar ords.war set-properties --conf pool-name snsuffix.properties
ここで、pool-nameは次のいずれかになります。
PL/SQLゲートウェイ構成のpoolName
Oracle REST Data Services RESTful Services構成のpoolName_pu
Application Express RESTfulサービス構成のpoolName_rt
例1: CDBのPDBをグローバルでアドレス可能にします。次のコマンドを入力してdefaults
を指定します。
java -jar ords.war set-properties --conf defaults snsuffix.properties
注意:
ほとんどのユース・ケースでは、例1で示した方法(すべてのプールのプロパティをdefaults.xml
ファイルを使用して設定)が最も適しています。
例2: CDBのPDBをPL/SQLゲートウェイにアドレス可能にし、プール名をapex
にします。次のコマンドを入力します。
java -jar ords.war set-properties --conf apex snsuffix.properties
たとえば、apexによって指定されているデータベースにexample.com
のDB_DOMAIN
値があり、2つのPDB(pdb1.example.com
およびpdb2.example.com
)がある場合、最初のPDBはパスが/ords/pdb1/
で始まるURLにマップされ、2番目のPDBはパスが/ords/pdb2/
で始まるURLにマップされます。
例3: CDBのPDBをOracle REST Data Services RESTfulサービスにアドレス可能にし、プール名をapex_pu
にします。次のコマンドを入力します。
java -jar ords.war set-properties --conf apex_pu snsuffix.properties
例4: CDBのPDBをApplication Express RESTfulサービスにアドレス可能にし、プール名をapex_rt
にします。次のコマンドを入力します。
java -jar ords.war set-properties --conf apex_rt snsuffix.properties