Migration Utility Functionality

Learn about the features and capabilities of Oracle Exadata Cloud Infrastructure Migration Utility.

Migration Utility Operations

The Oracle Exadata Cloud Infrastructure Migration Utility uses the exacloudmigration command to generate reports and input templates, create or migrate Exadata infrastructures, VM clusters, database homes, databases, and PDBs, manage wallets and Data Guard operations, inspect networks and jobs, create databases from backups, and collect diagnostics. Global options provide help and version information, while commands support targeted or comprehensive migration workflows.

Read More: Migration Utility Operations

Migration Utility Directory Structure

When the utility is extracted under /home/opc, generated input templates are stored in /home/opc/inputs/, infrastructure and VM cluster templates in infrastructure-specific subdirectories, database and PDB templates beneath each VM cluster directory, and job logs in /home/opc/exacloudmigration_data/logs/.

Read More: Migration Utility Directory Structure

Input Template File Format

Migration input templates contain global parameters and resource-specific parameter sections. Resource sections describe the Exadata infrastructure, individual VM clusters, databases, and each database’s PDBs, enabling the utility to validate and execute creation or migration operations according to the configured values.

Read More: Input Template File Format

Generate Report

The generate_report command discovers and documents the configuration of a specified Exadata infrastructure, including infrastructure, VM cluster, server, storage, software, CPU, memory, and database details. Reports can be produced in HTML or JSON format with a selected output filename and OCI profile, supporting migration planning, capacity assessment, image selection, and database distribution decisions.

Read More: Generate Report

Generate Input Templates

The generate_template command captures source Exadata configuration details into editable templates for infrastructure, VM clusters, databases, and PDBs. It can generate all templates or only selected resource types, supports ExaDB-D and ExaDB-C@C targets, allows custom filenames and OCI profiles, and uses global and resource-specific parameters to control target creation and migration.

Read More: Generate Input Templates

Generate Patches File

For ExaDB-C@C sources, the ecmasshutility get_patches command must be run by the oracle user on a source VM cluster database server to create a patches file listing one-off patches and Release Updates applied to each Oracle home. The file must be copied into the appropriate VM cluster input directory for infrastructure, VM cluster, database home image, database home, and Data Guard migration operations, unless the nopatch option is used.

Read More: Generate Patches File

Validate and Dry Run

The --dry-run option validates generated and modified input templates and performs an OCI dry run without changing either environment. It is recommended for repeated prechecks before create or migrate commands; resource selection can be controlled by template create=yes|no, -a to include all listed resources, or -l to include only specified resources.

Read More: Validate and Dry Run

Create Exadata Infrastructure

The create_infra command creates Exadata infrastructure in a target region or compartment from a generated infrastructure input file. It supports dry-run validation and, after successful checks, replicates infrastructure settings such as free-form tags, customer contacts, and maintenance windows; infrastructure creation generally takes approximately three to five minutes.

Read More: Create Exadata Infrastructure

Create VM Clusters

The create_vmcluster command creates all or selected VM clusters in an available target infrastructure using a VM cluster template. It supports dry-run validation, comma-delimited cluster selection, parallel creation of multiple clusters, and replication of metadata such as free-form tags and SSH keys; creating one VM cluster can take approximately six hours.

Read More: Create VM Clusters

Create Database dbHome Software Image

The create_dbhomeimage command creates database home software images for all or selected databases on a source VM cluster after validating the database template and target VM cluster. It supports dry runs, target VM cluster selection, and ExaDB-C@C patch files, with nopatch available to use the source home’s base Release Update instead of one-off patches.

Read More: Create Database dbHome Software Image

Migrate Exadata Infrastructure

The migrate_infra command performs an end-to-end infrastructure migration by creating the target Exadata infrastructure, selected or all VM clusters, and associated database homes from infrastructure, VM cluster, and optional database templates. It supports dry runs, resource selection, database inclusion, and ExaDB-C@C patch handling through yes or nopatch, while replicating associated infrastructure and VM cluster metadata.

