Clone or Unplug operations for PDBs
/database/pdbs/{pdb_name}/
Request
- application/json
-
pdb_name: string
Name of the Pluggable Database to clone from or unplug.
object
-
clonePDBName(optional):
string
The name of the new clone PDB. Required when method is specified as CLONE.
-
fileNameConversions(optional):
string
Relevant for clone operations. As defined in the Oracle Multitenant Database documentation.
-
getScript(optional):
boolean
If defined, the response will contain a JSON object with the information of the script that was generated for execution. No action is taken when this property is true and only the script text is returned.
-
method:
string
Allowed Values:
[ "CLONE", "UNPLUG" ]
This property defines the type of operation. Note that CLONE may change the state of the source PDB and UNPLUG will result in the PDB being dropped. -
no_data(optional):
boolean
Relevant for clone operations. Specifies that the source pluggable database data model definition is cloned but not the data. Defaults to false.
-
pdb_name(optional):
string
Source PDB in case of clone or the PDB to be unplugged in case of an unplug operation. This property is optional and the name defined in the URI takes priority.
-
reuseTempFile(optional):
boolean
Relevant for clone operations. True for temporary file reusage.
-
serviceNameConvert(optional):
string
Relevant for create and plug operations. As defined in the Oracle Multitenant Database documentation. Values can be an even number of strings or NONE.
-
snapshotCopy(optional):
boolean
Creates a snapshot copy PDB from a storage-managed snapshot. Storage-managed snapshots are only supported on specific file systems. It must not be used with snapshotName, snapshotScn and snapshotTimestamp parameters.
-
snapshotName(optional):
string
The name of the PDB snapshot that the new PDB will clone from. Only one of snapshotName, snapshotScn and snapshotTimestame can be provided.
-
snapshotScn(optional):
string
The id of the PDB snapshot that new PDB will clone from. Only one of snapshotName, snapshotScn and snapshotTimestame can be provided.
-
snapshotTimestamp(optional):
string
The time stamp of the PDB snapshot that new PDB will clone from. Only one of snapshotName, snapshotScn and snapshotTimestame can be provided.
-
sparseClonePath(optional):
string
A Path specified for sparse clone snapshot copy. (Optional)
-
tdeExport(optional):
boolean
TDE export for unplug operations.
-
tdeKeystorePath(optional):
string
TDE keystore path is required if the tdeExport flag is set to true. Can be used in unplug operations only.
-
tdeManagement(optional):
string
Optional parameter valid only for cloning (default value is true). If set to false, TDE management operations are not done before or after the cloning process.
-
tdePassword(optional):
string
TDE password for clone/unplug operations only. This is required when the tdeExport flag is set to true for unplug operations.
-
tdeSecret(optional):
string
TDE secret is required if the tdeExport flag is set to true. Can be used in unplug operations only.
-
tempSize(optional):
string
Relevant for clone operations. Size of the temporary tablespace. See size_clause description in Database SQL Language Reference documentation.
-
totalSize(optional):
string
Relevant for clone operations. Size of the tablespace. See size_clause description in Database SQL Language Reference documentation.
-
unlimitedStorage(optional):
boolean
Relevant for clone operations. True for unlimited storage. Even when set to true, totalSize and tempSize MUST be specified in the request if method is CLONE.
-
xmlFileName(optional):
string
Relevant for Unplug operations.
Response
- application/json
200 Response
Examples
The following example shows how to clone a pluggable database or unplug a pluggable database by submitting a POST request on the REST resource using cURL.
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/devpdb1/
Example of Request Body
Note:
https://rest_server_url/resource-path
, used in the preceding command has the following components:
rest_server_url
is the REST server where Oracle Rest Data Server is running- The remainder of the URL includes the ORDS context root, the version of ORDS Database API to use, the path for this operation and the PDB identifier
devpdb1
. The pdb_name path parameter in this example is devpdb1. The PDB Lifecycle Management service requires the credentials ofdb.cdb.adminUser
to be set in the pool configuration and in this example the default pool is configured for the container database.
The following is an example request body to create a new pluggable database by cloning the pluggable database specified by the pdb_name
parameter in the URL. In this example, fileNameConversions
parameter is also provided that results in a FILE_NAME_CONVERT
clause included in the CREATE PLUGGABLE DATABASE
statement executed in the container database.
{
"method": "CLONE",
"clonePDBName": "pdb_new",
"fileNameConversions": "('/disk1/oracle/dbs/devpdb1/','/disk1/oracle/dbs/pdb_new/')",
"unlimitedStorage": true,
"reuseTempFile": true,
"totalSize": "UNLIMITED",
"tempSize": "UNLIMITED"
}
The following is an example request body to unplug the database specified by the pdb_name
parameter in the URL. The pluggable database devpdb1
, is disassociated from the container database and so will not be usable. An XML file, sales_pdb.xml
in this example is generated with metadata about the pluggable database after it is unplugged. This metadata contains the required information to enable a CREATE PLUGGABLE DATABASE
statement on a target container database to plug in the pluggable database.
{
"method": "UNPLUG",
"xmlFileName": "/disk1/oracle/dbs/sales_pdb.xml"
}
Example of Response Header
The following example shows the response header:
HTTP/1.1 200 OK
Date: Thu, 05 Sep 2019 12:21:01 PDT
Content-Type: application/json
X-Frame-Options: SAMEORIGIN
Transfer-Encoding: chunked
Example of Response Body
The following example shows the response body with 200 returned in JSON format:
{
"env":{"defaultTimeZone":"PST8PDT"},
"items":[
{
"statementId":1,
"response":["\nPL\/SQL procedure successfully completed.\n\n"],
"result":0
}
]
}