- ¿Qué es Database Migration Service?
- ¿Qué fuentes se admiten?
- ¿Se ofrece asistencia para varias versiones?
- ¿Qué componentes de datos, esquemas y metadatos se migran?
- ¿Qué cambios se replican durante la migración continua?
- ¿Qué no se migra?
- ¿Qué métodos de redes se utilizan?
- ¿Cuáles son las limitaciones conocidas?
- ¿Qué es Database Migration Service?
- Database Migration Service es un servicio que te facilita la migración de datos a Google Cloud. Database Migration Service te ayuda a migrar tus cargas de trabajo de PostgreSQL a AlloyDB mediante lift-and-shift.
- ¿Qué fuentes se admiten?
-
- Amazon RDS 9.6.10+, 10.5+, 11.1+, 12, 13, 14, 15, 16, 17
- Amazon Aurora 10.11+, 11.6+, 12.4+, 13.3+, 14, 15, 16, 17
- PostgreSQL autogestionado (en las instalaciones o en cualquier VM en la nube que controles por completo) 9.4, 9.5, 9.6, 10, 11, 12, 13, 14, 15, 16 y 17
- Cloud SQL 9.6, 10, 11, 12, 13, 14, 15, 16 y 17
- ¿Qué destinos se admiten?
-
- AlloyDB para PostgreSQL 14, 15, 16 y 17
- ¿Se ofrece asistencia para varias versiones?
- Database Migration Service admite migraciones de PostgreSQL a AlloyDB desde cualquiera de las versiones de bases de datos de origen admitidas.
- ¿Qué componentes de datos, esquemas y metadatos se migran?
- Database Migration Service migra el esquema, los datos y los metadatos del origen al destino. Todos los componentes de datos, esquemas y metadatos siguientes se migran como parte de la migración de la base de datos:
Migración de datos
- Todos los esquemas y todas las tablas de la base de datos seleccionada.
- Nomenclatura
- Clave principal
- Tipo de datos
- Posición ordinal
- Valor predeterminado
- Nulabilidad
- Atributos de incremento automático
- Índices secundarios
- Procedimientos almacenados
- Functions
- Activadores
- Vistas
- Restricciones de clave externa
- ¿Qué cambios se replican durante la migración continua?
-
Solo se actualizan automáticamente los cambios de DML durante la migración. El usuario es el responsable de gestionar el DDL de forma que las bases de datos de origen y destino sigan siendo compatibles. Para ello, puede usar dos opciones:
- Deteniendo las operaciones de escritura en el origen y ejecutando los comandos de DDL en el origen y en el destino. Antes de ejecutar los comandos de DDL en el destino, concede el rol
alloydbexternalsync
al usuario de Cloud SQL que vaya a aplicar los cambios en el DDL. Para habilitar las consultas o los cambios en los datos, concede el rolalloydbexternalsync
a los usuarios pertinentes de Cloud SQL. Usa
pglogical.replicate_ddl_command
para ejecutar DDL en el origen y en el destino en un punto coherente. El usuario que ejecute este comando debe tener el mismo nombre de usuario en el origen y en el destino, y debe ser el superusuario o el propietario del artefacto que se va a migrar (por ejemplo, la tabla, la secuencia, la vista o la base de datos).A continuación, te mostramos algunos ejemplos de cómo usar el
pglogical.replicate_ddl_command
.Para añadir una columna a una tabla de una base de datos, ejecuta el siguiente comando:
select pglogical.replicate_ddl_command('ALTER TABLE [schema].[table] add column surname varchar(20)', '{default}');
Para cambiar el nombre de una tabla de la base de datos, ejecuta el siguiente comando:
select pglogical.replicate_ddl_command('ALTER TABLE [schema].[table] RENAME TO [table_name]','{default}');
Para crear una tabla de base de datos, ejecuta los siguientes comandos:
select pglogical.replicate_ddl_command(command := 'CREATE TABLE [schema].[table] (id INTEGER PRIMARY KEY, name VARCHAR);', replication_sets := ARRAY['default'']);
select pglogical.replication_set_add_table('default', '[schema].[table]');
- Deteniendo las operaciones de escritura en el origen y ejecutando los comandos de DDL en el origen y en el destino. Antes de ejecutar los comandos de DDL en el destino, concede el rol
- ¿Qué no se migra?
-
Para añadir usuarios a la instancia de destino de AlloyDB, añádelos desde el cliente de PostgreSQL. Más información sobre cómo crear y gestionar usuarios de PostgreSQL
Los objetos grandes no se pueden replicar porque la función de decodificación lógica de PostgreSQL no admite la decodificación de cambios en objetos grandes. En las tablas que tienen un oid de tipo de columna que hace referencia a objetos grandes, las filas se siguen sincronizando y las filas nuevas se replican. Sin embargo, al intentar acceder al objeto grande en la base de datos de destino (leer con lo_get, exportar con lo_export o consultar el catálogo
pg_largeobject
del OID correspondiente), se produce un error y se muestra un mensaje que indica que el objeto grande no existe.En el caso de las tablas que no tienen claves principales, Database Migration Service admite la migración de la copia inicial y las instrucciones
INSERT
durante la fase de captura de datos de cambios (CDC). Debes migrar las instruccionesUPDATE
yDELETE
manualmente.Database Migration Service no migra datos de vistas materializadas, solo el esquema de la vista. Para rellenar las vistas, ejecuta el siguiente comando:
REFRESH MATERIALIZED VIEW view_name
.Los estados
SEQUENCE
(por ejemplo,last_value
) del nuevo destino de AlloyDB pueden ser diferentes de los estadosSEQUENCE
de la fuente. - ¿Qué métodos de redes se utilizan?
- Para crear una migración en Database Migration Service, debe establecerse la conectividad entre el origen y la instancia de destino de Cloud SQL. Se admiten varios métodos.
Elige la que mejor se adapte a la carga de trabajo específica.
Método de red Descripción Ventajas Inconvenientes Túnel inverso SSH a través de una VM alojada en la nube Establece la conectividad del destino al origen a través de un túnel inverso SSH seguro. Requiere una VM de host bastion en el proyecto Google Cloud y una máquina (por ejemplo, un portátil en la red) que tenga conectividad con la fuente. Database Migration Service recoge la información necesaria en el momento de la creación de la migración y genera automáticamente la secuencia de comandos para configurarla. - Fácil de configurar.
- No requiere ninguna configuración de firewall personalizada.
- Se recomienda para escenarios de migración de corta duración (pruebas de concepto o migraciones de bases de datos pequeñas).
- Eres el propietario y el administrador de la VM bastion.
- Puede incurrir en costes adicionales.
Proxy TCP mediante una VM alojada en la nube Establece la conectividad del destino al origen a través de un proxy TCP mediante una máquina virtual alojada en la nube. Database Migration Service recoge la información necesaria en el momento de la creación de la migración y genera automáticamente la secuencia de comandos para configurarla. Es relevante en las migraciones de AlloyDB en las que el origen se encuentra en la arquitectura de red antigua. - Fácil de configurar.
- No requiere ninguna configuración de firewall personalizada.
- Tú eres el propietario y el responsable de la máquina virtual bastion, que puede generar costes adicionales.
Emparejamiento de VPC Este método funciona configurando las VPCs para que se comuniquen entre sí. - Solución nativa Google Cloud .
- Fácil de configurar.
- Ancho de banda alto
- Recomendado para migraciones de larga duración o de gran volumen.
Solo se aplica si las bases de datos de origen y destino están alojadas en Google Cloud. VPN Configura un túnel VPN IPsec que conecta la red interna y la Google Cloud VPC a través de una conexión segura en la red pública de Internet. Usa una Google Cloud VPN o cualquier solución de VPN que se haya configurado para la red interna. - Solución de conectividad sólida y escalable.
- Ancho de banda medio-alto.
- Seguridad integrada.
- Se ofrecen como Google Cloud soluciones o a través de otros terceros.
- Coste adicional.
- Configuración no trivial (a menos que ya esté implementada).
Cloud Interconnect Usa una conexión de alta disponibilidad y baja latencia entre la red local y Google Cloud. El mayor ancho de banda, ideal para migraciones de gran volumen de larga duración. - Coste adicional.
- La conexión no es segura de forma predeterminada.
- Configuración no trivial (a menos que ya esté implementada).
- ¿Cuáles son las limitaciones conocidas?
- Consulta las limitaciones conocidas.