Entre las limitaciones conocidas para usar una base de datos de PostgreSQL como fuente, se incluyen las siguientes:
La extensión
pglogicalno admite la replicación de columnas generadas para PostgreSQL 12 y versiones posteriores.Los cambios en las estructuras de las tablas (DDL) no se replican a través de los comandos DDL estándar, sino solo con los comandos que se ejecutan con la extensión
pglogicalque se usa para la replicación. Esto incluye cambios en los tiposenum.Por ejemplo,
pglogicalproporciona una funciónpglogical.replicate_ddl_commandque permite que DDL se ejecute en la base de datos de origen y en la réplica en un punto coherente. El usuario que ejecuta este comando en la fuente ya debe existir en la réplica.Para replicar datos de tablas nuevas, debes usar el comando
pglogical.replication_set_add_tablepara agregar las tablas nuevas a los conjuntos de replicación existentes.Para obtener más información sobre la replicación de DDL mientras la migración está en curso, consulta la sección sobre la fidelidad de la migración.
En el caso de las tablas que no tienen claves primarias, Database Migration Service admite la migración de la instantánea inicial y las sentencias
INSERTdurante la fase de captura de datos modificados (CDC). Debes migrar las sentenciasUPDATEyDELETEde forma manual.Database Migration Service no migra datos de vistas materializadas, solo el esquema de la vista. Para propagar las vistas, ejecuta el siguiente comando:
REFRESH MATERIALIZED VIEW view_name.Los estados
SEQUENCE(por ejemplo,last_value) en el nuevo destino de AlloyDB pueden variar de los estadosSEQUENCEde origen.Las tablas
UNLOGGEDyTEMPORARYno se replican ni se pueden replicar.No se admite el tipo de datos de objetos grandes. Obtén más detalles en la sección sobre la fidelidad de la migración.
Solo se pueden migrar las extensiones y los lenguajes de procedimiento que AlloyDB admite para PostgreSQL.
Database Migration Service no admite la migración desde réplicas de lectura que están en modo de recuperación.
Database Migration Service no admite fuentes de Amazon RDS en las que se aplica el paquete de extensión de AWS SCT.
No se pueden migrar las funciones definidas por el usuario escritas en C, excepto las funciones que se instalan en la base de datos de PostgreSQL cuando instalas extensiones compatibles con AlloyDB.
Si existen otras extensiones y lenguajes de procedimiento en la base de datos de origen, o si no se admiten sus versiones, cuando pruebes o inicies el trabajo de migración, fallará.
Las bases de datos que se agregan después de que se inicia el trabajo de migración no se migran.
No puedes seleccionar tablas o esquemas específicos cuando migras con Database Migration Service. Database Migration Service migra todas las tablas y esquemas, excepto los siguientes:
- El esquema de información (
information_schema). - Cualquier tabla que comience con
pg, por ejemplo,pg_catalog. Para obtener la lista completa de catálogos de PostgreSQL que comienzan conpg, consulta Catálogos del sistema de PostgreSQL en la documentación de PostgreSQL. - No se migra la información sobre los usuarios y las funciones de usuario.
- El esquema de información (
Si las bases de datos encriptadas requieren claves de encriptación administradas por el cliente para desencriptarlas y Database Migration Service no tiene acceso a las claves, no se pueden migrar las bases de datos.
Sin embargo, si los datos del cliente están encriptados por la
pgcryptoextensión, los datos se pueden migrar con Database Migration Service (porque AlloyDB para PostgreSQL admite la extensión).Database Migration Service también admite la migración de datos desde bases de datos encriptadas de Amazon Aurora o Amazon RDS, ya que estas bases de datos controlan la desencriptación de forma transparente en sus servicios. Para obtener más información, consulta Encripta recursos de Amazon Aurora y Encripta recursos de Amazon RDS.
La base de datos de destino de AlloyDB para PostgreSQL se puede escribir durante la migración para permitir que se apliquen los cambios de DDL si es necesario. Ten cuidado de no realizar cambios en la configuración de la base de datos ni en las estructuras de las tablas que puedan interrumpir el proceso de migración o afectar la integridad de los datos.
El comportamiento del activador depende de cómo se configuraron. El comportamiento predeterminado es que no se activarán, pero si se configuraron con la sentencia
ALTER EVENT TRIGGERoALTER TABLEy el estado del activador se establece en réplica o siempre, se activarán en la réplica durante la replicación.alloydbexternalsynccreará funciones con definidor de seguridad en la instancia principal de AlloyDB. Cuando cualquier usuario la ejecute, se ejecutará con los privilegios dealloydbexternalsync, que tiene las funcionesalloydbsuperuseryalloydbreplica. Es mejor restringir el uso de una función de definidor de seguridad solo a algunos usuarios. Para ello, el usuario debe revocar los privilegios PUBLIC predeterminados y, luego, otorgar el privilegio de ejecución de forma selectiva.El método de conectividad de las interfaces de Private Service Connect solo se admite para la migración a instancias de destino existentes. Si deseas usar la conectividad de IP privada y migrar a una instancia de destino nueva, usa el intercambio de tráfico entre VPC.
Limitaciones para las migraciones a clústeres de destino existentes
- Solo puedes configurar un trabajo de migración activo por clúster de destino.
- Tu clúster de destino existente debe estar vacío o contener solo datos de configuración del sistema. No se admite la migración a un clúster de destino existente que contenga datos del usuario (como tablas).
- Se admite la migración a clústeres con instancias de grupos de lectura.
Para obtener más información sobre los clústeres y las instancias de AlloyDB para PostgreSQL, consulta Descripción general de AlloyDB para PostgreSQL.
Cuotas
- Pueden existir hasta 2,000 perfiles de conexión y 1,000 trabajos de migración en un momento determinado. Para liberar espacio, se pueden borrar trabajos de migración (incluso los que están completos) y perfiles de conexión.