プラガブル・データベースの作成

POST

/database/pdbs/

プラガブル・データベースをPDB$SEEDから作成するか、データベース・インスタンス、別のPDBからのホット・クローンPDBまたはスナップショットからアクセス可能なXMLメタデータ・ファイルから作成します。Oracle Transparent Data Encryptionの使用は、データベースとOracle REST Data Servicesが同じホスト上にあるトポロジでのみサポートされています。このサービスでは、プール構成でdb.cdb.adminUser資格証明を設定する必要があります。クライアントは、このサービスを起動するにはSQL管理者ロールが必要です。

リクエスト

この操作にはリクエスト・パラメータはありません。

サポートされるメディア・タイプ
リクエスト本文 - application/json ()
ルート・スキーマ: schema
タイプ: object
ソースの表示
  • 新しいPDBの管理者パスワード。PDB$SEEDからpdbを作成する場合は、このプロパティが必要です。
  • 新しいPDBの管理者ユーザー名。PDB$SEEDからpdbを作成する場合は、このプロパティが必要です。
  • PDBをプラグインするためのコマンドに'AS CLONE'オプションを使用する必要があるかどうかを示します。XMLファイルからpdbを作成する場合、このプロパティはオプションです。
  • PDBのOracle Managed Filesを無効化するにはNONEにします。PDBのOracle Managed Filesを有効化するには、directory_path_nameまたはdiskgroup_nameを指定します。これはオプションです。
  • 定義した場合、レスポンスにはJSONオブジェクトが含まれます。これには実行のために生成されたスクリプトの情報が含まれます。このプロパティをtrueに設定した場合、データベースは作成されません。
  • 作成およびプラグ操作に関連します。Oracle Multitenantデータベースのドキュメントに定義されているとおりです。値はファイル名の変換パターンまたはNONE。
  • 該当する場合はTDEパスワード(オプション)。このプロパティは、ソースpdbまたはスナップショットからpdbを作成する場合にはオプションです。
  • 新しいPDBの名前。
  • クローン操作に関連します。データではなく、ソース・プラガブル・データベースのデータ・モデル定義をクローニングすることを指定します。デフォルトはfalseです。
  • PDB_DBAロールに1つ以上のロールを付与します。PDB$SEEDからpdbを作成する場合、このプロパティはオプションです。
  • 作成およびプラグ操作に関連します。Oracle Multitenantデータベースのドキュメントに定義されているとおりです。値は偶数の文字列またはNONEです。
  • 記憶域管理スナップショットからスナップショット・コピーPDBを作成します。記憶域管理スナップショットは、特定のファイル・システムでのみサポートされています。snapshotName、snapshotScnおよびsnapshotTimestampパラメータとともに使用しないでください。
  • 新しいPDBのクローニング元のPDBスナップショットの名前。snapshot_name、snapshot_scnおよびsnapshot_timestameのいずれか1つのみを指定できます。
  • 新しいPDBのクローニング元のPDBスナップショットのID。snapshot_name、snapshot_scnおよびsnapshot_timestameのいずれか1つのみを指定できます。
  • 新しいPDBのクローニング元のPDBスナップショットのタイムスタンプ。snapshot_name、snapshot_scnおよびsnapshot_timestameのいずれか1つのみを指定できます。
  • 値には、ソース・ファイル名変換パターンまたはNONEを指定できます。このプロパティは、XMLファイルからpdbを作成する場合はオプションです。
  • ソースPDBの名前。このプロパティは、クローンpdbおよびスナップショットからのクローンpdb用です。
  • PDBの記憶域制限。UNLIMITED、MAXSIZEまたはMAX_AUDIT_SIZE、MAX_DIAG_SIZEなどを指定できます。
  • 作成およびプラグ操作に関連します。一時ファイルの再利用の場合はtrue。
  • 指定できる値: [ "COPY", "NOCOPY", "MOVE" ]
    PDBをプラグインするためのコマンドにどのコピー・オプションを使用する必要があるかを示します。XMLファイルからpdbを作成する場合、このプロパティはオプションです。
  • PDBのプラグイン時に使用するXMLメタデータ・ファイルのパス。XMLファイルからpdbを作成する場合、このプロパティは必須です。

先頭に戻る

レスポンス

サポートされるメディア・タイプ

202 レスポンス

このレスポンスは、dbmsスケジューラ・ジョブが作成されたことおよびPDBを作成するためのスケジューラ・ジョブに関する情報が示されます。
本文 ()
ルート・スキーマ: SchedulerJobsItem
タイプ: object
ALL_SCHEDULER_JOBSビューまたはDBA_SCHEDULER_JOBSビュー内の行を表します。詳細は、『Oracle Databaseリファレンス』ドキュメントを参照してください。
ソースの表示
ネストされたスキーマ: LinkRelation
タイプ: object
ソースの表示
先頭に戻る

