Types of migration

Overview

Continuous migration

Continuous (sometimes referred to as ongoing or online) migration is a continuous flow of changes from a source to a destination that follows an initial full dump and load. In the case of a migration, when the time comes to switch to use the destination for reads and writes, perform a promote operation. Promotion means that the destination Cloud SQL instance is disconnected from the source, and is promoted from a replica instance to a primary instance.

Continuous migration follows these steps:

  1. Initially, a snapshot is taken of the source database. This incurs a short (under 10 seconds) lockout on the database tables, one at a time, as the dump is created. The source can continue accepting writes.

  2. After the initial dump is taken, it's loaded into the destination.

  3. After the load is completed, the ongoing changes (also known as change data capture or CDC) are processed.

  4. When the time comes to switch to using the destination, stop writing to the source and initiate a promotion. This allows the application to read and write against the destination database.

  5. Dependent applications can experience downtime for at least the duration of the replication delay at the time of the decision to promote.

One-time migration

This type of migration is a single point-in-time snapshot of the database, taken from the source and applied to the destination. This is essentially a dump and load, where the destination is ready to be used when the load completes. Any applications that depend on the source database can experience downtime during the migration process because there can be no new writes to this database while the migration is in progress.

One-time migration follows these steps:

  1. Stop writing to the source database.

  2. Initiate a dump of the source database.

  3. After the dump is complete, it's loaded into the destination. When the load is completed, a promotion is initiated automatically. The destination database now becomes the primary database, and dependent applications should read and write to it.