This topic provides runnable dct-toolkit examples for the most common Continuous Data workflows. Many commands require locally valid values — such as VDB names, snapshot IDs, or bookmark IDs — that must be retrieved from your environment before running. Replace <VDB_NAME_OR_ID> with an actual VDB name or ID. Names and IDs are interchangeable in most commands. All commands respect DCT role-based access control.

For help finding and understanding commands, see Find and use commands. For installation and initial configuration, see Install and configure.

Initial setup

# Configure DCT connection (one-time setup)
				dct-toolkit create_config \
				dctUrl=https://<DCT_IP_OR_HOSTNAME>/dct \
				apiKey=<YOUR_API_KEY> \
				--insecureSSL \
				--unsafeHostnameCheck

				# Verify configuration
			dct-toolkit get_vdbs

Finding VDBs

# List all VDBs
				dct-toolkit get_vdbs

				# Show specific columns
				dct-toolkit get_vdbs --columns=id,name,database_type,status

				# Get specific VDB details
				dct-toolkit get_vdb_by_id vdb_id=<VDB_NAME_OR_ID>

				# Search VDBs
			dct-toolkit search_vdbs --columns=id,name,status

VDB provisioning

The provision_vdb_by_snapshot command creates a new VDB from a dSource or existing VDB. The required arguments vary by database type. Use the -h flag to review all available parameters for your target database type before running.

Provision an Oracle VDB

dct-toolkit provision_vdb_by_snapshot oracle \
				name=<NEW_VDB_NAME> \
				source_data_id=<DSOURCE_OR_VDB_NAME_OR_ID> \
				auto_select_repository=true \
			--tags key-1=value-1 --tags key-2=value-2

Provision a Microsoft SQL Server VDB

dct-toolkit provision_vdb_by_snapshot mssql \
				name=<NEW_VDB_NAME> \
			source_data_id=<DSOURCE_OR_VDB_NAME_OR_ID>

Provision a PostgreSQL or AppData VDB

AppData is the generic term for database types managed through the connector plugin ecosystem, including PostgreSQL.

dct-toolkit provision_vdb_by_snapshot appdata \
				name=<NEW_VDB_NAME> \
			source_data_id=<DSOURCE_OR_VDB_NAME_OR_ID>

Start and stop

Use for daily or weekly cycles and short-term pauses.

dct-toolkit start_vdb vdb_id=<VDB_NAME_OR_ID>
				dct-toolkit stop_vdb vdb_id=<VDB_NAME_OR_ID>

				# Check status
			dct-toolkit get_vdb_by_id vdb_id=<VDB_NAME_OR_ID> --columns=name,status

Enable and disable

Use for long-term pauses (weeks or months) and storage optimization. Disabling releases storage; enabling restores it.

dct-toolkit disable_vdb vdb_id=<VDB_NAME_OR_ID>
				dct-toolkit enable_vdb vdb_id=<VDB_NAME_OR_ID>

				# Enable then start
				dct-toolkit enable_vdb vdb_id=<VDB_NAME_OR_ID>
			dct-toolkit start_vdb vdb_id=<VDB_NAME_OR_ID>

Refresh

From the parent's latest snapshot

First, list available VDBs to identify the VDB name or ID:

dct-toolkit get_vdbs

Omitting snapshot_id selects the latest snapshot from the parent automatically:

dct-toolkit refresh_vdb_by_snapshot vdb_id=<VDB_NAME_OR_ID>

From a specific snapshot

A dSource and VDB are compatible if they originate from the same dSource:

# List available snapshots
				dct-toolkit get_dsource_snapshots dsource_id=<DSOURCE_NAME_OR_ID>
				dct-toolkit get_vdb_snapshots vdb_id=<VDB_NAME_OR_ID>

				# Refresh to specific snapshot
				dct-toolkit refresh_vdb_by_snapshot \
				vdb_id=<VDB_NAME_OR_ID> \
			snapshot_id=<SNAPSHOT_ID>

If the snapshot is incompatible with the specified VDB, the following error is returned: Refresh to an object with a different root container is not supported.

From a timestamp

Timestamps use ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ

# Check available time range
				dct-toolkit get_snapshot_timeflow_range snapshot_id=<SNAPSHOT_ID>

				# Refresh to specific time
				dct-toolkit refresh_vdb_by_timestamp \
				vdb_id=<VDB_NAME_OR_ID> \
			timestamp="2025-10-16T14:30:00Z"

