Flujo de migración

En el caso de las migraciones homogéneas de PostgreSQL a AlloyDB para PostgreSQL, Database Migration Service se conecta a la instancia principal del clúster de AlloyDB para PostgreSQL de destino y administra el proceso de migración continua en su nombre. La instancia principal 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 AlloyDB para PostgreSQL, 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 continuas de inicio rápido, 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 principal del clúster de AlloyDB para PostgreSQL de destino para que actúe como una réplica y establece suscripciones de replicación con la extensión pglogical. Cuando migras a un clúster de AlloyDB para PostgreSQL existente, Database Migration Service configura la replicación 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 bloquea brevemente la 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 principal del clúster de AlloyDB para PostgreSQL de destino.
  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 la 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 del flujo de replicación lógica de la base de datos de origen con pglogical y los aplica al clúster de destino casi en tiempo real.
  6. Fase de migración de sistemas y promoción: Cuando estés listo para cambiar el tráfico de tu aplicación al clúster 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 la promoción, Database Migration Service desconecta el clúster de destino de la fuente, quita las ranuras de replicación y transforma el destino en una instancia principal independiente de lectura y escritura de AlloyDB para PostgreSQL.

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. El destino puede ser un clúster activo de AlloyDB para PostgreSQL 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 al clúster de AlloyDB 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 del usuario de la base de datos de destino configurado para el trabajo de migración (como el usuario postgres predeterminado).
  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 el clúster 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 al clúster de destino casi en tiempo real. Para 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 ascenso: Cuando estés listo para cambiar el tráfico de tu aplicación al clúster 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 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 AlloyDB para PostgreSQL de destino completamente operativas para las conexiones de los clientes.

¿Qué sigue?