1 Introduction to Zero Downtime Migration

Learn about how Zero Downtime Migration works, and its requirements and supported configurations.

About Zero Downtime Migration

Zero Downtime Migration gives you a quick and easy way to move databases to Oracle Cloud Database services.

With Zero Downtime Migration, you can migrate Oracle databases from on premises, Oracle Cloud Infrastructure Classic, or even from one Oracle Cloud Infrastructure region to another. The databases can be moved to Oracle Cloud Infrastructure, Oracle Exadata Database Service on Dedicated Infrastructure, and Oracle Exadata Database Service on Cloud@Customer without incurring any significant downtime, by leveraging technologies such as Oracle Data Guard and Oracle Recovery Manager (RMAN).

Zero Downtime Migration provides a robust, flexible, and resumable migration process that is also easy to roll back. You can perform and manage a database migration of an individual database or perform database migrations at a fleet level. Zero Downtime Migration is compliant with Oracle Maximum Availability Architecture (MAA) and supports Oracle Database 11g Release 2 (11.2.0.4) and later database releases.

The Zero Downtime Migration software is a service with a command line interface that you install and run on a host that you provision. The server where the Zero Downtime Migration software is installed is called the Zero Downtime Migration service host. You can run one or more database migration jobs from the Zero Downtime Migration service host.

Zero Downtime Migration supports both online and offline (backup and recovery) migration.

Online Migration

Using the online migration method, Zero Downtime Migration performs the following tasks:

  • Back up the source database to Oracle Cloud Infrastructure Object Storage, Zero Data Loss Recovery Appliance, or NFS
  • Create a standby database in the target environment from the backup, with Data Guard configuration, Oracle Data Guard Maximum Performance protection mode, and asynchronous (ASYNC) redo transport mode
  • Synchronize the source and target databases
  • Switch over to the target database as the primary database, during which there is a minimal period of downtime

Upon switchover, the target database, running in the Oracle Cloud Infrastructure, Exadata Cloud at Customer, or Exadata Cloud Service, becomes the primary database, and the source database becomes the standby.

If there is SQL*Net connectivity between the new primary and the new standby after the switchover, the configuration continues to synchronize data (ship redo) from the new primary to the new standby on the source database. This configuration makes it possible to perform a switchover with minimal downtime, if you need to fall back to the original source database.

However, if there is no SQL*Net connectivity between the new primary and the new standby after the switchover, there is no data synchronization (ship redo) from the new primary to the new standby on the source database. With this configuration you cannot fall back to the original source database.

Note that Transparent Data Encryption (TDE) is enabled on Oracle databases in the Oracle Cloud by default. Zero Downtime Migration handles the encryption of your target database, even if TDE is not enabled on the source Oracle database. However, once the switchover phase of the migration has taken place, the redo logs that the new primary database in the Oracle Cloud sends to the new standby database (the source) are encrypted. Therefore, if you decide to switch back and role swap again, making the source database the primary again and the database in the Oracle Cloud the standby, the source database will not be able to read the newly encrypted changed blocks applied by the redo logs unless TDE is enabled on the source database.

In order to avoid any post-migration issues, the recommended best practice is to perform testing and validation on the target database before Zero Downtime Migration performs the switchover phase of the migration process. There are options outside of Zero Downtime Migration for testing a snapshot standby database. When testing and validation are complete and you are ready to proceed with switchover, you can delete the snapshot standby database, instruct Zero Downtime Migration to perform the switchover, and finalize the migration process.

Offline Migration

Using the offline migration method, Zero Downtime Migration backs up the source database to Oracle Cloud Infrastructure Object Storage and instantiates a new database from this Object Storage backup to Oracle Cloud Infrastructure, Exadata Cloud at Customer, or Exadata Cloud Service. Note that the only available method for migrating Oracle Database Standard Edition is the offline migration method.

The offline migration method is similar to cloning a database. The target database has no relationship to the source, so there is no data synchronization or fallback capability. No SQL*Net connectivity is needed between the source and target database servers.

Zero Downtime Migration Capabilities

