Flujo de migración

En el caso de las migraciones homogéneas de PostgreSQL a Cloud SQL, Database Migration Service se conecta a la instancia de Cloud SQL para PostgreSQL de destino y administra el proceso de migración continua en su nombre. La instancia de destino establece la conexión con tu base de datos de origen, mientras que Database Migration Service organiza y supervisa la canalización de datos de extremo a extremo.

Para las migraciones homogéneas estándar de PostgreSQL a Cloud SQL, Database Migration Service admite migraciones continuas. En una migración continua, los datos iniciales se cargan desde un volcado de instantánea y, luego, los cambios de datos en curso se replican de forma continua desde el registro de escritura anticipada (WAL) de la base de datos de origen con la decodificación lógica y la extensión pglogical. Para las migraciones de inicio rápido continuas, Database Migration Service usa pgnative.

Fases de migración continua

Las migraciones continuas avanzan por las siguientes fases secuenciales:

Migraciones estándar

  1. Configuración y organización de la replicación: Cuando creas el trabajo de migración, Database Migration Service configura la instancia de Cloud SQL para PostgreSQL de destino para que actúe como una réplica y establece suscripciones de replicación con la extensión pglogical. Cuando se migra a una instancia de Cloud SQL existente, Database Migration Service desciende de nivel la instancia para configurarla como una réplica externa (sin colocar la base de datos en modo de solo lectura).
  2. Fase de instantánea inicial: Cuando inicias el trabajo de migración, Database Migration Service toma una instantánea coherente de las bases de datos seleccionadas en la instancia de origen. Este proceso toma un breve bloqueo de tabla (por lo general, menos de 10 segundos por tabla) mientras se inicializa la instantánea. La base de datos de origen sigue aceptando lecturas y escrituras durante todo el proceso.
  3. Fase de carga de datos: Database Migration Service transmite los datos de la instantánea inicial desde la base de datos de origen y los carga en la instancia de destino de Cloud SQL para PostgreSQL.
  4. Creación de restricciones y de índices: Después de que finaliza la carga de datos inicial, se crean restricciones de tabla (incluidas las claves primarias y externas) y los índices secundarios en la instancia de destino. Separar la carga de datos de la creación de restricciones optimiza la velocidad de transferencia de datos.
  5. Fase de captura de datos modificados (CDC): Una vez que se aplican las restricciones, Database Migration Service ingresa a la fase de CDC continua. Durante la CDC, Database Migration Service captura los cambios de DML en curso de la transmisión de replicación lógica de la base de datos de origen con pglogical y los aplica a la instancia de destino casi en tiempo real.
  6. Fase de migración de sistemas y ascenso: Cuando estés listo para cambiar el tráfico de tu aplicación a la instancia de destino, detén las operaciones de escritura en la base de datos de origen, verifica que el retraso de replicación llegue a cero y, luego, inicia el ascenso en Database Migration Service. Durante la promoción, Database Migration Service desconecta la instancia de destino de la fuente, quita las ranuras de replicación y transforma el destino en una instancia principal de Cloud SQL para PostgreSQL independiente de lectura y escritura.

Migraciones de inicio rápido

  1. Configuración y organización de la replicación: Cuando creas el trabajo de migración, Database Migration Service configura automáticamente la conectividad de red a través de IPs privadas con interfaces de Private Service Connect (crea automáticamente parámetros de configuración de conectividad privada, adjuntos de red y subredes). Establece la replicación entre las bases de datos de origen y destino con la replicación lógica de PostgreSQL (con pgnative), sin necesidad de instalar la extensión pglogical en el origen ni descender de nivel la instancia de destino. El destino puede ser una instancia activa que entrega tráfico a otras bases de datos.
  2. Fase de instantánea inicial: Cuando inicias el trabajo de migración, Database Migration Service toma una instantánea coherente de las bases de datos seleccionadas (migra hasta 50 bases de datos por trabajo) en el servidor de la base de datos de origen. La base de datos de origen sigue aceptando lecturas y escrituras durante todo el proceso.
  3. Fase de carga de datos: Database Migration Service transmite los datos de la instantánea inicial directamente a la instancia de Cloud SQL para PostgreSQL de destino a través de la conectividad privada. A los objetos de la base de datos de destino se les asigna la propiedad al usuario de migración generado por Database Migration Service (cuando se usa la consola de Google Cloud ) o se especifica con Google Cloud CLI.
  4. Creación de restricciones y de índices: Después de que finaliza la carga inicial de datos, se crean restricciones de tabla y de índices secundarios en la instancia de destino para garantizar la fidelidad del esquema y, al mismo tiempo, maximizar el rendimiento de la transferencia.
  5. Fase de captura de datos modificados (CDC): Una vez que se aplican las restricciones, Database Migration Service ingresa a la fase de CDC continua. Durante la CDC, Database Migration Service transmite los cambios de DML en curso desde el flujo de replicación lógica de PostgreSQL de pgnative y los aplica a la instancia de destino casi en tiempo real. En el caso de las tablas sin claves primarias, las operaciones UPDATE y DELETE se pueden replicar cuando la identidad de la réplica de la tabla está configurada como INDEX o FULL.
  6. Fase de migración de sistemas y promoción: Cuando estés listo para cambiar el tráfico de tu aplicación a la instancia de destino, detén las operaciones de escritura en la base de datos de origen, verifica que el retraso de replicación llegue a cero y, luego, inicia la promoción en Database Migration Service. Durante el ascenso, Database Migration Service finaliza la replicación de CDC, finaliza las ranuras de replicación y desconecta la canalización de migración, lo que deja las bases de datos de destino de Cloud SQL para PostgreSQL completamente operativas para las conexiones de clientes.

¿Qué sigue?