By default, each snapshot provides a single timestamp. To enable a continuous range of provisionable timestamps, LogSync (Point-in-Time Recovery) must be enabled on the VDB or dSource. If the requested timestamp falls outside the available range, the following error is returned: Cannot find provisionable point <timestamp> for source <VDB_ID>

From a bookmark

# List bookmarks for a VDB
				dct-toolkit get_bookmarks_by_vdb vdb_id=<VDB_NAME_OR_ID>

				# Refresh to bookmark
				dct-toolkit refresh_vdb_from_bookmark \
				vdb_id=<VDB_NAME_OR_ID> \
			bookmark_id=<BOOKMARK_NAME_OR_ID>

From a sibling VDB's snapshot

# Get sibling's snapshots
				dct-toolkit get_vdb_snapshots vdb_id=<SIBLING_VDB_NAME_OR_ID>

				# Refresh using sibling's snapshot
				dct-toolkit refresh_vdb_by_snapshot \
				vdb_id=<TARGET_VDB> \
			snapshot_id=<SIBLINGS_SNAPSHOT_ID>

Snapshot management

# Take manual snapshot
				dct-toolkit snapshot_vdb vdb_id=<VDB_NAME_OR_ID>
				dct-toolkit snapshot_dsource dsource_id=<DSOURCE_NAME_OR_ID>

				# List snapshots
				dct-toolkit get_vdb_snapshots vdb_id=<VDB_NAME_OR_ID>
				dct-toolkit get_dsource_snapshots dsource_id=<DSOURCE_NAME_OR_ID>

				# Sort by most recent
				dct-toolkit get_vdb_snapshots vdb_id=<VDB_NAME_OR_ID> sort=-timestamp

				# View snapshot details
				dct-toolkit get_snapshot_by_id snapshot_id=<SNAPSHOT_ID>

				# Set retention (days)
				dct-toolkit update_snapshot snapshot_id=<SNAPSHOT_ID> retention=90

				# Remove retention limit (keep forever)
				dct-toolkit unset_snapshot_retention snapshot_id=<SNAPSHOT_ID>

				# Delete snapshot
			dct-toolkit delete_snapshot snapshot_id=<SNAPSHOT_ID>

Bookmark management

# Create bookmark - single VDB
				dct-toolkit create_bookmark \
				name=<BOOKMARK_NAME> \
				vdb_ids=<VDB_NAME_OR_ID>

				# Create bookmark - multiple VDBs
				dct-toolkit create_bookmark \
				name=<BOOKMARK_NAME> \
				vdb_ids=<VDB1> \
				vdb_ids=<VDB2>

				# List all bookmarks
				dct-toolkit get_bookmarks

				# List bookmarks for a VDB
				dct-toolkit get_bookmarks_by_vdb vdb_id=<VDB_NAME_OR_ID>

				# View bookmark details
				dct-toolkit get_bookmark_by_id bookmark_id=<BOOKMARK_NAME_OR_ID>

				# Make bookmark public (shareable)
				dct-toolkit update_bookmark \
				bookmark_id=<BOOKMARK_NAME_OR_ID> \
				bookmark_type=PUBLIC

				# Add tags to bookmark
				dct-toolkit create_bookmark_tags \
				bookmark_id=<BOOKMARK_ID> \
				tags='Team=QA' 'Sprint=24'

				# Delete bookmark
			dct-toolkit delete_bookmark bookmark_id=<BOOKMARK_NAME_OR_ID>

VDB Group management

VDB Groups allow multiple VDBs to be acted on together. They are the DCT equivalent of a Delphix Self-Service multi-VDB container.

# Create a VDB Group
				dct-toolkit create_vdb_group \
				vdb_ids=<VDB_1_NAME_OR_ID> \
				vdb_ids=<VDB_2_NAME_OR_ID> \
				name=<VDB_GROUP_NAME>

				# Add tags for organization or access control
				dct-toolkit create_vdb_groups_tags \
				vdb_group_id=<VDB_GROUP_NAME_OR_ID> \
				tags='<KEY_1>=<VALUE_1>' '<KEY_2>=<VALUE_2>'

				# Confirm configuration
			dct-toolkit get_vdb_groups