The Zero Downtime Migration service has many benefits and is highly customizable.

  • Audit capability - All custom user actions are audited including actions performed by the migration job.
  • Work flow customization - Work flow actions (marked by phases) can be customized with pre-user-action and post-user-action plug-ins.
  • Job subsystem - You can perform and manage database migrations at a fleet scale.
  • Job scheduler - You can schedule your migration job to run at a future point in time.
  • Pause and resume functionality - You can pause and resume your migration job if needed, which is useful to conform to a maintenance window, for example.
  • Job termination - You can terminate a running migration job, rather than waiting for it to complete.
  • Job rerun ability - Your migration job can be re-run (resumed) from a point of failure.
  • Job pre-check - You can run pre-checks for migration tasks to prevent errors during database migration.
  • Compliance - Zero Downtime Migration is compliant with Oracle Maximum Availability Architecture best practices and supports Oracle Database 11g Release 2 (11.2.0.4.0) and later.

Supported Migration Paths

Zero Downtime Migration supports a variety of migration paths to the Oracle Cloud Infrastructure, Exadata Cloud Service, and Exadata Cloud at Customer.

The following are supported migration paths:

  • On-Premises Database to Oracle Cloud Infrastructure

    You can migrate an Oracle on-premises database to Oracle Cloud Infrastructure (either virtual machine or bare metal) with Zero Downtime Migration.

    Zero Downtime Migration requires that you use Oracle Cloud Infrastructure Object Storage service as the intermediate backup medium to migrate on-premises databases to Oracle Cloud Infrastructure.

  • On-Premises Database to Oracle Exadata Cloud at Customer

    You can migrate on-premises databases to Oracle Exadata Cloud at Customer environments with Zero Downtime Migration.

    Zero Downtime Migration requires that you use Object Storage Service (OSS), Zero Data Loss Recovery Appliance (ZDLRA), or a Network File System (NFS) as the intermediate backup medium to migrate on-premises databases to Oracle Exadata Cloud at Customer environments.

  • Oracle Cloud Infrastructure Classic Database to Oracle Cloud Infrastructure

    You can migrate a database in Oracle Cloud Infrastructure Classic to the Oracle Cloud Infrastructure (either virtual machine or bare metal) with Zero Downtime Migration.

    Zero Downtime Migration requires that you use Oracle Cloud Infrastructure Object Storage service as the intermediate backup medium to migrate a database in Oracle Cloud Infrastructure Classic to the Oracle Cloud Infrastructure.

  • On-Premises Database to Exadata Cloud Service

    You can migrate an Oracle on-premises database to Exadata Cloud Service with Zero Downtime Migration.

    Zero Downtime Migration requires that you use Oracle Cloud Infrastructure Object Storage service as the intermediate backup medium to migrate on-premises databases to Oracle Cloud Infrastructure.

  • Oracle Cloud Infrastructure Database to Another Oracle Cloud Infrastructure Region

    You can migrate a database from one Oracle Cloud Infrastructure region to another Oracle Cloud Infrastructure region with Zero Downtime Migration. For example, you can move a database from the phoenix region to the frankfurt or ashburn region.

    Zero Downtime Migration requires that you use Oracle Cloud Infrastructure Object Storage service as the intermediate backup medium to migrate a database in between Oracle Cloud regions.

Supported Backup Media

Part of the Zero Downtime Migration process involves creating a backup of the source database and restoring it to the target database. Zero Downtime Migration supports Oracle Cloud Infrastructure Object Storage, Zero Data Loss Recovery Appliance, or NFS storage backup media, depending on your target environment.

  • Object Storage Service (OSS)
  • Zero Data Loss Recovery Appliance (ZDLRA)
  • External Backup Location (NFS)

Oracle Cloud Infrastructure Object Storage

Object Storage is supported as a backup medium when migrating a database to Oracle Cloud Infrastructure, Exadata Cloud Service, or Exadata Cloud at Customer.

If you back up the database to Object Storage, then the Zero Downtime Migration service initiates the source database backup and restores it to the target environment, so Object Storage must be accessible from both the source and target environments.

