Replication relationship
Overview
DCT 11.0 release adds a functionality to get the primary and replica objects for a given object in DCT. Whenever DCT identifies that a replica object has been added to the engine, it creates a job to fetch the primary object information from its source engine. In addition, when replica objects are updated with primary object information, the primary objects are also updated with their children (replicas).
This feature requires that both source and target engines are registered in DCT.
Prerequisites
A running instance of DCT, two instances of Delphix Engines, and some of the dSource and VDBs on one of those engines. A replication profile needs to be created from an engine that contains dSource and VDBs to replicate to another engine.
Replication details
A replication details box will appear on the VDB or dSource tab showing the Source Engine and Source VDB/dSource for replication.

API changes
New fields have been added in the following APIs:
GET - /v3/dsources
GET - /v3/dsources/{dsourceId}
POST - /v3/dsources/search
GET - /v3/vdbs
GET - /v3/vdbs/{dsourceId}
POST - /v3/vdbs/search
The new fields are as follows:
primary_object_id
primary_engine_id
primary_engine_name
replicas
replica_id
replica_engine_id
replica_engine_name
replica_namespace_id
VDB replica and primary object sample response:
curl --location 'http://localhost:8080/v3/vdbs' \
--header 'Authorization: apk {{authToken}}'
{
"items": [
{
"id": "1-ORACLE_DB_CONTAINER-11",
"database_type": "Oracle",
"name": "VCDO_IF0",
"namespace_id": "1-NAMESPACE-2",
"namespace_name": "ip-10-110-221-77-1",
"is_replica": true,
"is_locked": false,
"database_version": "19.3.0.0.0",
"size": 0,
"storage_size": 2778624,
"engine_id": "1",
"masked": false,
"content_type": "PDB",
"parent_timeflow_timestamp": "2023-10-16T10:11:02Z",
"parent_timeflow_timezone": "America/New_York,EDT-0400",
"environment_id": "1-UNIX_HOST_ENVIRONMENT-3",
"ip_address": "10.43.89.210",
"fqdn": "ora-src.dcol1.delphix.com",
"parent_id": "1-ORACLE_DB_CONTAINER-8",
"parent_dsource_id": "1-ORACLE_DB_CONTAINER-8",
"group_name": "Untitled",
"engine_name": "e1",
"cdb_id": "1-ORACLE_SINGLE_CONFIG-24",
"creation_date": "2023-10-16T10:38:39.05Z",
"hooks": {
"pre_refresh": [],
"post_refresh": [],
"pre_self_refresh": [],
"post_self_refresh": [],
"pre_rollback": [],
"post_rollback": [],
"configure_clone": [],
"pre_snapshot": [],
"post_snapshot": [],
"pre_start": [],
"post_start": [],
"pre_stop": [],
"post_stop": []
},
"config_params": {
"_cdb_disable_pdb_limit": "TRUE",
"audit_file_dest": "'/u01/app/oracle/admin/CDOMLOSR421F/adump'",
"audit_trail": "'DB'",
"compatible": "'19.0.0'",
"diagnostic_dest": "'/u01/app/oracle'",
"dispatchers": "'(PROTOCOL=TCP) (SERVICE=CDOMLOSR421FXDB)'",
"enable_pluggable_database": "TRUE",
"log_archive_format": "'%t_%s_%r.dbf'",
"max_pdbs": "4098",
"memory_max_target": "1342177280",
"memory_target": "1342177280",
"nls_language": "'AMERICAN'",
"nls_territory": "'AMERICA'",
"open_cursors": "300",
"processes": "300",
"remote_login_passwordfile": "'EXCLUSIVE'"
},
"mount_point": "/mnt/provision",
"current_timeflow_id": "1-ORACLE_TIMEFLOW-11",
"vdb_restart": false,
"is_appdata": false,
"primary_object_id": "1-ORACLE_DB_CONTAINER-6",
"primary_engine_id": "1",
"primary_engine_name": "e1"
},
{
"id": "1-ORACLE_DB_CONTAINER-6",
"database_type": "Oracle",
"name": "VCDO_IF0",
"is_replica": false,
"is_locked": false,
"database_version": "19.3.0.0.0",
"size": 794755072,
"storage_size": 32859648,
"engine_id": "1",
"status": "RUNNING",
"masked": false,
"content_type": "PDB",
"parent_timeflow_timestamp": "2023-10-16T10:11:02Z",
"parent_timeflow_timezone": "America/New_York,EDT-0400",
"environment_id": "1-UNIX_HOST_ENVIRONMENT-1",
"ip_address": "10.43.89.210",
"fqdn": "ora-src.dcol1.delphix.com",
"parent_id": "1-ORACLE_DB_CONTAINER-2",
"parent_dsource_id": "1-ORACLE_DB_CONTAINER-2",
"group_name": "Untitled",
"engine_name": "e1",
"cdb_id": "1-ORACLE_SINGLE_CONFIG-2",
"creation_date": "2023-10-16T10:38:39.05Z",
"hooks": {
"pre_refresh": [],
"post_refresh": [],
"pre_self_refresh": [],
"post_self_refresh": [],
"pre_rollback": [],
"post_rollback": [],
"configure_clone": [],
"pre_snapshot": [],
"post_snapshot": [],
"pre_start": [],
"post_start": [],
"pre_stop": [],
"post_stop": []
},
"config_params": {
"_cdb_disable_pdb_limit": "TRUE",
"audit_file_dest": "'/u01/app/oracle/admin/CDOMLOSR421F/adump'",
"audit_trail": "'DB'",
"compatible": "'19.0.0'",
"diagnostic_dest": "'/u01/app/oracle'",
"dispatchers": "'(PROTOCOL=TCP) (SERVICE=CDOMLOSR421FXDB)'",
"enable_pluggable_database": "TRUE",
"log_archive_format": "'%t_%s_%r.dbf'",
"max_pdbs": "4098",
"memory_max_target": "1342177280",
"memory_target": "1342177280",
"nls_language": "'AMERICAN'",
"nls_territory": "'AMERICA'",
"open_cursors": "300",
"processes": "300",
"remote_login_passwordfile": "'EXCLUSIVE'"
},
"mount_point": "/mnt/provision",
"current_timeflow_id": "1-ORACLE_TIMEFLOW-6",
"vdb_restart": false,
"is_appdata": false,
"replicas": [
{
"replica_id": "1-ORACLE_DB_CONTAINER-11",
"replica_engine_id": "1",
"replica_engine_name": "e1",
"replica_namespace_id": "1-NAMESPACE-2"
}
]
}
],
"response_metadata": {
"total": 2
}
}
Sample response for dSource change:
curl --location 'http://localhost:8080/v3/dsources/search' \
--header 'Content-Type: application/json' \
--header 'Authorization: apk {{authToken}}' \
--data '{
"filter_expression" : "engine_id EQ '\''1'\''"
}'
{
"items": [
{
"id": "1-ORACLE_DB_CONTAINER-10",
"database_type": "Oracle",
"name": "CDOMSHSR6706PDB2-NO-CHILD",
"namespace_id": "1-NAMESPACE-2",
"namespace_name": "ip-10-110-221-77-1",
"is_replica": true,
"database_version": "19.3.0.0.0",
"content_type": "PDB",
"data_uuid": "46f1613b223b1dd5364bdc3ecfd2755d",
"storage_size": 180355584,
"creation_date": "2023-10-16T10:09:00.567Z",
"group_name": "Untitled",
"engine_id": "1",
"source_id": "1-ORACLE_PDB_CONFIG-20",
"engine_name": "e1",
"cdb_id": "1-ORACLE_SINGLE_CONFIG-23",
"current_timeflow_id": "1-ORACLE_TIMEFLOW-7",
"is_appdata": false,
"primary_object_id": "1-ORACLE_DB_CONTAINER-4",
"primary_engine_id": "1",
"primary_engine_name": "e1"
},
{
"id": "1-ORACLE_DB_CONTAINER-12",
"database_type": "Oracle",
"name": "CDOMLOSR421FPDB2",
"is_replica": false,
"database_version": "19.3.0.0.0",
"content_type": "PDB",
"data_uuid": "837bbc258a479ff86dbce5656beeba2a",
"storage_size": 236433920,
"creation_date": "2023-10-17T10:19:19.496Z",
"group_name": "Untitled",
"enabled": true,
"engine_id": "1",
"source_id": "1-ORACLE_PDB_CONFIG-7",
"status": "RUNNING",
"engine_name": "e1",
"cdb_id": "1-ORACLE_SINGLE_CONFIG-2",
"current_timeflow_id": "1-ORACLE_TIMEFLOW-12",
"is_appdata": false
},
{
"id": "1-ORACLE_DB_CONTAINER-2",
"database_type": "Oracle",
"name": "CDOMLOSR421FPDB1",
"is_replica": false,
"database_version": "19.3.0.0.0",
"content_type": "PDB",
"data_uuid": "834a794e51ec096059922dc06625fb66",
"storage_size": 245758976,
"creation_date": "2023-10-16T10:08:35.425Z",
"group_name": "Untitled",
"enabled": true,
"engine_id": "1",
"source_id": "1-ORACLE_PDB_CONFIG-6",
"status": "RUNNING",
"engine_name": "e1",
"cdb_id": "1-ORACLE_SINGLE_CONFIG-2",
"current_timeflow_id": "1-ORACLE_TIMEFLOW-2",
"is_appdata": false,
"replicas": [
{
"replica_id": "1-ORACLE_DB_CONTAINER-8",
"replica_engine_id": "1",
"replica_engine_name": "e1",
"replica_namespace_id": "1-NAMESPACE-2"
}
]
},
{
"id": "1-ORACLE_DB_CONTAINER-21",
"database_type": "Oracle",
"name": "DSOURCE-WITH-CUSTOM-POLICY",
"is_replica": false,
"database_version": "19.3.0.0.0",
"content_type": "PDB",
"data_uuid": "dd4216e99ee17e8a7afa97cce012aa42",
"storage_size": 181809664,
"creation_date": "2023-10-18T13:09:30.299Z",
"group_name": "Untitled",
"enabled": true,
"engine_id": "1",
"source_id": "1-ORACLE_PDB_CONFIG-11",
"status": "RUNNING",
"engine_name": "e1",
"cdb_id": "1-ORACLE_SINGLE_CONFIG-3",
"current_timeflow_id": "1-ORACLE_TIMEFLOW-21",
"is_appdata": false
},
{
"id": "1-ORACLE_DB_CONTAINER-4",
"database_type": "Oracle",
"name": "CDOMSHSR6706PDB2-NO-CHILD",
"is_replica": false,
"database_version": "19.3.0.0.0",
"content_type": "PDB",
"data_uuid": "46f1613b223b1dd5364bdc3ecfd2755d",
"storage_size": 190537728,
"creation_date": "2023-10-16T10:09:00.567Z",
"group_name": "Untitled",
"enabled": true,
"engine_id": "1",
"source_id": "1-ORACLE_PDB_CONFIG-10",
"status": "RUNNING",
"engine_name": "e1",
"cdb_id": "1-ORACLE_SINGLE_CONFIG-3",
"current_timeflow_id": "1-ORACLE_TIMEFLOW-4",
"is_appdata": false,
"replicas": [
{
"replica_id": "1-ORACLE_DB_CONTAINER-10",
"replica_engine_id": "1",
"replica_engine_name": "e1",
"replica_namespace_id": "1-NAMESPACE-2"
}
]
},
{
"id": "1-ORACLE_DB_CONTAINER-8",
"database_type": "Oracle",
"name": "CDOMLOSR421FPDB1",
"namespace_id": "1-NAMESPACE-2",
"namespace_name": "ip-10-110-221-77-1",
"is_replica": true,
"database_version": "19.3.0.0.0",
"content_type": "PDB",
"data_uuid": "834a794e51ec096059922dc06625fb66",
"storage_size": 226567680,
"creation_date": "2023-10-16T10:08:35.425Z",
"group_name": "Untitled",
"engine_id": "1",
"source_id": "1-ORACLE_PDB_CONFIG-22",
"engine_name": "e1",
"cdb_id": "1-ORACLE_SINGLE_CONFIG-24",
"current_timeflow_id": "1-ORACLE_TIMEFLOW-9",
"is_appdata": false,
"primary_object_id": "1-ORACLE_DB_CONTAINER-2",
"primary_engine_id": "1",
"primary_engine_name": "e1"
}
],
"response_metadata": {
"total": 6
}
}