Job management

# Run command asynchronously
				dct-toolkit <COMMAND> --no-wait

				# List recent jobs
				dct-toolkit get_jobs \
				--columns=id,status,type,target_name \
				sort=-start_time

				# Get job details
				dct-toolkit get_job_by_id job_id=<JOB_ID>

				# Monitor job status
			dct-toolkit get_job_by_id job_id=<JOB_ID> --columns=status,percent_complete

Output formatting

# Default table format
				dct-toolkit get_vdbs

				# JSON format
				dct-toolkit get_vdbs --json

				# CSV format
				dct-toolkit get_vdbs --csv

				# Select specific columns
				dct-toolkit get_vdbs --columns=id,name,status

				# Sort output
				dct-toolkit get_vdbs sort=name          # Ascending
				dct-toolkit get_vdbs sort=-name         # Descending

				# JSON path filtering
			dct-toolkit get_vdbs -jp='$.items[*].id' --json

Account and access management

Full user management requires familiarity with DCT's attribute-based access control (ABAC) model. The DCT UI provides a more complete experience for initial access control configuration. The examples below cover account creation and the most common tag-based access pattern.

Create an account

The tags argument can be used to assign the account to an Access Group at creation time:

dct-toolkit create_account \
				email=<EMAIL> \
				username=<USERNAME> \
				password=<PASSWORD> \
				tags=<KEY>=<VALUE> \
			--generate_api_key

Accounts can also be manually assigned to Access Groups using add_access_group_accounts_ids.

Assign access using tags

Tags are the recommended mechanism for managing object access at scale. Initial framework configuration is best done through the UI; once set up, tags can be applied to objects from the CLI.

# Review a VDB's current tags
				dct-toolkit get_vdb_by_id vdb_id=<VDB_NAME_OR_ID>

				# Add tags to a VDB
				dct-toolkit create_vdb_tags \
				vdb_id=<VDB_NAME_OR_ID> \
				tags='<KEY_1>=<VALUE_1>' '<KEY_2>=<VALUE_2>'

				# Add tags to an environment
			dct-toolkit create_environment_tags environmentId=<envId> tags purpose=testing key1=value1

Environment variables

# Set custom config file location
			export DCT_TOOLKIT_CONFIG_FILE=/path/to/config

Common workflows

Daily refresh routine

# Morning: start and refresh
				dct-toolkit start_vdb vdb_id=Oracle_DEV
				dct-toolkit refresh_vdb_by_snapshot vdb_id=Oracle_DEV

				# Evening: stop to save resources
			dct-toolkit stop_vdb vdb_id=Oracle_DEV

QA approval process

# Create and share QA baseline
				dct-toolkit create_bookmark name="QA_Pass_Sprint_24" vdb_ids=Oracle_QA
				dct-toolkit update_bookmark bookmark_id="QA_Pass_Sprint_24" bookmark_type=PUBLIC

				# Refresh team VDB to baseline
			dct-toolkit refresh_vdb_from_bookmark vdb_id=Oracle_DEV bookmark_id="QA_Pass_Sprint_24"

Pre-deployment backup

# Take snapshot and create bookmark before deployment
				dct-toolkit snapshot_vdb vdb_id=Oracle_PROD
				dct-toolkit create_bookmark name="Pre_Deploy_v2.5" vdb_ids=Oracle_PROD

				# If rollback is needed
			dct-toolkit refresh_vdb_from_bookmark vdb_id=Oracle_PROD bookmark_id="Pre_Deploy_v2.5"

Storage optimization

# Disable unused VDB
				dct-toolkit disable_vdb vdb_id=Oracle_UAT

				# Re-enable when needed
				dct-toolkit enable_vdb vdb_id=Oracle_UAT
			dct-toolkit start_vdb vdb_id=Oracle_UAT

Troubleshooting

Error Resolution
VDB is not in a running state Run dct-toolkit start_vdb vdb_id=<VDB_NAME_OR_ID> first.
Cannot find provisionable point Check available timeflow with dct-toolkit get_snapshot_timeflow_range snapshot_id=<SNAPSHOT_ID>.
Refresh to an object with a different root container is not supported The snapshot and VDB must share the same root parent. Check both with --columns=root_parent_id and confirm they match.

Related topics

Last updated
Oct 14, 2026