The Zero Downtime Migration service host uses an SSH connection to the source and target database servers to install and configure the backup module software necessary to back up to and restore from Object Storage. The backup from the source database to Object Storage takes place over an RMAN channel.

Zero Data Loss Recovery Appliance

Zero Data Loss Recovery Appliance is supported as a backup medium when migrating a database to an Exadata Cloud at Customer target.

If Zero Data Loss Recovery Appliance is chosen as backup medium, then you must ensure that the Zero Data Loss Recovery Appliance has a valid backup of the source database, because Zero Downtime Migration does not initiate a backup to Zero Data Loss Recovery Appliance as part of the workflow.

You must also ensure that all instances of the database are up before initiating a backup to Zero Data Loss Recovery Appliance. The duplicate database operation might fail if the backup is initiated when an instance is down.

The Zero Downtime Migration service accesses the backup in Zero Data Loss Recovery Appliance and restores it to Exadata Cloud at Customer. The Zero Data Loss Recovery Appliance access credentials and wallet location are mandatory input parameters, so that Zero Downtime Migration can handle the Zero Data Loss Recovery Appliance wallet setup at the target database.

Any transfer of redo stream between the source and the target database server, in either direction, takes place over a SQL*Net link.

Refer to the Zero Data Loss Recovery Appliance documentation for information about creating backups.

Network File System (NFS)

NFS is supported as a backup medium when migrating a database to an Exadata Cloud at Customer target.

If you choose to back up the database to an NFS mount, then the Zero Downtime Migration service initiates the source database backup and restores it to the Exadata Cloud at Customer target environment. The NFS should be accessible from both the source and target environments.

Supported Configurations

Learn about the configurations and deployments supported by Zero Downtime Migration in this release.

Zero Downtime Migration currently supports the platforms, database architectures, and database versions discussed in the following topics.

Supported Platforms

Zero Downtime Migration supports the following platforms for the service host and the migration source and target database servers.

Zero Downtime Migration Service Host - Supported Platforms

The Zero Downtime Migration service host can be configured on Oracle Linux 7 (Linux-x86-64) or later releases.

You can deploy the Zero Downtime Migration service on a standalone server on-premises or on a standalone Linux server (compute instance) in the Oracle Cloud. Oracle Linux is the supported platform for the Zero Downtime Migration service host.

Note that the Zero Downtime Migration service host can be shared with other applications for other purposes; however, no Oracle Grid Infrastructure instance should be running on the Zero Downtime Migration service host.

Source and Target Database Servers - Supported Platforms

Linux-x86-64 is the supported platform for migration source and target database servers.

Supported Database Versions for Migration

Zero Downtime Migration supports most Oracle Database versions available on Oracle Cloud Infrastructure, Exadata Cloud at Customer, and Exadata Cloud Service.

The following Oracle Database versions can be migrated using Zero Downtime Migration.

  • Oracle Database 11g Release 2 (11.2.0.4)
  • Oracle Database 12c Release 1 (12.1.0.2)
  • Oracle Database 12c Release 2 (12.2.0.1)
  • Oracle Database 18 Release 3 (18.3)
  • Oracle Database 19c
  • All subsequent Oracle Database releases

Note:

Because Zero Downtime Migration leverages Oracle Data Guard, you must have the same operating system and database version on both source and target. However, note that, while Standard Edition databases can use Zero Downtime Migration, they must use the offline migration method which is based on a backup and restore methodology and does not leverage Data Guard.

Zero Downtime Migration does not support cross-edition migration. Zero Downtime Migration cannot be used to migrate an Enterprise Edition database to a Standard Edition database, and vice versa.

Supported Database Architectures for Migration

Zero Downtime Migration supports the following database architecture implementations.

  • Oracle Database Single-Instance, which can be migrated to a single-instance or Oracle RAC database target
  • Oracle RAC One Node, which can be migrated to an Oracle RAC database target
  • Oracle RAC, which can be migrated to an Oracle RAC database target

Note:

Zero Downtime Migration does not support migration from a non-CDB "traditional" database to a CDB in the multitenant architecture.

Zero Downtime Migration Security Provisions

