This guide covers provisioning an Oracle Virtual Database (VDB) using dct-toolkit.
Prerequisites
-
dct-toolkit installed and configured (
create_configcompleted) -
Access to a source dSource or VDB
-
Target environment with an Oracle repository available
-
Appropriate DCT permissions to provision VDBs
Step 1: Identify the source dSource
# List all dSources
dct-toolkit get_dsources
# Search for Oracle dSources specifically
dct-toolkit search_dsources database_type=Oracle --columns=id,name,engine_name sort=name
Step 2: List available snapshots
# List snapshots for the dSource
dct-toolkit get_dsource_snapshots dsource_id=<DSOURCE_ID_OR_NAME>
# Sort by most recent
dct-toolkit search_snapshots dataset_id=<DSOURCE_ID_OR_NAME> sort=-timestamp
Record a snapshot ID to provision from a specific point in time, or skip this step to use the latest snapshot.
Step 3: Identify the target environment and repository
By default, DCT selects a compatible repository automatically. If there are multiple compatible repositories in a single environment, identify the specific one you want.
Option A: Find the target environment
dct-toolkit get_environments --columns=id,name,os_type
# Confirm a specific environment and its repositories
dct-toolkit search_environments name=<ENVIRONMENT_NAME> -js
Option B: Search for compatible repositories
# Find repositories compatible with a specific snapshot
dct-toolkit compatible_repositories_by_snapshot snapshot_id=<SNAPSHOT_ID>
# Or find repositories compatible with the latest snapshot from a dSource
dct-toolkit compatible_repositories_by_snapshot source_data_id=<DSOURCE_ID_OR_NAME>
Step 4: View provisioning defaults (optional)
dct-toolkit provision_vdb_by_snapshot_defaults source_data_id=<DSOURCE_ID_OR_NAME>
Step 5: Provision the VDB
From the latest snapshot
dct-toolkit provision_vdb_by_snapshot oracle \
name=<NEW_VDB_NAME> \
source_data_id=<DSOURCE_ID_OR_NAME> \
environment_id=<TARGET_ENVIRONMENT_ID>
From a specific snapshot
dct-toolkit provision_vdb_by_snapshot oracle \
name=<NEW_VDB_NAME> \
snapshot_id=<SNAPSHOT_ID> \
environment_id=<TARGET_ENVIRONMENT_ID>
From a specific timestamp
Timestamps use ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
dct-toolkit provision_vdb_by_timestamp oracle \
name=<NEW_VDB_NAME> \
source_data_id=<DSOURCE_ID_OR_NAME> \
timestamp=<TIMESTAMP> \
environment_id=<TARGET_ENVIRONMENT_ID>
From a bookmark
dct-toolkit provision_vdb_from_bookmark oracle \
name=<NEW_VDB_NAME> \
bookmark_id=<BOOKMARK_ID> \
environment_id=<TARGET_ENVIRONMENT_ID>
With advanced parameters
dct-toolkit provision_vdb_by_snapshot oracle \
name=<NEW_VDB_NAME> \
source_data_id=<DSOURCE_ID_OR_NAME> \
environment_id=<TARGET_ENVIRONMENT_ID> \
repository_id=<REPOSITORY_ID> \
target_group_id=<DATASET_GROUP_ID> \
mount_point=<CUSTOM_MOUNT_POINT> \
environment_user_id=<ENVIRONMENT_USER_ID> \
vdb_restart=true
Use dct-toolkit provision_vdb_by_snapshot oracle -h to see all available parameters. If a specific repository is not provided, DCT selects one automatically. If multiple repositories are compatible, append repository_id=<REPOSITORY_ID> to specify one.
Step 6: Verify VDB creation
dct-toolkit get_vdbs --columns=id,name,database_type,status
dct-toolkit get_vdb_by_id vdb_id=<VDB_NAME_OR_ID>
Asynchronous provisioning
dct-toolkit provision_vdb_by_snapshot oracle \
name=<NEW_VDB_NAME> \
source_data_id=<DSOURCE_ID_OR_NAME> \
environment_id=<TARGET_ENVIRONMENT_ID> \
--no-wait
# Monitor separately
dct-toolkit get_jobs --columns=id,status,type,target_name
dct-toolkit get_job_by_id job_id=<JOB_ID>