次の例は、cURLを使用してRESTリソースに対するPOSTリクエストを発行することによって、新しいプラガブル・データベースを作成する方法を示しています。

curl -i -X POST -u username:password 
-d @request_body.json 
-H "Content-Type:application/json" https://rest_server_url/ords/_/db-api/stable/database/pdbs/

リクエスト本文の例

ノート:

前述のコマンドで使用されるURL構造https://rest_server_url/resource-pathには、次の要素があります。
  • rest_server_urlはOracle Rest Data Serverが実行されているRESTサーバーです
  • URLの残りの部分には、ORDSコンテキスト・ルート、使用するORDSデータベースAPIのバージョン、およびこの操作のパスが含まれます。PDBライフサイクル管理サービスでは、db.cdb.adminUser資格証明をプール構成に設定する必要があり、この例では、コンテナ・データベースに対してデフォルト・プールが構成されています。

次に、無制限の記憶域を持つPDB$SEEDから、この例でpdb_sampleと呼ばれるプラガブル・データベースを作成するリクエスト本文の例を示します。この例では、file_name_convertパラメータも指定され、コンテナ・データベースで実行されるCREATE PLUGGABLE DATABASE文にFILE_NAME_CONVERT句が含まれます。

{
  "new_pdb_name": "pdb_sample",
  "admin_user": "pdbadmin",
  "admin_password": "W3lc0m31",
  "file_name_convert": "('/disk1/oracle/dbs/pdbseed/','/disk1/oracle/dbs/pdb_sample/')",
  "storage": "UNLIMITED",
  "temp_file_reuse": true
}

次に、カスタム記憶域設定を持つPDB$SEEDからプラガブル・データベースを作成するために生成されたスクリプトを取得するリクエスト本体の例を示します。スクリプトはデータベースで実行されないことに注意してください。この例では、file_name_convertパラメータはNONE値を持ち、生成されたCREATE PLUGGABLE DATABASE文にはFILE_NAME_CONVERT=NONE句が含まれます。


{
  "new_pdb_name": "pdb_sample",
  "admin_user": "pdbadmin",
  "admin_password": "W3lc0m31",
  "file_name_convert": "NONE",
  "temp_file_reuse": true,
  "storage": "(MAXSIZE 2G MAX_SHARED_TEMP_SIZE 800M)",
  "dryrun": true
}

次に、Jsonペイロードのsource_pdb_nameパラメータで指定されたプラガブル・データベースをクローニングすることで新しいプラガブル・データベースを作成するためのリクエスト本文の例を示します。この例では、file_name_convertパラメータも指定され、コンテナ・データベースで実行されるCREATE PLUGGABLE DATABASE文にFILE_NAME_CONVERT句が含まれます。


{
  "new_pdb_name": "pdb_new", 
  "source_pdb_name": "devpdb1",
  "file_name_convert": "('/disk1/oracle/dbs/devpdb1/','/disk1/oracle/dbs/pdb_new/')",
  "storage": "UNLIMITED" 
}

次に、sales_pdbというプラガブル・データベースをコンテナ・データベースに接続するためのリクエスト本文の例を示します。この例のリクエスト本文では、プラガブル・データベース定義はsales_pdb.xmlファイルで指定します:

{
  "new_pdb_name": "sales_pdb",
  "xml_file_name": "/disk1/oracle/dbs/sales_pdb.xml",
  "source_file_name_convert": "NONE",
  "file_name_convert": "NONE",
  "storage": "UNLIMITED",
  "xml_file_action": "NOCOPY",
  "temp_file_reuse": true,
  "dryrun":true
}

dryrunがtrueの場合のレスポンス本文の例

次の例は、JSON形式で返される200のレスポンス本文を示しています。

{"response":" BEGIN
DBMS_SCHEDULER.CREATE_JOB (
         job_name             => 'DBAPI_N6765OAGAO8NCPU120240326210214',
         job_type             => 'PLSQL_BLOCK',
         comments             => 'ORDS_PDB_Lifecycle_API',
         job_action           =>  'BEGIN
EXECUTE IMMEDIATE ''CREATE PLUGGABLE DATABASE sales_pdb
USING ''''/disk1/oracle/dbs/sales_pdb.xml'''' 
 NOCOPY 
 FILE_NAME_CONVERT = NONE 
 TEMPFILE REUSE
STORAGE UNLIMITED'';
EXECUTE IMMEDIATE ''ALTER PLUGGABLE DATABASE sales_pdb OPEN READ WRITE''; 
END;',
         start_date           => null,
         enabled              => TRUE);
  DBMS_SCHEDULER.SET_ATTRIBUTE (
        name           =>   'DBAPI_N6765OAGAO8NCPU120240326210214',
        attribute      =>   'job_priority',
        value          =>   1);
END;"}
先頭に戻る