Zero Downtime Migration permissions and ownership of files and directories, and handling of configurations for security features, are equivalent to those of Oracle Database.

Zero Downtime Migration installs in a location, named ZDM_HOME, that is structured similarly to the Oracle home directory, ORACLE_HOME, for Oracle Database. The permissions and ownership of files and directories in the ZDM_HOME follow the same conventions as that of a database ORACLE_HOME.

Zero Downtime Migration also creates a base directory structure for storing Zero Downtime Migration configuration files, logs, and other artifacts, named ZDM_BASE, that is similar to an Oracle base directory, ORACLE_BASE, that is associated with an Oracle home. The structure, owners, and permissions of directories and files in ZDM_BASE are similar to that of an ORACLE_BASE.

You do not need to do any additional steps to ensure security the of the Zero Downtime Migration configuration because the Zero Downtime Migration configuration is designed to be secure out of the box.

Zero Downtime Migration is configured to accept JMX connections only from the local host, and to listen on the loopback address for HTTP connections. Zero Downtime Migration operations can only be performed by the operating system user that installed the product.

SSH connectivity from the Zero Downtime Migration service host to the source database server and the target database server is required. You must provide the SSH key file location as an input for a migration job, and the existence of this file is expected for the duration of the migration job. You must manage the security of the directories and files where these key files are located.

You can modify the communication ports when there is a port conflict with another application. Note that access to these ports are configured only from within the Zero Downtime Migration host. You can change the RMI and HTTP port properties in the file $ZDM_BASE/crsdata/<hostname>/rhp/conf/standalone_config.properties.

The properties are:

  • RMI port - oracle.jwc.rmi.port=8895
  • HTTP port - oracle.jwc.http.port=8896

Bounce the Zero Downtime Migration service after changing the properties.

When Zero Downtime Migration operations require passwords, prompts are given for password entry. Passwords are encrypted and stored in the Zero Downtime Migration database. Provided passwords are not expected to change for the duration of a migration job.

From an operation perspective, Zero Downtime Migration follows the guidelines in Oracle Database Security Guide for handling source and target database configurations for migration, such as Oracle Wallets, Transparent Data Encryption, and so on.

Zero Downtime Migration Database Server Access

The Zero Downtime Migration service host needs to access the source and target database servers during a database migration.

To perform the migration, the Zero Downtime Migration service host requires either root user or SSH key-based access to one of the source database servers, and the Zero Downtime Migration service host requires SSH key-based access to one of the target database servers. If you are migrating an Oracle RAC database, providing access to one of the Oracle RAC nodes is adequate. The Zero Downtime Migration service host copies the software needed for migration to the source and target servers and cleans it up at the end of the operation.

An SSH private key is required to establish SSH connections. This generated key must not use a passphrase. You can create and add a new SSH key to your existing deployment using the Oracle Cloud Service Console.

Target Placeholder Database Environment

Zero Downtime Migration requires that you configure a placeholder database target environment before beginning the migration process. You have complete control over the configuration of the placeholder database target environment, so you can set up and configure it as required for your needs.

During the migration process, Zero Downtime Migration service host restores the source database to this placeholder database target environment by dropping the placeholder database and recreating a database in the target environment with the same db_name as that of source database.

Any database parameters for the target database, including SGA parameters, are maintained during the migration, and the migrated database runs with this same configuration.

Once the migration is complete, the target database is accessible using Oracle Database Cloud Service console, and you can manage the database with SRVCTL commands. You can make any modifications to database parameters after the migration.

Zero Downtime Migration Operational Phases

The Zero Downtime Migration service defines the migration process in units of operational phases.

Zero Downtime Migration auto computes the migration workflow using defined operational phases based on configured input parameters, such as the target platform, backup medium, and so on. You can customize the workflow by inserting custom plug-ins on each of the operational phases. The Zero Downtime Migration service lets you pause and resume the migration workflow at any chosen operational phase.

Migration workflow-associated phases for a given operation can be listed. Phases that are performed on the source database server are listed with a _SRC suffix, and the phases associated with the target database server are listed with a _TGT suffix.