Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Solución de problemas de tareas de migración en AWS Database Migration Service
A continuación, puede encontrar temas sobre la solución de problemas con AWS Database Migration Service (AWS DMS). Estos temas le pueden ayudar a resolver problemas comunes al utilizar bases de datos de AWS DMS y de puntos de conexión seleccionados.
Si ha abierto un caso de AWS Support, es posible que el ingeniero de soporte identifique un problema potencial con una de las configuraciones de la base de datos de punto de conexión. Es posible que el ingeniero también le pida que ejecute un script de soporte para obtener información de diagnóstico sobre la base de datos. Para obtener más información sobre cómo descargar, ejecutar y cargar la información de diagnóstico de este tipo de script de soporte, consulte Trabajar con scripts de soporte de diagnóstico en AWS DMS.
Para solucionar problemas, AWS DMS recopila los archivos de rastreo y descarga en la instancia de replicación. Puede proporcionar estos archivos a AWS Support en caso de que se produzca un problema que requiera la solución de problemas. De forma predeterminada, el DMS purga los archivos de rastreo y descarga que tienen más de treinta días de antigüedad. Para excluirse de la recopilación de archivos de rastreo y volcado, abra un caso con AWS Support.
Temas
- Las tareas de migración se ejecutan lentamente
- La barra de estado de la tarea no se mueve
- La tarea se completa pero no se ha migrado nada
- Faltan claves externas e índices secundarios
- AWS DMSno crea registros CloudWatch
- Se producen problemas al conectarse a Amazon RDS
- Se producen problemas de red
- Atasco de CDC después de la carga completa
- Errores de vulneración de la clave principal al volver a comenzar una tarea
- Error en la carga inicial de un esquema
- Tareas que producen un error desconocido
- Reiniciar la tarea carga las tablas desde el principio
- El número de tablas por tarea provoca problemas
- Las tareas producen un error cuando una clave principal se crea en una columna de LOB
- Duplicar registros que se producen en la tabla de destino sin una clave principal
- Los puntos de conexión de origen se incluyen en el rango de IP reservado
- Las marcas temporales son confusas en las consultas de Amazon Athena
- Solución de problemas con Oracle
- Solución de problemas con MySQL
- Solución de problemas mediante PostgreSQL
- Solución de problemas con Microsoft SQL Server
- Solución de problemas con Amazon Redshift
- Solución de problemas con Amazon Aurora MySQL
- Solución de problemas con SAP ASE
- Solución de problemas con IBM Db2
- Solución de problemas de latencia en AWS Database Migration Service
- Trabajar con scripts de soporte de diagnóstico en AWS DMS
- Trabajar con la AMI de soporte de diagnóstico de AWS DMS
Las tareas de migración se ejecutan lentamente
Existen varios problemas que pueden provocar lentitud en una tarea de migración o hacer que las tareas posteriores se ejecuten a menor velocidad que la tarea inicial.
La razón más común para que una tarea de migración se ejecute con lentitud es que se hayan asignado los recursos inadecuados a la instancia de replicación de AWS DMS. Para asegurarse de que la instancia tiene suficientes recursos para las tareas que está ejecutando en ella, compruebe el uso de la CPU, la memoria, los archivos de intercambio y las IOPS de la instancia de replicación. Por ejemplo, si hay varias tareas con Amazon Redshift como punto de conexión, se generan muchas operaciones de E/S. Puede ampliar el número de IOPS para su instancia de replicación o dividir las tareas entre varias instancias de replicación para lograr una migración más eficaz.
Para obtener más información sobre cómo determinar el tamaño de la instancia de replicación, consulte Selección del mejor tamaño para una instancia de replicación.
Para aumentar la velocidad de una carga de migración inicial, haga lo siguiente:
-
Si el destino es una instancia de base de datos de Amazon RDS, asegúrese de que Multi-AZ no esté habilitada para la instancia de la base de datos de destino.
-
Durante la carga, desactive cualquier copia de seguridad automática o el registro en la base de datos de destino y vuelva a activar estas características en cuanto se complete la migración.
-
Si la característica está disponible en el destino, utilice IOPS aprovisionadas.
-
Si los datos de migración contienen LOB, asegúrese de que la tarea esté optimizada para la migración de LOB. Para obtener más información sobre cómo optimizar LOB, consulte Configuración de las tareas de los metadatos de destino.
La barra de estado de la tarea no se mueve
La barra de estado de la tarea proporciona una estimación del avance de la tarea. La calidad de esta estimación depende de la calidad de las estadísticas de la tabla de la base de datos de origen; cuanto mejores sean las estadísticas de la tabla, más precisa será la estimación.
Si una tarea solo tiene una tabla sin estimación de estadísticas de fila, AWS DMS no puede proporcionar ningún tipo de estimación sobre el porcentaje completado. En este caso, utilice el estado de la tarea y la indicación de las filas cargadas para confirmar que la tarea está en ejecución y avanzando.
La tarea se completa pero no se ha migrado nada
Haga lo siguiente si no se ha migrado nada una vez finalizada la tarea.
-
Compruebe si el usuario que creó el punto de conexión tiene acceso de lectura a la tabla que desea migrar.
-
Compruebe si el objeto que desea migrar es una tabla. Si se trata de una vista, actualice las asignaciones de las tablas y especifique el localizador de objetos como “vista” o “todo”. Para obtener más información, consulte Especificación de selección de tablas y reglas de transformaciones desde la consola.
Faltan claves externas e índices secundarios
AWS DMS crea tablas, claves principales y, en algunos casos, índices únicos, pero no crea ningún otro objeto que no se necesite para migrar eficientemente los datos desde el origen. Por ejemplo, no crea índices secundarios, limitaciones de claves no primarias ni valores predeterminados de datos.
Para migrar objetos secundarios desde la base de datos, utilice las herramientas nativas de la base de datos si está migrando al mismo motor de base de datos que su base de datos de origen. Utilice AWS Schema Conversion Tool (AWS SCT) si migra a otro motor de base de datos distinto del utilizado por la base de datos de origen para migrar objetos secundarios.
AWS DMSno crea registros CloudWatch
Si su tarea de replicación no crea CloudWatch registros, asegúrese de que su cuenta tenga la dms-cloudwatch-logs-role
función. Si este rol no está presente, haga lo siguiente para crearlo:
Inicie sesión en la AWS Management Console y abra la consola de IAM en https://console.aws.amazon.com/iam/
. Elija la pestaña de Roles. Elija Crear rol.
En la sección Seleccionar tipo de entidad de confianza, elija Servicio de AWS.
En la sección Elegir un caso de uso, elija DMS.
Elija Siguiente: permisos.
Ingresa
AmazonDMSCloudWatchLogsRole
en el campo de búsqueda y marca la casilla situada junto a AmazonDMS CloudWatchLogsRole. Esto otorga AWS DMS permisos de acceso. CloudWatchElija Siguiente: Etiquetas.
Elija Siguiente: Revisar.
Ingrese
dms-cloudwatch-logs-role
para Nombre de rol. Este nombre distingue entre mayúsculas y minúsculas.Elija Crear rol.
Se producen problemas al conectarse a Amazon RDS
Puede haber varias razones por las que no se pueda conectar a una instancia de base de datos de Amazon RDS establecida como origen o destino. A continuación, se muestran algunos elementos que hay que comprobar:
-
Compruebe que la combinación del nombre y la contraseña del usuario es correcta.
-
Compruebe que el valor del punto de conexión que se muestra en la consola de Amazon RDS para la instancia es el mismo que el identificador del punto de conexión utilizado para crear el punto de conexión de AWS DMS.
-
Compruebe que el valor del puerto mostrado en la consola de Amazon RDS para la instancia es el mismo que el puerto asignado al punto de conexión de AWS DMS.
-
Compruebe que el grupo de seguridad asignado a la instancia de base de datos de Amazon RDS permite conexiones desde la instancia de replicación de AWS DMS.
-
Si la instancia de replicación de AWS DMS y la instancia de base de datos de Amazon RDS no están en la misma nube privada virtual (VPC), compruebe que se puede acceder públicamente a la instancia de la base de datos.
Mensaje de error de cadena de conexión de subproceso incorrecta y valor de subproceso incorrecto 0
Este error puede producirse a menudo al probar el enlace a un punto de enlace. Este error indica que hay un error en la cadena de conexión. Un ejemplo es un espacio después de la dirección IP del host. Otro es un carácter incorrecto copiado en la cadena de conexión.
Se producen problemas de red
El problema de red más habitual tiene que ver con el grupo de seguridad de VPC que utiliza la instancia de replicación de AWS DMS. De forma predeterminada, este grupo de seguridad tiene normas que permiten salidas a 0.0.0.0/0 en todos los puertos. En muchos casos, se modifica este grupo de seguridad o se utiliza el suyo propio. Si es así, como mínimo, asegúrese de dar salida a los puntos de conexión de origen y destino en los respectivos puertos de base de datos.
Otros problemas relacionados con la configuración pueden ser:
La instancia de replicación y los puntos de conexión de origen y de destino están en la misma VPC: el grupo de seguridad que utilizan los puntos de conexión debe permitir recibir datos en el puerto de la base de dato desde la instancia de replicación. Asegúrese de que el grupo de seguridad utilizado por la instancia de replicación llegue a los puntos de conexión. O puede crear una regla en el grupo de seguridad utilizado por los puntos de conexión que permita el acceso a la dirección IP privada de la instancia de replicación.
El punto de conexión de origen está fuera de la VPC que utiliza la instancia de replicación (a través de la puerta de enlace de Internet): el grupo de seguridad de la VPC debe incluir normas de enrutamiento que envíen el tráfico no destinado a la VPC a la puerta de enlace de Internet. En esta configuración, la conexión con el punto de enlace parece provenir de la dirección IP pública de la instancia de replicación.
El punto de conexión de origen está fuera de la VPC que utiliza la instancia de replicación (con una puerta de enlace NAT): puede configurar una puerta de enlace de traducción de direcciones de red (NAT) con una única dirección IP elástica asociada a una única interfaz de red elástica. Esta puerta de enlace NAT recibe un identificador NAT (nat-#####).
En algunos casos, la VPC incluye una ruta predeterminada a esa puerta de enlace NAT en lugar de a la puerta de enlace de Internet. En esos casos, la instancia de replicación parece ponerse en contacto con el punto de conexión de la base de datos mediante la dirección IP pública de la puerta de enlace NAT. Aquí, la entrada al punto de conexión de la base de datos fuera de la VPC debe permitir la entrada de la dirección NAT en lugar de la dirección IP pública de la instancia de replicación.
Para obtener información acerca del uso del propio servidor de nombres en las instalaciones, consulte Uso de su propio servidor de nombres en las instalaciones.
Atasco de CDC después de la carga completa
Los cambios de la replicación pueden ser lentos o se pueden producir atascos después de haber realizado una migración de carga completa y si hay varios ajustes de AWS DMSen conflicto unos con otros.
Por ejemplo, supongamos que el parámetro del modo de preparación de la tabla de destino está establecido en No hacer nada o Truncar. En este caso, ha indicado a AWS DMS que no realice ninguna configuración en las tablas de destino, incluida la creación de índices principales y únicos. Si no ha creado claves principales ni únicas en las tablas de destino, AWS DMS analiza por completo la tabla para cada actualización. Este enfoque puede afectar al rendimiento de forma significativa.
Errores de vulneración de la clave principal al volver a comenzar una tarea
Este error se puede producir cuando permanecen en la base de datos de destino datos procedentes de una tarea de migración anterior. Si la opción Modo de preparación de tabla de destino está definida en No hacer nada, AWS DMS no hace ninguna actividad de preparación en la tabla de destino, ni tampoco limpia datos insertados en una tarea anterior.
Para reiniciar la tarea y evitar que se produzcan estos errores, elimine las filas insertadas en las tablas de destino de la ejecución anterior de la tarea.
Error en la carga inicial de un esquema
En algunos casos, es posible que la carga inicial de los esquemas produzca un error Operation:getSchemaListDetails:errType=, status=0, errMessage=,
errDetails=
.
En estos casos, la cuenta de usuario utilizada por AWS DMS para conectarse al punto de conexión de origen no tiene los permisos necesarios.
Tareas que producen un error desconocido
La causa de los tipos de error desconocidos puede variar. Sin embargo, a menudo nos damos cuenta de que el problema se debe a que los recursos asignados a la instancia de replicación de AWS DMS son insuficientes.
Para asegurarse de que la instancia de replicación tenga suficientes recursos para realizar la migración, compruebe el uso de la CPU, la memoria, los archivos de intercambio y las IOPS de la instancia. Para obtener más información acerca de la monitorización, consulte Métricas de AWS Database Migration Service.
Reiniciar la tarea carga las tablas desde el principio
AWS DMS reinicia la carga de tablas desde el principio cuando no ha terminado la carga inicial de una tabla. Cuando se reinicia una tarea, AWS DMS vuelve a cargar las tablas desde el principio cuando la carga inicial no se completó.
El número de tablas por tarea provoca problemas
No hay un límite establecido en el número de tablas por tarea de replicación. Sin embargo, como regla general, recomendamos limitar el número de tablas de una tarea a menos de 60 000. El uso de recursos puede provocar atascos si una única tarea utiliza más de 60 000 tablas.
Las tareas producen un error cuando una clave principal se crea en una columna de LOB
En el modo de LOB COMPLETO o LOB LIMITADO, AWS DMS no admite la replicación de claves principales que son tipos de datos de LOB.
DMS migra inicialmente una fila con una columna LOB como nula y, a continuación, actualiza la columna LOB. Por lo tanto, cuando se crea la clave principal en una columna LOB, la inserción inicial falla ya que la clave principal no puede ser nula. Como solución alternativa, agregue otra columna como clave principal y elimine la clave principal de la columna de LOB.
Duplicar registros que se producen en la tabla de destino sin una clave principal
La ejecución de una tarea de carga completa y CDC puede crear registros duplicados en tablas de destino que no tengan una clave principal o un índice único. Para evitar la duplicación de registros en tablas de destino durante las tareas de carga completa y CDC, asegúrese de que las tablas de destino tengan una clave principal o un índice único.
Los puntos de conexión de origen se incluyen en el rango de IP reservado
Si una base de datos de origen de AWS DMS utiliza una dirección IP dentro del intervalo IP reservado de 192.168.0.0/24, se produce un error en la prueba de conexión de punto de conexión de origen. Los pasos siguientes proporcionan una posible solución alternativa:
-
Busque una instancia de Amazon EC2 que no esté en el rango reservado que pueda comunicarse con la base de datos de origen en 192.168.0.0/24.
Instale un proxy socat y ejecútelo. A continuación se muestra un ejemplo.
yum install socat socat -d -d -lmlocal2 tcp4-listen:database port,bind=0.0.0.0,reuseaddr,fork tcp4:source_database_ip_address:database_port &
Utilice la dirección IP de instancia de Amazon EC2 y el puerto de base de datos indicado anteriormente para el punto de conexión de AWS DMS. Asegúrese de que el punto de conexión tenga el grupo de seguridad que permite a AWS DMS acceder al puerto de la base de datos. Tenga en cuenta que el proxy debe estar funcionando mientras dure la ejecución de la tarea de DMS. En función del caso de uso, es posible que tenga que automatizar la configuración del proxy.
Las marcas temporales son confusas en las consultas de Amazon Athena
Si las marcas de tiempo aparecen confusas en las consultas de Athena, utilice la ModifyEndpointacción AWS Management Console o para establecer el valor de parquetTimestampInMillisecond
su punto de conexión Amazon S3 en. true
Para obtener más información, consulte S3Settings.
Solución de problemas con Oracle
A continuación, puede obtener información acerca de la resolución de problemas específicos mediante AWS DMS con bases de datos de Oracle.
Temas
- Obtención de datos de consultas
- Migración de LOB desde Oracle 12c
- Cambiar entre Oracle LogMiner y Binary Reader
- Error de CDC de Oracle detenido 122301 y de tope de reintentos de CDC de Oracle superado.
- Agregar automáticamente registros suplementarios a un punto de conexión de origen de Oracle
- No se están capturando los cambios de LOB
- Error: ORA-12899: valor demasiado grande para la columna nombre de columna
- Malinterpretación del tipo de datos NUMBER
- Faltan registros durante la carga completa
- Error de tabla
- Error: no se pueden recuperar los ID de destino de registro REDO archivado por Oracle
- Evaluación del rendimiento de lectura de los registros REDO o archivados de Oracle
Obtención de datos de consultas
Puede extraer los datos una vez desde una vista; no puede utilizarlos para la replicación continua. Para poder extraer los datos de las vistas, debe agregar el código siguiente a la sección Configuración del punto de conexión de la página del punto de conexión de origen de Oracle. Al extraer los datos de una vista, la vista se muestra como una tabla en el esquema de destino.
"ExposeViews": true
Migración de LOB desde Oracle 12c
AWS DMSpuede utilizar dos métodos para capturar los cambios en una base de datos de Oracle: Binary Reader y Oracle. LogMiner De forma predeterminada, AWS DMS utiliza Oracle LogMiner para capturar los cambios. Sin embargo, en Oracle 12c, Oracle LogMiner no admite columnas LOB. Para capturar cambios en columnas LOB en Oracle 12c, utilice Binary Reader.
Cambiar entre Oracle LogMiner y Binary Reader
AWS DMSpuede utilizar dos métodos para capturar los cambios en una base de datos Oracle de origen: Binary Reader y Oracle LogMiner. Oracle LogMiner es el valor predeterminado. Si desea cambiar y usar Binary Reader para capturar cambios, haga lo siguiente:
Para utilizar Binary Reader para capturar cambios
-
Inicie sesión en la AWS DMS consola AWS Management Console y ábrala en https://console.aws.amazon.com/dms/v2/
. Elija Puntos de conexión.
Elija el punto de conexión de origen de Oracle que desea para utilizar Binary Reader.
Elija Modificar.
Elija Opciones avanzadas y agregue después el código siguiente para Atributos de conexión adicionales.
useLogminerReader=N
Utilice una herramienta de desarrollador de Oracle como SQL-Plus para conceder el privilegio adicional siguiente a la cuenta de usuario de AWS DMS empleada para conectar con el punto de conexión de Oracle.
SELECT ON V_$TRANSPORTABLE_PLATFORM
Error de CDC de Oracle detenido 122301 y de tope de reintentos de CDC de Oracle superado.
Este error se produce cuando los registros de archivos de Oracle necesarios se han eliminado de su servidor antes de que AWS DMS pudiera utilizarlos para capturar los cambios. Amplíe sus políticas de retención de registros en el servidor de base de datos. Para una base de datos de Amazon RDS, ejecute el procedimiento siguiente para ampliar la retención de registros. El código del ejemplo siguiente amplía la retención de registros en una instancia de base de datos de Amazon RDS a 24 horas.
exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',24);
Agregar automáticamente registros suplementarios a un punto de conexión de origen de Oracle
De forma predeterminada, el registro complementario de AWS DMS está desactivado. Para activar automáticamente el registro complementario para un punto de enlace de origen de Oracle, haga lo siguiente:
Para agregar registros suplementarios a un punto de enlace de Oracle de origen
-
Inicie sesión en la AWS DMS consola AWS Management Console y ábrala en https://console.aws.amazon.com/dms/v2/
. Elija Puntos de conexión.
Elija el punto de conexión de origen de Oracle al que desee agregar el registro .
Elija Modificar.
Elija Opciones avanzadas y agregue después el código siguiente en el cuadro de texto Atributos de conexión adicionales:
addSupplementalLogging=Y
Elija Modificar.
No se están capturando los cambios de LOB
En la actualidad, una tabla debe tener una clave principal para que AWS DMS pueda capturar los cambios de LOB. Si una tabla que contiene LOB no tiene una clave principal, hay varias medidas que puede aplicar para capturar los cambios de los LOB:
Añadir una clave principal a la tabla. Esto puede ser tan sencillo como añadir una columna de ID y rellenarla con una secuencia utilizando un activador.
Cree una vista materializada de la tabla que incluya un ID generado por el sistema como clave principal y migrar la vista materializada en lugar de la tabla.
Crear una espera lógica, agregar una clave principal a la tabla y migrar desde la espera lógica.
Error: ORA-12899: valor demasiado grande para la columna nombre de columna
El error “ORA-12899: valor demasiado grande para el nombre de la columna
” suele deberse a un par de problemas.
En uno de estos problemas, hay una discordancia entre los conjuntos de caracteres utilizados por las bases de datos de origen y destino.
En otro de estos problemas, la configuración del soporte en el idioma nacional (NLS) difiere entre las dos bases de datos. Una causa habitual de este error es que el parámetro NLS_LENGTH_SEMANTICS de la base de datos de origen esté definido en CHAR y el parámetro NLS_LENGTH_SEMANTICS en BYTE.
Malinterpretación del tipo de datos NUMBER
El tipo de datos NUMBER de Oracle se convierte en varios tipos de datos de AWS DMS en función de la precisión y la escala de NUMBER. Estas conversiones pueden consultarse aquí Tipos de datos de origen para Oracle. El modo de conversión del tipo NUMBER también puede verse afectado por el uso de ajustes de punto de conexión para el punto de conexión de origen de Oracle. Estos ajustes de punto de conexión están documentados en Configuración del punto final cuando se utiliza Oracle como fuente de AWS DMS.
Faltan registros durante la carga completa
Al realizar una carga completa, AWS DMS busca transacciones abiertas en el nivel de base de datos y espera a que se confirme la transacción. Por ejemplo, en función de la configuración de la tarea TransactionConsistencyTimeout=600
, AWS DMS espera 10 minutos incluso si la transacción abierta se encuentra en una tabla que no está incluida en la asignación de tablas. Sin embargo, si la transacción abierta está en una tabla incluida en la asignación de tablas y la transacción no se confirma a tiempo, el resultado es que faltan registros en la tabla de destino.
Puede modificar la configuración de la tarea TransactionConsistencyTimeout
y aumentar el tiempo de espera si sabe que las transacciones abiertas tardarán más en confirmarse.
Además, tenga en cuenta que el valor predeterminado de la configuración de la tarea FailOnTransactionConsistencyBreached
es false
. Esto significa que AWS DMS sigue aplicando otras transacciones, pero se pierden las transacciones abiertas. Si quiere que la tarea produzca un error cuando las transacciones abiertas no se cierren a tiempo, puede configurar FailOnTransactionConsistencyBreached
en true
.
Error de tabla
Table Error
aparece en las estadísticas de la tabla durante la replicación si una cláusula WHERE
no hace referencia a una columna de clave principal y el registro complementario no se utiliza en todas las columnas.
Para solucionar este problema, active el registro complementario en todas las columnas de la tabla a la que se hace referencia. Para obtener más información, consulte Configuración del registro complementario.
Error: no se pueden recuperar los ID de destino de registro REDO archivado por Oracle
Este error se produce cuando el origen de Oracle no tiene ningún registro de archivo generado o V$ARCHIVED_LOG está vacío. Puede resolver el error cambiando los registros manualmente.
Para una base de datos de Amazon RDS, ejecute el procedimiento siguiente para cambiar los archivos de registro. El procedimiento switch_logfile
no tiene parámetros.
exec rdsadmin.rdsadmin_util.switch_logfile;
Para una base de datos de origen de Oracle autoadministrada, utilice el siguiente comando para forzar un cambio de registro.
ALTER SYSTEM SWITCH LOGFILE ;
Evaluación del rendimiento de lectura de los registros REDO o archivados de Oracle
Si tiene problemas de rendimiento con el origen de Oracle, puede evaluar el rendimiento de lectura de los registros REDO o archivados de Oracle para encontrar formas de mejorar el rendimiento. Para probar el rendimiento de la lectura de registros REDO o de archivos, utilice la imagen de máquina de Amazon (AMI) de diagnóstico de AWS DMS.
Puede usar la AMI de diagnóstico de AWS DMS para hacer lo siguiente:
-
Utilice el método bFile para evaluar el rendimiento de los archivos de registro REDO.
-
Utilice el LogMiner método para evaluar el rendimiento del archivo redo log.
-
Utilice el método PL/SQL (
dbms_lob.read
) para evaluar el rendimiento de los archivos de registro REDO. -
Utilice un solo subproceso para evaluar el rendimiento de lectura en ASMFile.
-
Utilice varios subprocesos para evaluar el rendimiento de lectura en ASMFile.
-
Utilice la función Direct OS Readfile() para Windows o Pread64 para Linux para evaluar el archivo de registro REDO.
A continuación, puede tomar medidas correctivas en función de los resultados.
Prueba del rendimiento de lectura en un archivo de registro REDO o de archivo de Oracle
-
Cree una instancia de Amazon EC2 de AMI de diagnóstico de AWS DMS y conéctese a ella.
Para obtener más información, consulte Uso de la AMI de diagnóstico de AWS DMS.
-
Ejecute el comando awsreplperf.
$ awsreplperf
El comando muestra las opciones de la utilidad de rendimiento de lectura de Oracle de AWS DMS.
0. Quit 1. Read using Bfile 2. Read using LogMiner 3. Read file PL/SQL (dms_lob.read) 4. Read ASMFile Single Thread 5. Read ASMFile Multi Thread 6. Readfile() function
-
Seleccione una opción de la lista.
-
Ingrese la siguiente información de conexión a la base de datos y registro de archivo.
Oracle user name [system]: Oracle password: Oracle connection name [orcllx]: Connection format
hostname
:port
/instance
Oracle event trace? [N]: Default N = No or Y = Yes Path to redo or archive log file []: -
Examine el resultado mostrado para obtener información relevante sobre el rendimiento de lectura. Por ejemplo, a continuación se muestra el resultado que se puede obtener al seleccionar la opción número 2, Leer usando LogMiner.
-
Para salir de la utilidad, ingrese 0 (cero).
Siguientes pasos
-
Cuando los resultados muestren que la velocidad de lectura está por debajo de un umbral aceptable, ejecute el script de soporte de diagnóstico de Oracle en el punto de conexión y revise las secciones Tiempo de espera, Perfil de carga y Perfil de E/S. A continuación, ajuste cualquier configuración anormal que pueda mejorar el rendimiento de lectura. Por ejemplo, si los archivos de registro REDO ocupan hasta 2 GB, intente aumentar el tamaño de LOG_BUFFER a 200 MB para mejorar el rendimiento.
-
Revise las prácticas recomendadas de AWS DMS para asegurarse de que la instancia, la tarea y los puntos de conexión de replicación de DMS estén configurados de forma óptima.
Solución de problemas con MySQL
A continuación, puede obtener información acerca de la resolución de problemas específicos mediante AWS DMS con bases de datos MySQL.
Temas
- La tarea de CDC produce un error para el punto de enlace de la instancia de base de datos de Amazon RDS porque se ha desactivado el registro binario
- Las conexiones a una instancia de MySQL de destino se desconectan durante una tarea
- Agregar la confirmación automática a un punto de enlace compatible con MySQL
- Desactivar claves externas en un punto de enlace de destino compatible con MySQL
- Caracteres sustituidos por signos de interrogación
- Entradas de registro “evento incorrecto”
- Captura de datos de cambios con MySQL 5.5
- Aumento de la retención de registros binarios para instancias de base de datos de Amazon RDS
- Mensaje de registro: algunos cambios desde la base de datos de origen no han surtido efecto al aplicarlos a la base de datos de destino.
- Error de identificador demasiado largo
- Error: conjunto de caracteres incompatible provoca error en la conversión de datos del campo
- Error: página de códigos 1252 a UTF8 [120112] Se ha producido un error en la conversión de datos del campo
- Los índices, las claves externas o las actualizaciones o eliminaciones en cascada no se migran
La tarea de CDC produce un error para el punto de enlace de la instancia de base de datos de Amazon RDS porque se ha desactivado el registro binario
Este problema se produce con las instancias de base de datos de Amazon RDS, porque las copias de seguridad automatizadas están deshabilitadas. Habilite las copias de seguridad automáticas fijando el período de retención de copia de seguridad en un valor diferente de cero.
Las conexiones a una instancia de MySQL de destino se desconectan durante una tarea
Si una tarea con LOB se está desconectando de un destino de MySQL, es posible que vea el siguiente tipo de errores en el registro de la tarea.
[TARGET_LOAD ]E: RetCode: SQL_ERROR SqlState: 08S01 NativeError: 2013 Message: [MySQL][ODBC 5.3(w) Driver][mysqld-5.7.16-log]Lost connection to MySQL server during query [122502] ODBC general error.
[TARGET_LOAD ]E: RetCode: SQL_ERROR SqlState: HY000 NativeError: 2006 Message: [MySQL][ODBC 5.3(w) Driver]MySQL server has gone away [122502] ODBC general error.
En este caso, es posible que tenga que ajustar alguna de las configuraciones de la tarea.
Para resolver el problema de una tarea que se esté desconectado de un destino MySQL, haga lo siguiente:
Compruebe que ha definido la variable
max_allowed_packet
de su base de datos en un valor suficientemente alto como para almacenar sus LOB más grandes.Compruebe que ha configurado las variables siguientes para disponer de un valor de tiempo de espera amplio. Le sugerimos que utilice un valor mínimo de 5 minutos para cada una de estas variables.
net_read_timeout
net_write_timeout
wait_timeout
Para obtener información sobre cómo configurar las variables del sistema de MySQL, consulte Variables del sistema del servidor
Agregar la confirmación automática a un punto de enlace compatible con MySQL
Para añadir autocommit a un punto de enlace de destino compatible con MySQL
-
Inicie sesión en la AWS DMS consola AWS Management Console y ábrala en https://console.aws.amazon.com/dms/v2/
. Elija Puntos de conexión.
Elija el punto de conexión de destino compatible con MySQL al que desee agregar confirmación automática.
Elija Modificar.
Elija Opciones avanzadas y agregue después el código siguiente en el cuadro de texto Atributos de conexión adicionales:
Initstmt= SET AUTOCOMMIT=1
Elija Modificar.
Desactivar claves externas en un punto de enlace de destino compatible con MySQL
Puede desactivar las comprobaciones de claves externas en MySQL agregando lo siguiente a Atributos de conexión adicionales, en la sección Opciones avanzadas del punto de conexión de MySQL, Amazon Aurora MySQL-Compatible Edition o MariaDB de destino.
Para desactivar claves externas en un punto de enlace de destino compatible con MySQL
-
Inicie sesión en la AWS DMS consola AWS Management Console y ábrala en https://console.aws.amazon.com/dms/v2/
. Elija Puntos de conexión.
Elija el punto de conexión de destino de MySQL, Aurora MySQL o MariaDB cuyas claves externas desea desactivar.
Elija Modificar.
Elija Opciones avanzadas y agregue después el código siguiente en el cuadro de texto Atributos de conexión adicionales:
Initstmt=SET FOREIGN_KEY_CHECKS=0
Elija Modificar.
Caracteres sustituidos por signos de interrogación
La situación que más habitualmente origina este problema es que los caracteres del punto de enlace de origen se hayan codificado mediante un juego de caracteres incompatibles con AWS DMS.
Entradas de registro “evento incorrecto”
Las entradas de “evento incorrecto” en los registros de migración suelen indicar que se ha intentado realizar una operación de lenguaje de definición de datos (DDL) no admitida en el punto de conexión de la base de datos de origen. Las operaciones DDL incompatibles generan un evento que la instancia de replicación no puede omitir, por lo que se registra un evento incorrecto.
Para solucionar este problema, reinicie la tarea desde el principio. De este modo, se vuelven a cargar las tablas y se empiezan a capturar los cambios en un momento en el que se haya ejecutado la operación DDL no admitida.
Captura de datos de cambios con MySQL 5.5
La captura de datos de cambios (CDC) de AWS DMS para bases de datos compatibles con MySQL de Amazon RDS requiere un registro binario de imagen completa basado en filas, incompatible con la versión de MySQL 5.5 o anteriores. Para utilizar la función CDC de AWS DMS debe actualizar su instancia de base de datos de Amazon RDS a MySQL versión 5.6.
Aumento de la retención de registros binarios para instancias de base de datos de Amazon RDS
AWS DMS precisa que se retengan archivos de registros binarios para capturar datos de cambios. Para retener registros durante más tiempo en una instancia de base de datos de Amazon RDS, siga este procedimiento. El ejemplo que sigue amplía el tiempo de retención de registros binarios hasta 24 horas.
call mysql.rds_set_configuration('binlog retention hours', 24);
Mensaje de registro: algunos cambios desde la base de datos de origen no han surtido efecto al aplicarlos a la base de datos de destino.
Cuando AWS DMS actualiza el valor de una columna de la base de datos de MySQL a su valor existente, MySQL devuelve un mensaje de zero rows affected
. Este comportamiento es distinto a lo que ocurre con otros motores de bases de datos, como Oracle y SQL Server. Estos motores actualizan una fila, incluso cuando el valor de sustitución es el mismo que el actual.
Error de identificador demasiado largo
El siguiente error se produce cuando un identificador es demasiado largo:
TARGET_LOAD E: RetCode: SQL_ERROR SqlState: HY000 NativeError: 1059 Message: MySQLhttp://ODBC 5.3(w) Driverhttp://mysqld-5.6.10Identifier name '
name
' is too long 122502 ODBC general error. (ar_odbc_stmt.c:4054)
En algunos casos, se establece AWS DMS para crear las tablas y las claves principales en la base de datos de destino. En estos casos, DMS actualmente no usa los mismos nombres para las claves principales que se usaron en la base de datos de origen. En su lugar, DMS crea el nombre de la clave principal en función del nombre de la tabla. Cuando el nombre de la tabla es largo, el identificador autogenerado puede superar el límite permitido para MySQL.
Para resolver este problema, el enfoque actual consiste en crear previamente las tablas y las claves principales en la base de datos de destino. A continuación, utilice una tarea con la configuración de tareas Modo de preparación de la tabla de destino establecida en No hacer nada o Truncar para rellenar las tablas de destino.
Error: conjunto de caracteres incompatible provoca error en la conversión de datos del campo
El siguiente error se produce cuando un juego de caracteres no compatible genera error en la conversión de datos del campo:
"[SOURCE_CAPTURE ]E: Column '
column-name
' uses an unsupported character set [120112] A field data conversion failed. (mysql_endpoint_capture.c:2154)
Compruebe los parámetros de la base de datos relacionados con las conexiones. El siguiente comando se puede usar para establecer estos parámetros.
SHOW VARIABLES LIKE '%char%';
Error: página de códigos 1252 a UTF8 [120112] Se ha producido un error en la conversión de datos del campo
El siguiente error puede producirse durante una migración si existen caracteres que no pertenecen a la página de códigos 1252 en la base de datos MySQL de origen.
[SOURCE_CAPTURE ]E: Error converting column 'column_xyz' in table 'table_xyz with codepage 1252 to UTF8 [120112] A field data conversion failed. (mysql_endpoint_capture.c:2248)
Como solución provisional, puede utilizar el atributo de conexión adicional CharsetMapping
con el punto de enlace de MySQL de origen para especificar el mapeo del conjunto de caracteres. Es posible que tenga que reiniciar la tarea de migración de AWS DMS desde el principio si agrega esta configuración de punto de conexión.
Por ejemplo, la siguiente configuración de punto de conexión podría usarse para un punto de conexión de origen de MySQL donde el conjunto de caracteres de origen es Utf8
o latin1
. 65001 es el identificador de la página de códigos UTF8.
CharsetMapping=utf8,65001 CharsetMapping=latin1,65001
Los índices, las claves externas o las actualizaciones o eliminaciones en cascada no se migran
AWS DMS no admite la migración de objetos secundarios, como índices y claves externas. Para replicar los cambios realizados en las tablas secundarias a partir de una operación de actualización o eliminación en cascada, es necesario tener activa la restricción de clave externa desencadenante en la tabla de destino. Para evitar esta limitación, cree la clave externa manualmente en la tabla de destino. A continuación, cree una sola tarea para la carga completa y CDC o dos tareas independientes para la carga completa y CDC, tal y como se describe a continuación:
Crear una tarea única que admita la carga completa y CDC
Este procedimiento describe cómo migrar claves e índices externos mediante una sola tarea para carga completa y CDC.
Crear una tarea de carga completa y CDC
Cree manualmente las tablas con claves e índices externos en el destino para que coincidan con las tablas de origen.
Agregue el siguiente ECA al punto de conexión de AWS DMS de destino:
Initstmt=SET FOREIGN_KEY_CHECKS=0;
Cree la tarea de AWS DMS con
TargetTablePrepMode
establecido enDO_NOTHING
.Establezca la opción
Stop task after full load completes
enStopTaskCachedChangesApplied
.Inicie la tarea. AWS DMS detiene la tarea automáticamente después de completar la carga completa y aplica los cambios en la memoria caché.
Elimine el ECA
SET FOREIGN_KEY_CHECKS
que agregó anteriormente.Reanude la tarea. La tarea entra en la fase de CDC y aplica los cambios continuos de la base de datos de origen al destino.
Crear tareas de carga completa y CDC de forma independiente
Estos procedimientos describen cómo migrar claves e índices externos mediante tareas independientes para carga completa y CDC.
Crear una tarea de carga completa
Cree manualmente las tablas con claves e índices externos en el destino para que coincidan con las tablas de origen.
Agregue el siguiente ECA al punto de conexión de AWS DMS de destino:
Initstmt=SET FOREIGN_KEY_CHECKS=0;
Cree la tarea de AWS DMS con el parámetro
TargetTablePrepMode
establecido enDO_NOTHING
yEnableValidation
establecido enFALSE
.Inicie la tarea. AWS DMS detiene la tarea automáticamente después de completar la carga completa y aplica los cambios en la memoria caché.
Una vez finalizada la tarea, anote la hora de inicio de la tarea de carga completa en UTC o el nombre y la posición del archivo de registro binario, para iniciar la tarea exclusiva de CDC. Consulte los registros para obtener la marca temporal en UTC a partir de la hora inicial de inicio de la carga completa.
Crear una tarea exclusiva de CDC
Elimine el ECA
SET FOREIGN_KEY_CHECKS
que estableció anteriormente.Cree la tarea exclusiva de CDC con la posición de inicio ajustada a la hora de inicio de carga completa indicada en el paso anterior. Como alternativa, puede usar la posición de registro binario registrada en el paso anterior. Establezca la opción
TargetTablePrepMode
enDO_NOTHING
. Habilite la validación de datos mediante el establecimiento de la configuración deEnableValidation
enTRUE
si es necesario.Inicie la tarea exclusiva de CDC y monitoree los registros para detectar errores.
nota
Esta solución alternativa solo se aplica a una migración de MySQL a MySQL. No puede usar este método con la característica Aplicación por lotes, ya que la Aplicación por lotes requiere que las tablas de destino no tengan claves externas activas.
Solución de problemas mediante PostgreSQL
A continuación, puede obtener información acerca de la resolución de problemas específicos mediante AWS DMS con bases de datos de PostgreSQL.
Temas
- Tipos de datos JSON truncados
- Las columnas de un tipo de datos definido por el usuario no se migran correctamente
- Error que indica que no se ha seleccionado ningún esquema de creación
- No se están replicando las eliminaciones y las actualizaciones en una tabla mediante CDC
- Las instrucciones TRUNCATE no se están propagando
- Impedir que PostgreSQL capture instrucciones DDL
- Selección del esquema donde crear los objetos de base de datos para capturar instrucciones DDL
- Ausencia de tablas de Oracle después de migrar a PostgreSQL
- ReplicationSlotDiskUsage aumenta y restart_lsn deja de avanzar durante transacciones largas, como las cargas de trabajo de ETL
- La tarea que utiliza la consulta como origen no tiene filas copiadas
Tipos de datos JSON truncados
AWS DMS trata el tipo de datos JSON en PostgreSQL como columna del tipo de datos LOB. Esto significa que el límite de tamaño de LOB cuando utilice el modo de LOB limitado se aplica a datos JSON.
Por ejemplo, supongamos que el modo de LOB limitado está establecido en 4096 KB. En este caso, los datos JSON de más de 4096 KB se truncan en el límite de 4096 KB y no pasan la prueba de validación en PostgreSQL.
La siguiente información de registro muestra JSON truncado debido a la configuración de modo de LOB limitado y error de validación.
03:00:49 2017-09-19T03:00:49 [TARGET_APPLY ]E: Failed to execute statement: 'UPDATE "public"."delivery_options_quotes" SET "id"=? , "enabled"=? , "new_cart_id"=? , "order_id"=? , "user_id"=? , "zone_id"=? , "quotes"=? , "start_at"=? , "end_at"=? , "last_quoted_at"=? , "created_at"=? , "updated_at"=? WHERE "id"=? ' [1022502] (ar_odbc_stmt 2017-09-19T03:00:49 [TARGET_APPLY ]E: Failed to execute statement: 'UPDATE "public"."delivery_options_quotes" SET "id"=? , "enabled"=? , "new_cart_id"=? , "order_id"=? , "user_id"=? , "zone_id"=? , "quotes"=? , "start_at"=? , "end_at"=? , "last_quoted_at"=? , "created_at"=? , "updated_at"=? WHERE "id"=? ' [1022502] (ar_odbc_stmt.c:2415) 03:00:49 2017-09-19T03:00:49 [TARGET_APPLY ]E: RetCode: SQL_ERROR SqlState: 22P02 NativeError: 1 Message: ERROR: invalid input syntax for type json;, Error while executing the query [1022502] (ar_odbc_stmt.c:2421) 2017-09-19T03:00:49 [TARGET_APPLY ]E: RetCode: SQL_ERROR SqlState: 22P02 NativeError: 1 Message: ERROR: invalid input syntax for type json;, Error while executing the query [1022502] (ar_odbc_stmt.c:2421)
Las columnas de un tipo de datos definido por el usuario no se migran correctamente
Cuando se replica desde un origen de PostgreSQL, AWS DMS crea la tabla de destino con los mismos tipos de datos para todas las columnas, además de las columnas con los tipos de datos definidos por el usuario. En estos casos, el tipo de datos se crea como de "caracteres variables" en el destino.
Error que indica que no se ha seleccionado ningún esquema de creación
En algunos casos, es posible que aparezca el error «SQL_ERROR SqlState: 3F000:7 Mensaje NativeError: ERROR: no se ha seleccionado ningún esquema para crearlo».
Este error puede producirse cuando la asignación de tablas JSON contiene un valor comodín para el esquema, pero la base de datos de origen no admite ese valor.
No se están replicando las eliminaciones y las actualizaciones en una tabla mediante CDC
Las operaciones de eliminación y actualización durante la captura de datos de cambios (CDC) se ignoran si la tabla de origen no tiene una clave principal. AWS DMS admite la captura de datos de cambios (CDC) para tablas de PostgreSQL con claves principales.
Si una tabla no tiene una clave principal, los registros de escritura anticipada (WAL) no incluyen una imagen anterior de la fila de la base de datos. En este caso, AWS DMS no puede actualizar la tabla. Para replicar las operaciones de eliminación, cree una clave principal en la tabla de origen.
Las instrucciones TRUNCATE no se están propagando
Cuando se usa la captura de datos de cambios (CDC), AWS DMS no admite operaciones TRUNCATE.
Impedir que PostgreSQL capture instrucciones DDL
Puede impedir que un punto de conexión de destino de PostgreSQL capture instrucciones DDL agregando la siguiente instrucción Configuración de punto de conexión.
"CaptureDDLs": "N"
Selección del esquema donde crear los objetos de base de datos para capturar instrucciones DDL
Puede controlar en qué esquema se crean los objetos de la base de datos relacionados con la captura de instrucciones DDL. Agregue la siguiente instrucción de configuración del punto de conexión. El parámetro Configuración de punto de conexión está disponible en la pestaña del punto de conexión de origen.
"DdlArtifactsSchema: "xyzddlschema"
Ausencia de tablas de Oracle después de migrar a PostgreSQL
En este caso, las tablas y los datos por lo general seguirán siendo accesibles.
Oracle utiliza nombres de tabla en mayúsculas y PostgreSQL utiliza nombres de tabla en minúsculas. Cuando realice una migración de Oracle a PostgreSQL, le sugerimos que proporcione determinadas reglas de transformación en la sección de asignación de tablas de la tarea. Estas son reglas de transformación para convertir los nombres de las tablas en mayúsculas y minúsculas.
Si ha migrado las tablas sin utilizar reglas de transformación para convertir las mayúsculas y minúsculas de los nombres de las tablas, escriba los nombres de las tablas entre comillas cuando haga referencia a ellas.
ReplicationSlotDiskUsage aumenta y restart_lsn deja de avanzar durante transacciones largas, como las cargas de trabajo de ETL
Cuando la replicación lógica está habilitada, el número máximo de cambios guardados en la memoria por transacción es de 4 MB. Después de eso, los cambios se transfieren al disco. Como resultado, ReplicationSlotDiskUsage
aumenta y restart_lsn
no avanza hasta que la transacción se complete o aborte y finalice la reversión. Como se trata de una transacción larga, puede tardar mucho tiempo en restaurarse.
Por lo tanto, evite las transacciones de larga duración cuando la replicación lógica esté habilitada. En su lugar, intente dividir la transacción en varias transacciones más pequeñas.
La tarea que utiliza la consulta como origen no tiene filas copiadas
Para migrar una vista, establezca table-type
en all
o view
. Para obtener más información, consulte Especificación de selección de tablas y reglas de transformaciones desde la consola.
Entre los orígenes que admiten vistas se incluyen los siguientes.
-
Oracle
-
Microsoft SQL Server
-
MySQL
-
PostgreSQL
-
IBM Db2 LUW
-
SAP Adaptive Server Enterprise (ASE)
Solución de problemas con Microsoft SQL Server
A continuación, puede obtener información acerca de la resolución de problemas específicos mediante AWS DMS con bases de datos de Microsoft SQL Server.
Temas
Errores al capturar cambios para una base de datos de SQL Server
Los errores durante la captura de datos de cambios (CDC) pueden indicar con frecuencia que no se estaba cumpliendo uno de los requisitos previos. Por ejemplo, el requisito que más comúnmente no se tiene en cuenta es el requisito previo de hacer una copia de seguridad completa de la base de datos. El registro de tareas refleja esta omisión con el siguiente error:
SOURCE_CAPTURE E: No FULL database backup found (under the 'FULL' recovery model). To enable all changes to be captured, you must perform a full database backup. 120438 Changes may be missed. (sqlserver_log_queries.c:2623)
Revise los requisitos previos mostrados para usar SQL Server como origen en Uso de una base de datos de Microsoft SQL Server como fuente para AWS DMS.
Faltan columnas de identidad
AWS DMS no es compatible con columnas de identidad al crear un esquema de destino. Debe añadirlas después de la primera vez que se haya completado la carga.
Error: SQL Server no admite publicaciones
El error siguiente se genera cuando se utiliza SQL Server Express como un punto de enlace de origen:
RetCode: SQL_ERROR SqlState: HY000 NativeError: 21106 Message: This edition of SQL Server does not support publications.
AWS DMS no es compatible actualmente con SQL Server Express como origen o destino.
Los cambios no aparecen en el destino
Para capturar los cambios de forma coherente, AWS DMS precisa que una base de datos de SQL Server de origen esté en modo de recuperación de datos "FULL" o "BULK LOGGED". No se admite el modelo “SIMPLE”.
El modelo de recuperación de SIMPLE registra la información mínima necesaria para permitir a los usuarios recuperar su base de datos. Todas las entradas de registro inactivas se truncan automáticamente cuando se genera un punto de control.
Se siguen registrando todas las operaciones. Sin embargo, tan pronto como se produce un punto de control, el registro se trunca automáticamente. Este truncamiento significa que el registro queda disponible para su reutilización y que las entradas de registro más antiguas se pueden sobrescribir. Cuando se sobrescriben las entradas de registro, no se pueden capturar los cambios. Este problema es el motivo por el que AWS DMS no admite el modelo de recuperación de datos SIMPLE. Para obtener información sobre otros requisitos previos necesarios para usar SQL Server como origen, consulte Uso de una base de datos de Microsoft SQL Server como fuente para AWS DMS.
Tabla no uniforme asignada en las particiones
Durante la captura de datos de cambios (CDC), la migración de una tabla con una estructura especializada se suspende cuando AWS DMS no puede realizar correctamente la CDC en la tabla. Se emiten mensajes como estos:
[SOURCE_CAPTURE ]W: Table is not uniformly mapped across partitions. Therefore - it is excluded from CDC (sqlserver_log_metadata.c:1415) [SOURCE_CAPTURE ]I: Table has been mapped and registered for CDC. (sqlserver_log_metadata.c:835)
Al ejecutar CDC en tablas de SQL Server, AWS DMS analiza los tlogs de SQL Server. En cada registro tlog, AWS DMS analiza los valores hexadecimales que contienen los datos de las columnas que se han insertado, actualizado o eliminado durante un cambio.
Para analizar el registro hexadecimal, AWS DMS lee los metadatos de las tablas de sistema de SQL Server. Estas tablas de sistema identifican lo que son las columnas de tabla especialmente estructurada y revelan algunas de sus propiedades internas, como "xoffset" y "null bit position".
AWS DMS espera que los metadatos sean los mismos para todas las particiones sin procesar de la tabla. Sin embargo, en algunos casos, las tablas especialmente estructuradas no tienen los mismos metadatos en todas las particiones. En estos casos, AWS DMS puede incluir CDC en esa tabla para evitar analizar los cambios de forma incorrecta y proporcionar al objetivo datos incorrectos. Entre las soluciones provisionales se incluyen las siguientes:
Si la tabla tiene un índice agrupado, realice una reconstrucción del índice.
Si la tabla no tiene un índice agrupado, agregue uno a la tabla (puede descartarlo más tarde si lo desea).
Solución de problemas con Amazon Redshift
A continuación, puede obtener información acerca de la resolución de problemas específicos mediante AWS DMS con bases de datos de Amazon Redshift.
Temas
- Carga en un clúster de Amazon Redshift en una región de AWS diferente
- Error por existir ya la relación "awsdms_apply_exceptions"
- Errores con tablas cuyo nombre comienza con "awsdms_changes"
- Visualización de tablas en clústeres con nombres como dms.awsdms_changes000000000XXXX
- Permisos necesarios para trabajar con Amazon Redshift
Carga en un clúster de Amazon Redshift en una región de AWS diferente
No puede cargar en un clúster de Amazon Redshift en una región de AWS diferente de la instancia de replicación de AWS DMS. DMS exige que la instancia de replicación y el clúster de Amazon Redshift estén en la misma región.
Error por existir ya la relación "awsdms_apply_exceptions"
El error “la relación ‘awsdms_apply_exceptions’ ya existe” a menudo se produce cuando un punto de enlace de Redshift se especifica como punto de enlace de PostgreSQL. Para solucionar este problema, modifique el punto de enlace y cambie Target engine a "redshift".
Errores con tablas cuyo nombre comienza con "awsdms_changes"
Los mensajes de error de la tabla con nombres que empiezan por “awsdms_changes” pueden producirse cuando dos tareas que intentan cargar datos en el mismo clúster de Amazon Redshift se ejecutan al mismo tiempo. Debido a la forma en que se nombran las tablas temporales, las tareas simultáneas pueden entrar en conflicto al actualizar la misma tabla.
Visualización de tablas en clústeres con nombres como dms.awsdms_changes000000000XXXX
AWS DMS crea tablas temporales cuando los datos se cargan a partir de archivos almacenados en Amazon S3. Los nombres de estas tablas temporales llevan cada una el prefijo dms.awsdms_changes
. Estas tablas son necesarias para que AWS DMS pueda almacenar los datos la primera vez que se cargan y antes de colocarlos en la tabla de destino final.
Permisos necesarios para trabajar con Amazon Redshift
Para utilizar AWS DMS con Amazon Redshift, la cuenta de usuario que utilice para acceder a Amazon Redshift debe tener los permisos siguientes:
CRUD (elegir, insertar, actualizar, eliminar)
Carga masiva
Crear, modificar y eliminar (si lo requiere la definición de la tarea)
Para ver los requisitos previos necesarios para utilizar Amazon Redshift como destino, consulte Uso de una base de datos de Amazon Redshift como destino para AWS Database Migration Service.
Solución de problemas con Amazon Aurora MySQL
A continuación, puede obtener información acerca de la resolución de problemas específicos mediante AWS DMS con bases de datos de Amazon Aurora MySQL.
Error por campos CHARACTER SET UTF8 terminados por ',' entre líneas '"' terminadas por '\n'
Si utiliza Amazon Aurora MySQL como destino, es posible que vea un error como el siguiente en los registros. Este tipo de error suele indicar que tiene ANSI_QUOTES como parte del parámetro SQL_MODE. Si ANSI_QUOTES forma parte del parámetro SQL_MODE, las comillas dobles se gestionan como comillas sencillas y se pueden crear problemas al ejecutar una tarea.
Para solucionar este error, elimine ANSI_QUOTES del parámetro SQL_MODE.
2016-11-02T14:23:48 [TARGET_LOAD ]E: Load data sql statement. load data local infile "/rdsdbdata/data/tasks/7XO4FJHCVON7TYTLQ6RX3CQHDU/data_files/4/LOAD000001DF.csv" into table `VOSPUSER`.`SANDBOX_SRC_FILE` CHARACTER SET UTF8 fields terminated by ',' enclosed by '"' lines terminated by '\n'( `SANDBOX_SRC_FILE_ID`,`SANDBOX_ID`, `FILENAME`,`LOCAL_PATH`,`LINES_OF_CODE`,`INSERT_TS`,`MODIFIED_TS`,`MODIFIED_BY`, `RECORD_VER`,`REF_GUID`,`PLATFORM_GENERATED`,`ANALYSIS_TYPE`,`SANITIZED`,`DYN_TYPE`, `CRAWL_STATUS`,`ORIG_EXEC_UNIT_VER_ID` ) ; (provider_syntax_manager.c:2561)
Solución de problemas con SAP ASE
A continuación, puede obtener información acerca de la resolución de problemas específicos mediante AWS DMS con bases de datos de SAP ASE.
Error: las columnas de LOB tienen valores NULL cuando el origen tiene un índice único compuesto con valores NULL
Cuando se utiliza SAP ASE como origen con tablas configuradas con un índice único compuesto que permite valores NULL, es posible que los valores de LOB no migren durante la replicación en curso. Este comportamiento suele ser el resultado de que ANSI_NULL esté establecido en 1 de forma predeterminada en el cliente de la instancia de replicación de DMS.
Para garantizar que los campos de LOB migren correctamente, incluya la configuración de punto de conexión 'AnsiNull=0'
al punto de conexión de origen de AWS DMS de la tarea.
Solución de problemas con IBM Db2
A continuación, puede obtener información acerca de la resolución de problemas específicos mediante AWS DMS con bases de datos de IBM Db2.
Error: la tarea no admite la reanudación a partir de la marca temporal
Para la replicación continua (CDC), si planea iniciar la replicación desde una marca temporal específica, establezca el atributo de conexión StartFromContext
en la marca temporal requerida. Para obtener más información, consulte Configuración del punto de conexión al utilizar Db2 LUW. El establecimiento de StartFromContext
en la marca temporal requerida evita el siguiente problema:
Last Error Resume from timestamp is not supported Task error notification received from subtask 0, thread 0 [reptask/replicationtask.c:2822] [1020455] 'Start from timestamp' was blocked to prevent Replicate from scanning the log (to find the timestamp). When using IBM DB2 for LUW, 'Start from timestamp' is only supported if an actual change was captured by this Replicate task earlier to the specified timestamp.