This guide covers the VDB operations you'll use most frequently with dct-toolkit. Estimated time: 10 minutes.
Prerequisites
-
dct-toolkit installed and configured (
create_configcompleted) -
Access to at least one VDB
-
Appropriate DCT permissions for VDB operations
Finding your VDBs
# List all VDBs
dct-toolkit search_vdbs
# Show essential columns only
dct-toolkit search_vdbs --columns=id,name,database_type,status
Record the VDB name or ID you want to manage — both are accepted in commands.
Start and stop
Start and stop control whether the database instance is running. This is the most common day-to-day operation. Storage remains allocated in both states and VDB configuration is preserved.
dct-toolkit stop_vdb vdb_id=<VDB_NAME_OR_ID>
dct-toolkit start_vdb vdb_id=<VDB_NAME_OR_ID>
# Check status
dct-toolkit get_vdb_by_id vdb_id=<VDB_NAME_OR_ID> --columns=name,status
Common status values: RUNNING (online), STOPPED (offline, ready to start), DISABLED (see below), PROVISIONING (being created), DELETING (being removed).
Enable and disable
Enable and disable affect both availability and environment configuration. Disabling removes the VDB's configuration files from the target environment; enabling restores them. This is necessary when migrating a VDB between environments.
dct-toolkit disable_vdb vdb_id=<VDB_NAME_OR_ID>
# Re-enable (two steps)
dct-toolkit enable_vdb vdb_id=<VDB_NAME_OR_ID>
dct-toolkit start_vdb vdb_id=<VDB_NAME_OR_ID>
# Or combine into one step
dct-toolkit enable_vdb vdb_id=<VDB_NAME_OR_ID> --attempt_start
Stop vs disable: when to use each
| Aspect | Stop / Start | Disable / Enable |
|---|---|---|
| Speed | Fast (seconds to minutes) | Slower (minutes) |
| Configuration files | Retained on environment | Removed / restored |
| Best for | Daily and weekly cycles, short-term pauses | Multi-week pauses, environment migration, seasonal decommission |
Basic refresh
Refreshing a VDB updates it with data from its parent dSource or VDB. Any uncommitted changes in the VDB are discarded and the VDB restarts automatically.
# Refresh from parent's latest snapshot
dct-toolkit refresh_vdb_by_snapshot vdb_id=<VDB_NAME_OR_ID>
# View parent relationship
dct-toolkit get_vdb_by_id vdb_id=<VDB_NAME_OR_ID> --columns=name,parent_id,parent_dsource_id,database_type
If parent_id and parent_dsource_id are the same, the parent is a dSource. If they differ, the parent is another VDB.
Asynchronous execution
By default, dct-toolkit waits for an operation to complete before returning. To execute without waiting, add --no-wait and monitor separately:
# Run without waiting
dct-toolkit refresh_vdb_by_snapshot vdb_id=Oracle_DEV --no-wait -js
# Option 1: Check VDB status
dct-toolkit get_vdb_by_id vdb_id=Oracle_DEV --columns=name,status,last_refreshed_date
# Option 2: Check job status
dct-toolkit get_job_by_id job_id=<JOB_ID> --columns=status,percent_complete
Common daily workflows
Morning startup and refresh
dct-toolkit start_vdb vdb_id=Oracle_DEV
dct-toolkit refresh_vdb_by_snapshot vdb_id=Oracle_DEV
Evening shutdown
dct-toolkit stop_vdb vdb_id=Oracle_DEV
Weekend management
# Friday evening
dct-toolkit stop_vdb vdb_id=Oracle_DEV
dct-toolkit stop_vdb vdb_id=Postgres_DEV
dct-toolkit stop_vdb vdb_id=MSSQL_DEV
# Monday morning
dct-toolkit start_vdb vdb_id=Oracle_DEV
dct-toolkit refresh_vdb_by_snapshot vdb_id=Oracle_DEV
Long-term pause
# Before a multi-week pause
dct-toolkit disable_vdb vdb_id=Oracle_PROJECT_X
# When project resumes
dct-toolkit enable_vdb vdb_id=Oracle_PROJECT_X
dct-toolkit start_vdb vdb_id=Oracle_PROJECT_X
dct-toolkit refresh_vdb_by_snapshot vdb_id=Oracle_PROJECT_X
Troubleshooting
| Issue | Resolution |
|---|---|
| VDB won't start | Check status with --columns=name,status. If status is DISABLED, run enable_vdb before start_vdb. |
| Insufficient permissions error | Contact your DCT administrator to confirm appropriate permissions are assigned in your role. |
Next steps
-
Advanced refresh strategies — Refresh from specific snapshots, timestamps, and bookmarks.