Cuando uso AWS Database Migration Service (AWS DMS) para migrar las bases de datos de origen a Amazon Redshift, tengo problemas de replicación de datos y errores en la captura de datos de cambios (CDC).
Resolución
Errores de los CDC
Si experimentas errores de los CDC, revisa los registros de tareas de AWS DMS para ver si hay mensajes de error relacionados con tablas específicas. También puedes consultar las métricas de Amazon CloudWatch CDCLatencySource y CDCLatencyTarget de tu tarea de AWS DMS.
Realiza una de las siguientes acciones en función del mensaje de error que recibas:
- Comprueba que las tablas de origen tengan claves principales. En el caso de los orígenes de PostgreSQL, las tablas capturadas deben tener una clave principal para que AWS DMS procese las operaciones DELETE y UPDATE.
- Confirma que has establecido el período de retención de los registros de cambios en la base de datos de origen en al menos 24 horas.
- Asegúrate de que la cuenta de AWS que utiliza AWS DMS tenga los permisos necesarios para las bases de datos de origen y de destino.
Incoherencias de datos
Para resolver las incoherencias de datos, sigue estos pasos:
- Crea una tarea exclusiva de validación para identificar los registros que no coinciden entre el origen y el destino. Para obtener más información, consulta Rendimiento de validación de Redshift.
- Consulta la tabla awsdms_validation_failures_v1 de la base de datos de destino para ver las incoherencias.
- Consulta la tabla awsdms_apply_exceptions de la base de datos de destino para obtener información detallada sobre los errores de migración.
- Comprueba que todas las tablas de destino replicadas tengan una clave principal o un índice único.
Nota: Amazon Redshift no impone restricciones únicas de clave principal y de clave externa. Por lo tanto, pueden crearse duplicados.
- Si usas PostgreSQL como origen, debes definir las claves principales para las tablas de origen y destino.
- En el caso de tablas con incoherencias, usa la tarea AWS DMS para volver a cargarlas.
Problemas de conversión de tipos
Para resolver los problemas de conversión de tipos, sigue estos pasos:
-
Revisa los registros de tareas de AWS DMS para ver si hay errores relacionados con el truncamiento de los datos o la longitud de la cadena que supera la longitud del lenguaje de definición de datos (DDL).
-
Consulta la tabla awsdms_apply_exceptions para ver si hay migraciones con errores.
-
Ajusta los tipos de datos de las columnas en la base de datos de Redshift de destino para que se adapten a datos más grandes. Por ejemplo, cambia varchar por text en las columnas con problemas de longitud.
-
Modifica el parámetro MaxLobSize en la configuración de la tarea para administrar tamaños de datos más grandes, tal como se muestra en el siguiente ejemplo:
{
"TargetMetadata": {
"MaxLobSize": 32
}
}
-
Confirma que estás usando un tipo de datos compatible y asegúrate de haber asignado correctamente el origen y el destino.
Problemas de rendimiento y alta latencia
Para mejorar el rendimiento y reducir la latencia, toma las siguientes medidas:
Registros duplicados
Para evitar la duplicación de registros, toma las siguientes medidas:
- Confirma que las tablas de destino replicadas tengan una clave principal o un índice único.
- Crea tablas manualmente en el destino con claves principales y define TargetTablePrepMode en DO_NOTHING o TRUNCATE_BEFORE_LOAD en la configuración de la tarea.
- Usa la regla de asignación de tablas de AWS DMS primary-key-def para definir de forma explícita las claves principales.
Datos que faltan o que están incompletos
Para resolver los datos que faltan o que están incompletos, sigue los siguientes pasos:
- Revisa los registros de tareas de AWS DMS para ver si hay advertencias o errores relacionados con tablas específicas.
- Comprueba la métrica CDCIncomingChanges para determinar si AWS DMS captura todos los cambios del origen.
- Comprueba que la cuenta de usuario de la base de datos de origen que utiliza AWS DMS tenga los permisos necesarios para acceder a todas las tablas y esquemas necesarios.
- Crea una tarea exclusiva de validación para identificar los registros que no coincidan. Para obtener más información, consulta Rendimiento de validación de Redshift.
- En el caso de tablas con problemas coherentes, puedes crear tareas individuales de AWS DMS para solucionar los problemas de forma más detallada.
Información relacionada
Prácticas recomendadas del servicio AWS Database Migration Service
Solución de problemas de tareas de migración en AWS Database Migration Service
Validación de datos de AWS DMS