This API cookbook recipe demonstrates how to provision an Oracle VDB using the Delphix Engine API.

In order to provision an Oracle VDB using the API, you need to provide a set of parameters of type OracleProvisionParameters (having already authenticated as per API Cookbook: Authentication).

There are a number of parameters you will need to know:

  • Group reference - See the list operation in "/api/#group" on your Delphix Engine.
  • VDB Name - The name you want the new VDB to be called.
  • Mount path - Where to mount datasets on the target host.
  • DB/unique names - The Oracle DB and unique names, often the same as the VDB name.
  • Instance name/number - The Oracle instance and number to use (dictated by your environment, but often the VDB name and 1).
  • Repository reference - See the list operation in "/api/#repository" on your Delphix Engine.
  • Timeflow point - See API Cookbook: Snapshots for information on finding a timeflow point, as well as the reference at "/api/#TimeflowPointParameters".

You will need to use the structure of the OracleProvisionParameters object to fill it out, see "/api/#OracleProvisionParameters" for details on which fields are mandatory/optional.


Here is a minimal example using curl to communicate with the API, provisioning a VDB called "EGVDB" (authentication omitted)

curl -X POST -k --data @- http://delphix1.company.com/resources/json/delphix/database/provision \
	-b cookies.txt -H "Content-Type: application/json" <<EOF
{ 
	"container": {
		"group": "GROUP-2",
		"name": "EGVDB", 
		"type": "OracleDatabaseContainer"
	},
	"source": {
		"type": "OracleVirtualSource",
		"mountBase": "/mnt/provision",
        "allowAutoVDBRestartOnHostReboot": true
	},
	"sourceConfig": {
		"type": "OracleSIConfig",
		"databaseName": "EGVDB", 
		"uniqueName": "EGVDB", 
		"repository": "ORACLE_INSTALL-3",
		"instance": {
			"type": "OracleInstance",
			"instanceName": "EGVDB",
			"instanceNumber": 1
		}
	},
	"timeflowPointParameters": {
		"type": "TimeflowPointLocation",
		"timeflow": "ORACLE_TIMEFLOW-123",
		"location": "3043123"
	},
	"type": "OracleProvisionParameters"
}
EOF