Read More: Migrate Exadata Infrastructure

Migrate VM Clusters

The migrate_vmcluster command migrates all or selected VM clusters to an available target infrastructure and can include database home migration using per-cluster database templates. It supports dry-run validation, resource selection, ExaDB-C@C patch files or nopatch, parallel processing of multiple clusters, and replication of tags, SSH keys, and other VM cluster metadata.

Read More: Migrate VM Clusters

Migrate DBHome(s)

The migrate_dbhomes command transfers all or selected database homes from a source VM cluster to a target VM cluster using a database input file. It supports dry-run validation, target VM cluster selection, ExaDB-C@C patch files or nopatch, and replication of database home free-form tags.

Read More: Migrate DBHome(s)

Database Wallet Operations

Database wallet operations securely store SYS and TDE passwords in a file protected by a wallet password, avoiding repeated credential prompts during database migration, Data Guard transitions, reinstate, and PDB relocation. Wallets can be generated, edited, and inspected with either exacloudmigration on the client or ecmasshutility on a source database server, with support for adding or updating database entries and listing stored database names.

Read More: Database Wallet Operations

Migrate Databases

The database migration functions establish Data Guard associations or perform switchover and failover between source and target databases. They support all or selected databases, wallet credentials, dry runs, and ExaDB-C@C patch files; cross-model ExaDB-C@C to ExaDB-D database migration is unsupported. Switchover promotes the standby and demotes the primary, while failover promotes the standby and leaves the former primary disabled, with backup settings replicated when applicable.

Read More: Migrate Databases

Reinstate Standby

The reinstate command restores a disabled standby database to standby status for all or selected databases in a VM cluster. It uses the database input template and optionally a wallet, supports dry-run validation, and prompts for SYS credentials when wallet entries are unavailable.

Read More: Reinstate Standby

Delete Standby

The delete_standby command permanently deletes specified standby databases using the database input template and a required comma-delimited database list. It supports dry-run validation and requires confirmation of the databases targeted for termination before deletion.

Read More: Delete Standby

Migrate PDBs

The pdb command relocates or clones all or selected PDBs between source and target CDBs using a PDB input template, optional wallet, and dry-run validation. Relocation drops the source PDB after completion, while cloning supports local, remote, and refresh modes with credential requirements varying by clone type; KMS-managed encryption removes the need for a TDE password.

Read More: Migrate PDBs

List All Data Guard Associations for Given VM Cluster

The list_dg_associations command displays Data Guard associations for all or selected databases in a specified VM cluster. It can obtain the source VM cluster from a database input file or OCID and supports OCI profile selection for ExaDB-D and ExaDB-C@C environments.

Read More: List All Data Guard Associations for Given VM Cluster

List VM Cluster Networks

The list_vm_networks command, applicable only to ExaDB-C@C, lists all VM cluster networks associated with a specified Exadata infrastructure. It requires the infrastructure OCID and optionally accepts an OCI profile.

Read More: List VM Cluster Networks

List the Jobs History

The list_jobs command displays recent migration utility job history, showing the number of latest jobs specified by the --count option; five jobs are displayed by default.

Read More: List the Jobs History

Get Job Details and Status

The get_job_status command displays details and status for a utility job identified by job ID. If no ID is supplied, it reports the latest job, and an OCI profile can optionally be specified.

Read More: Get Job Details and Status

Create Database from Existing Database Backup

The create_db_frombackup command, available only for ExaDB-D, creates all or selected databases from existing database backups using a database input template, optional wallet, and dry-run validation. All PDBs are restored, and credential requirements depend on whether the source uses customer-managed or Oracle-managed keys; wallet entries must exist for the required databases.

Read More: Create Database from Existing Database Backup

Collect Diagnostic Information and Logs

The diag_collect command packages utility version information, job details, logs, and input templates into a diagnostic ZIP archive for troubleshooting. It can use a specified output path and filename or create a default diagnostics archive when no destination is provided.
Read More: Collect Diagnostic Information and Logs