Monitoreo de tareas de AWS DMS - AWS Database Migration Service

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.

Monitoreo de tareas de AWS DMS

La monitorización es una parte importante del mantenimiento de la fiabilidad, la disponibilidad y el rendimiento de AWS DMS y sus soluciones de AWS. Debe recopilar datos de monitorización de todas las partes de su solución de AWS para que pueda depurar un error multipunto de una forma más fácil si se produce. AWS proporciona varias herramientas para monitorizar sus tareas y recursos de AWS DMS y responder a posibles incidentes.

Eventos y notificaciones de AWS DMS

AWS DMS utiliza Amazon Simple Notification Service (Amazon SNS) para proporcionar notificaciones cuando se produce un evento de AWS DMS, por ejemplo, la creación o eliminación de una instancia de replicación. AWS DMS agrupa eventos en categorías a las que puede suscribirse, de modo que se le notifique cuando se produzca un evento de esa categoría. Por ejemplo, si se suscribe a la categoría de creación de una instancia de replicación determinada, recibirá una notificación cada vez que se produzca un evento relacionado con la creación y que afecte a su instancia de replicación. Puede trabajar con estas notificaciones de cualquier forma que admita Amazon SNS para una región de AWS como, por ejemplo, un mensaje de correo electrónico, un mensaje de texto o una llamada a un punto de conexión HTTP. Para obtener más información, consultar Trabajo con eventos y notificaciones de Amazon SNS en AWS Database Migration Service

Estado de una tarea

Puede monitorizar el progreso de su tarea comprobando su estado y monitorizando su tabla de control. El estado de la tarea indica la condición de una tarea de AWS DMS y sus recursos asociados. Incluye indicaciones tales como si la tarea se está creando, iniciando, ejecutándose o deteniendo. También incluye el estado actual de las tablas que está migrando la tarea, por ejemplo, si ha comenzado o está en curso una carga completa de una tabla y detalles como el número de inserciones, eliminaciones y actualizaciones de la tabla. Para obtener más información acerca de la supervisión de las tareas y las condiciones de los recursos de tareas, consulte Estado de una tarea y Estado de la tabla durante las tareas. Para obtener más información sobre las tablas de control, consulte Configuración de las tareas de la tabla de control.

Alarmas y registros de Amazon CloudWatch

Mediante alarmas de Amazon CloudWatch, puede ver una o varias métricas de tareas durante un periodo de tiempo especificado. Si una métrica supera un límite determinado, se envía una notificación a un tema de Amazon SNS. Las alarmas de CloudWatch no invocan acciones simplemente porque se encuentren en determinado estado. Más bien, el estado debe haber cambiado y mantenido durante un número determinado de periodos. AWS DMS también utiliza CloudWatch para registrar la información de tareas durante el proceso de migración. Puede utilizar AWS CLI o la API de AWS DMS para ver información sobre los registros de tareas. Para obtener más información acerca del uso de CloudTrail con AWS DMS, consulte Uso de Amazon CloudWatch para el monitoreo de tareas de replicación. Para obtener más información sobre las métricas de monitorización AWS DMS, consulte Métricas de AWS Database Migration Service. Para obtener más información sobre el uso de registros de tareas de AWS DMS, consulte Consulta y administración de registros de tareas de AWS DMS.

Registros de viaje en el tiempo

Para registrar y depurar las tareas de replicación, puede utilizar viaje en el tiempo de AWS DMS. En este enfoque, puede usar Amazon S3 para almacenar los registros y cifrarlos con las claves de cifrado. Puede recuperar los registros de S3 mediante filtros de fecha y hora y, a continuación, verlos, descargarlos y ocultarlos según sea necesario. De este modo, puede "viajar en el tiempo hacia atrás" para investigar las actividades de la base de datos.

Puede usar el viaje en el tiempo con puntos de conexión de origen de PostgreSQL compatibles con DMS y puntos de conexión de destino de PostgreSQL y MySQL compatibles con DMS. Puede activar el viaje en el tiempo solo para tareas de carga completa y de CDC y solo para tareas de CDC. Para activar el viaje en el tiempo o modificar cualquier configuración de viaje en el tiempo existente, asegúrese de detener la tarea.

Para obtener más información acerca de los registros de Viaje en el tiempo, consulte Configuración de tarea de Viaje en el tiempo. Para conocer las prácticas recomendadas sobre el uso de los registros de viajes en el tiempo, consulte Solución de problemas de tareas de replicación con Viaje en el tiempo.

Registros de AWS CloudTrail

AWS DMS se integra con AWS CloudTrail, un servicio que proporciona un registro de las acciones hechas por un usuario, un rol de IAM o un servicio de AWS en AWS DMS. CloudTrail captura todas las llamadas a la API de AWS DMS como eventos, incluidas las llamadas procedentes de la consola de AWS DMS y las llamadas de código a las operaciones de la API de AWS DMS. Si crea un registro de seguimiento, puede habilitar la entrega continua de eventos de CloudTrail a un bucket de Amazon S3, incluidos los eventos para AWS DMS. Si no configura un registro de seguimiento, puede ver los eventos más recientes de la consola de CloudTrail en el Historial de eventos. Mediante la información recopilada por CloudTrail, puede determinar la solicitud que se realizó a AWS DMS, la dirección IP desde la que se realizó, quién la realizó y cuándo, etc. Para obtener más información, consulte Registrar llamadas a la API de AWS DMS con AWS CloudTrail.

Registros de la base de datos

Puede ver, descargar y ver los registros de la base de datos de los puntos de enlace de las tareas mediante la AWS Management Console, la AWS CLI, o la API del servicio de base de datos de AWS. Para obtener más información, consulte la documentación del servicio de base de datos en Documentación de AWS.

Para obtener más información, consulte los siguientes temas.

Estado de una tarea

El estado de una tarea indica su situación. En la siguiente tabla se muestran los posibles estados que puede tener una tarea:

Estado de una tarea Descripción

Creando

AWS DMS está creando la tarea.

En ejecución

La tarea está realizando los trabajos de migración especificados.

Stopped

La tarea se ha interrumpido.

Stopping

La tarea se está deteniendo. Suele reflejar la intervención del usuario en la tarea.

Eliminando

La tarea se está eliminando, normalmente por una solicitud de intervención por parte del usuario.

Failed

La tarea ha fallado. Para obtener más información, consulte los archivos de registro de la tarea.

Error

La tarea se ha detenido debido a un error. En la sección del último mensaje de error de la pestaña Información general se proporciona una breve descripción del error de la tarea.

Ejecución con errores

La tarea se está ejecutando con un estado de error. Por lo general, esto indica que no se pudieron migrar una o más tablas de la tarea. La tarea sigue cargando otras tablas de acuerdo con las reglas de selección.

Starting

La tarea se está conectando a la instancia de replicación y a los puntos de enlace de origen y destino. Se están aplicando todos los filtros y las transformaciones.

Ready

La tarea está lista para ejecutarse. Este estado normalmente sigue al estado de la creación de la tarea.

Modificando

La tarea se está modificado; en general, debido a la acción de un usuario que ha modificado la configuración de la tarea.

Trasladarse

La tarea está en proceso de trasladarse a otra instancia de replicación. La replicación permanece en este estado hasta que se complete el movimiento. La eliminación de la tarea es la única operación permitida en la tarea de replicación mientras se está moviendo.

Error al mover

El traslado de la tarea ha producido un error por algún motivo, por ejemplo, por no disponer de suficiente espacio de almacenamiento en la instancia de replicación de destino. Cuando una tarea de replicación se encuentra en este estado, se puede iniciar, modificar, mover o eliminar.

Pruebas

La migración de la base de datos especificada para esta tarea se está probando en respuesta a la ejecución de la operación StartReplicationTaskAssessmentRun o StartReplicationTaskAssessment.

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 que carece de estimación de estadísticas de filas, no podemos proporcionar ningún tipo de cálculo sobre el porcentaje completado. En este caso, puede utilizar el estado de la tarea y la indicación de las filas cargadas para confirmar que la tarea está en ejecución y avanzando.

Tenga en cuenta que la columna “última actualización” de la consola de DMS solo indica la hora en que AWS DMS realizó la última actualización del registro de estadísticas de una tabla. No indica la hora de la última actualización de la tabla.

Además de utilizar la consola de DMS, puede generar una descripción de las tareas de replicación actuales, incluido el estado de la tarea, mediante el comando aws dms describe-replication-tasks en la AWS CLI, como se muestra en el siguiente ejemplo.

{ "ReplicationTasks": [ { "ReplicationTaskIdentifier": "moveit2", "SourceEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:6GGI6YPWWGAYUVLKIB732KEVWA", "TargetEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:EOM4SFKCZEYHZBFGAGZT3QEC5U", "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE", "MigrationType": "full-load", "TableMappings": ...output omitted... , "ReplicationTaskSettings": ...output omitted... , "Status": "stopped", "StopReason": "Stop Reason FULL_LOAD_ONLY_FINISHED", "ReplicationTaskCreationDate": 1590524772.505, "ReplicationTaskStartDate": 1590619805.212, "ReplicationTaskArn": "arn:aws:dms:us-east-1:123456789012:task:K55IUCGBASJS5VHZJIINA45FII", "ReplicationTaskStats": { "FullLoadProgressPercent": 100, "ElapsedTimeMillis": 0, "TablesLoaded": 0, "TablesLoading": 0, "TablesQueued": 0, "TablesErrored": 0, "FreshStartDate": 1590619811.528, "StartDate": 1590619811.528, "StopDate": 1590619842.068 } } ] }

Estado de la tabla durante las tareas

La consola de AWS DMS actualiza información sobre el estado de las tablas durante la migración. En la siguiente tabla se muestran los posibles valores de estado:


             Instancia de replicación de AWS Database Migration Service
Estado Descripción

Table does not exist (La tabla no existe)

AWS DMS no puede encontrar la tabla en el punto de conexión de origen.

Before load (Antes de cargar)

El proceso de carga completa se ha habilitado, pero aún no se ha iniciado.

Full load

El proceso de carga completa está en curso.

Table completed

Se ha terminado la carga completa.

Table cancelled

Se ha cancelado la carga de la tabla.

Table error

Se ha producido un error al cargar la tabla.

Uso de Amazon CloudWatch para el monitoreo de tareas de replicación

Puede utilizar alarmas o eventos de Amazon CloudWatch para hacer un seguimiento más estrecho del proceso de migración. Para obtener más información sobre Amazon CloudWatch, consulte ¿Qué son Amazon CloudWatch, eventos de Amazon CloudWatch y registros de Amazon CloudWatch? en la Guía del usuario de Amazon CloudWatch. Tenga en cuenta que se cobra por utilizar Amazon CloudWatch.

Si la tarea de replicación no crea registros de CloudWatch, consulte AWS DMSno crea registros CloudWatch en la guía de solución de problemas.

La consola de AWS DMS muestra estadísticas básicas de CloudWatch para cada tarea, incluido el estado de la tarea, el porcentaje completado, el tiempo transcurrido y estadísticas de tabla, como se muestra a continuación. Seleccione la tarea de replicación y, a continuación, la pestaña Métricas de CloudWatch.

Para ver y modificar la configuración del registro de tareas de CloudWatch, elija Modificar el registro de tareas. Para obtener más información, consulte Configuración de las tareas de los registros.


            Monitoreo de AWS DMS

La consola de AWS DMS muestra estadísticas de rendimiento de cada tabla, incluido el número de inserciones, eliminaciones y actualizaciones, al seleccionar la pestaña Estadísticas de tabla.


            Monitoreo de AWS DMS

Además, si selecciona una instancia de replicación en la página Instancia de replicación, podrá ver las métricas de rendimiento de la instancia eligiendo la pestaña Métricas de Cloudwatch.


            Monitoreo de AWS DMS

Métricas de AWS Database Migration Service

AWS DMS proporciona estadísticas de lo siguiente:

  • Métricas de host: estadísticas de rendimiento y uso del host de replicación, proporcionadas por Amazon CloudWatch. Para ver una lista completa de las métricas disponibles, consulte Métricas de instancia de replicación.

  • Métricas de tareas de replicación: las estadísticas para las tareas de replicación, incluidos los cambios entrantes y confirmados y la latencia entre el host de replicación y las bases de datos de origen y destino. Para ver una lista completa de las métricas disponibles, consulte Métricas de tareas de replicación.

  • Métricas de tablas: estadísticas de tablas que están en proceso de migración, incluido el número de inserciones, actualizaciones, eliminaciones e instrucciones DDL completadas.

Las métricas de tareas se dividen en estadísticas entre el host de replicación y el punto de enlace de origen, y estadísticas entre el host de replicación y el punto de enlace de destino. Puede determinar las estadísticas totales para una tarea agregando dos estadísticas relacionadas. Por ejemplo, puede determinar la latencia total o el retraso de réplica de una tarea combinando los valores CDCLatencySource y CDCLatencyTarget.

Los valores de las métricas de las tareas pueden verse afectados por la actividad en curso en la base de datos de origen. Por ejemplo, si se ha iniciado una transacción pero no se ha confirmado, la métrica CDCLatencySource seguirá creciendo hasta que la transacción se confirme.

En el caso de la instancia de replicación, es preciso realizar una aclaración para la métrica FreeableMemory. La memoria que se puede liberar no es una indicación de la memoria libre disponible real. Es la memoria que se encuentra actualmente en uso, que puede liberarse y que otros usuarios pueden utilizar; se trata de una combinación de búferes y caché en uso en la instancia de replicación.

Aunque la métrica FreeableMemory no refleja la cantidad de memoria libre real disponible, la combinación de las métricas SwapUsage y FreeableMemory puede indicar si la instancia de replicación está sobrecargada.

Monitoree estas dos métricas para las siguientes condiciones:

  • La métrica FreeableMemory se aproxima a cero.

  • La métrica SwapUsage aumenta o fluctúa.

Si detecta alguna de estas dos condiciones, debe sopesar la posibilidad de trasladarse a una instancia de replicación de mayor tamaño. También debe considerar la posibilidad de reducir el número y el tipo de tareas que se ejecutan en la instancia de replicación. Las tareas de carga completa requieren más memoria que las tareas que solo replican los cambios.

Para estimar aproximadamente los requisitos de memoria reales para una tarea de migración de AWS DMS, puede utilizar los siguientes parámetros.

Columnas de LOB

Un número medio de columnas de LOB en cada tabla del ámbito de la migración.

Maximum number of tables to load in parallel (Número máximo de tablas que se pueden cargar en paralelo)

El número máximo de tablas que AWS DMS carga en paralelo en una tarea.

El valor predeterminado es 8.

LOB chunk size

El tamaño de los fragmentos de LOB, en kilobytes, que AWS DMS utiliza para replicar los datos en la base de datos de destino.

Tasa de confirmación durante la carga completa

El número máximo de registros que AWS DMS puede transferir en paralelo.

El valor predeterminado es 10,000.

Tamaño de LOB

El tamaño máximo de un LOB específico, en kilobytes.

Tamaño de matriz masiva

El número máximo de filas que el controlador de punto de conexión obtiene o procesa. Este valor depende de la configuración del controlador.

El valor predeterminado es 1,000.

Tras determinar estos valores, puede utilizar uno de los siguientes métodos para calcular la cantidad de memoria necesaria para la tarea de migración. Estos métodos dependen de la opción que elija para la configuración de columna de LOB en la tarea de migración.

  • Para el modo de LOB completo, utilice la siguiente fórmula.

    Required memory = (LOB columns) * (Maximum number of tables to load in parallel) * (LOB chunk size) * (Commit rate during full load)

    Considere un ejemplo en el que las tablas de origen incluyen una media de 2 columnas de LOB y el tamaño de los fragmentos de LOB es de 64 KB. Si utiliza los valores predeterminados para Maximum number of tables to load in parallel y Commit rate during full load, la cantidad de memoria necesaria para la tarea es la siguiente.

    Required memory = 2 * 8 * 64 * 10,000 = 10,240,000 KB

    nota

    Para reducir el valor de la tasa de confirmación durante la carga completa, abra la consola de AWS DMS, elija las tareas de migración de bases de datos y cree o modifique una tarea. Expanda la configuración avanzada e ingrese el valor de la tasa de confirmación durante la carga completa.

  • Para el modo de LOB limitado, utilice la siguiente fórmula.

    Required memory = (LOB columns) * (Maximum number of tables to load in parallel) * (LOB size) * (Bulk array size)

    Considere un ejemplo en el que las tablas de origen incluyen una media de 2 columnas de LOB y el tamaño máximo de un LOB específico es 4096 KB. Si utiliza los valores predeterminados para Maximum number of tables to load in parallel y Bulk array size, la cantidad de memoria necesaria para la tarea es la siguiente.

    Required memory = 2 * 8 * 4,096 * 1,000 = 65,536,000 KB

Para AWS DMS para realizar las conversiones de forma óptima, la CPU debe estar disponible cuando se producen las conversiones. La sobrecarga de la CPU y la falta de recursos de CPU suficientes pueden provocar migraciones lentas. AWS DMS puede requerir un uso intensivo de la CPU, especialmente cuando se realizan migraciones y replicaciones heterogéneas, como la migración de Oracle a PostgreSQL. El uso de la clase de instancia de replicación C4 puede ser una buena opción para estas situaciones. Para obtener más información, consulte Elección de la instancia de replicación de AWS DMS adecuada para la migración.

Métricas de instancia de replicación

El monitoreo de las instancias de replicación incluye métricas de Amazon CloudWatch para las siguientes estadísticas.

Métrica

Descripción

AvailableMemory

Una estimación de cuánta memoria tendrá disponible para iniciar nuevas aplicaciones sin necesidad de intercambiarlas. Para obtener más información, consulte el valor MemAvailable en la sección /proc/memInfo de las man-pages de Linux.

Unidades: bytes

CPUAllocated

El porcentaje máximo de CPU asignado a la tarea (0 significa que no hay límite).

AWS DMS compara esta métrica con las dimensiones combinadas de ReplicationInstanceIdentifer y ReplicationTaskIdentifier en la consola de CloudWatch. Utilice la categoría ReplicationInstanceIdentifier, ReplicationTaskIdentifier para ver esta métrica.

Unidades: porcentaje

CPUUtilization

El porcentaje de vCPU (CPU virtual) asignada que está actualmente en uso en la instancia.

Unidades: porcentaje

DiskQueueDepth

El número de solicitudes de escritura o lectura pendientes (E/S) a la espera de acceso al disco.

Unidades: recuento

FreeStorageSpace

La cantidad de espacio de almacenamiento disponible.

Unidades: bytes

FreeMemory

La cantidad de memoria física disponible para que la usen las aplicaciones, la caché de páginas y las estructuras de datos del propio kernel. Para obtener más información, consulte el valor MemFree en la sección /proc/memInfo de las man-pages de Linux.

Unidades: bytes

FreeableMemory

La cantidad de memoria de acceso aleatorio disponible.

Unidades: bytes

MemoryAllocated

La asignación máxima de memoria para la tarea (0 significa que no hay límites).

AWS DMS compara esta métrica con las dimensiones combinadas de ReplicationInstanceIdentifer y ReplicationTaskIdentifier en la consola de CloudWatch. Utilice la categoría ReplicationInstanceIdentifier, ReplicationTaskIdentifier para ver esta métrica.

Unidades: MiB

WriteIOPS

Número medio de operaciones de E/S de escritura en disco por segundo.

Unidades: recuento/segundo

ReadIOPS

Número medio de operaciones de E/S de lectura en disco por segundo.

Unidades: recuento/segundo

WriteThroughput

Número medio de bytes que se escriben en el disco por segundo.

Unidades: bytes/segundo

ReadThroughput

El número medio de bytes leídos del disco por segundo.

Unidades: bytes/segundo

WriteLatency

Tiempo medio de cada operación de E/S (salida) en disco.

Unidades: milisegundos

ReadLatency

Tiempo medio de cada operación de E/S (entrada) en disco.

Unidades: milisegundos

SwapUsage

Cantidad de espacio de intercambio utilizada en la instancia de replicación.

Unidades: bytes

NetworkTransmitThroughput

El tráfico de red de salida (transferencia) en la instancia de replicación, incluidos el tráfico de base de datos del cliente y el tráfico de AWS DMS utilizado para monitoreo y replicación.

Unidades: bytes/segundo

NetworkReceiveThroughput

El tráfico de red de entrada (recepción) en la instancia de replicación, incluidos el tráfico de base de datos del cliente y el tráfico de AWS DMS utilizado para monitoreo y replicación.

Unidades: bytes/segundo

Métricas de tareas de replicación

El monitoreo de tareas de replicación incluye métricas para las estadísticas siguientes.

Métrica

Descripción

FullLoadThroughputBandwidthTarget

Los datos salientes se transmiten desde una carga nula para el destino en KB por segundo.

FullLoadThroughputRowsTarget

Cambios salientes de una carga completa para el destino en filas por segundo.

CDCIncomingChanges

Número total de eventos de cambio en un punto en el tiempo que están a la espera de aplicarse en el destino. Tenga en cuenta que esto no es lo mismo que una medida de la velocidad de cambio de las transacciones del punto de enlace de origen. Cuando el valor de esta métrica es alto, normalmente significa que AWS DMS no puede aplicar los cambios capturados con puntualidad, lo que provoca una latencia de destino más elevada.

CDCChangesMemorySource

Cantidad de filas que se acumulan en una memoria y que esperan a confirmarse desde el origen. Puede consultar esta métrica junto con CDCChangesDiskSource.

CDCChangesMemoryTarget

Cantidad de filas que se acumulan en una memoria y que esperan a confirmarse en el destino. Puede consultar esta métrica junto con CDCChangesDiskTarget.

CDCChangesDiskSource

Cantidad de filas que se acumulan en el disco y que esperan a confirmarse desde el origen. Puede consultar esta métrica junto con CDCChangesMemorySource.

CDCChangesDiskTarget

Cantidad de filas que se acumulan en el disco y que esperan a confirmarse en el destino. Puede consultar esta métrica junto con CDCChangesMemoryTarget.

CDCThroughputBandwidthTarget

Los datos salientes se transmiten para el destino en KB por segundo. CDCThroughputBandwidth registra los datos salientes transmitidos en los puntos de ejemplo. Si no se encuentra tráfico de red de tarea, el valor es cero. Como CDC no emite transacciones de larga duración, puede que el tráfico de red no se registre.

CDCThroughputRowsSource

Cambios de tareas entrantes del origen en filas por segundo.

CDCThroughputRowsTarget

Cambios de tareas salientes para el destino en filas por segundo.

CDCLatencySource

La diferencia, en segundos, entre el último evento capturado en el punto de conexión de origen y la marca temporal del sistema actual de la instancia de AWS DMS. CDCLatencySource representa la latencia entre el origen y la instancia de replicación. Un CDCLatencySource alto significa que el proceso de captura de los cambios del origen se retrasa. Para identificar la latencia en una replicación en curso, puede consultar esta métrica junto con CDCLatencyTarget. Si CDCLatencySource y CDCLatencyTarget son altos, investigue CDCLatencySource primero.

CDCSourceLatency puede ser 0 cuando no hay ningún retraso de replicación entre el origen y la instancia de replicación. CDCSourceLatency también puede pasar a cero cuando la tarea de replicación intenta leer el siguiente evento del registro de transacciones del origen y no hay eventos nuevos en comparación con la última vez que leyó desde el origen. Cuando esto sucede, la tarea restablece CDCSourceLatency a 0.

CDCLatencyTarget

La diferencia, en segundos, entre la primera marca temporal de evento que espera confirmación en el destino y la marca temporal actual de la instancia de AWS DMS. La latencia objetivo es la diferencia entre la hora del servidor de la instancia de replicación y el ID de evento no confirmado más antiguo reenviado a un componente de destino. En otras palabras, la latencia de destino es la diferencia temporal entre la instancia de replicación y el evento más antiguo aplicado pero no confirmado por el punto de conexión de TRG (99 %). Cuando CDCLatencyTarget es alto, indica que el proceso de aplicación de los eventos de cambio al destino se ha retrasado. Para identificar la latencia en una replicación en curso, puede consultar esta métrica junto con CDCLatencySource. Si CDCLatencyTarget es alto pero CDCLatencySource no, investigue si:

  • No hay claves principales o índices en el destino

  • Se producen cuellos de botella de recursos en la instancia de replicación o de destino

  • Los problemas de red residen entre la instancia de replicación y el destino

CPUUtilization

El porcentaje de CPU que utiliza una tarea en varios núcleos. La semántica de CPUUtilization de tarea es ligeramente diferente de CPUUtilizaiton de replicación. Si se utiliza 1 vCPU por completo, indica el 100 %, pero si hay varias vCPU en uso, el valor podría estar por encima del 100 %.

Unidades: porcentaje

SwapUsage

La cantidad de espacio de intercambio utilizado por tarea.

Unidades: bytes

MemoryUsage

El grupo de control (cgroup) memory.usage_in_bytes consumido por una tarea. DMS usa cgroups para controlar el uso de los recursos del sistema, como la memoria y la CPU. Esta métrica indica el uso de memoria de una tarea en megabytes dentro del cgroup asignado a esa tarea. Los límites de cgroup se basan en los recursos disponibles para la clase de instancia de replicación de DMS. memory.usage_in_bytes consta del tamaño del conjunto residente (RSS), la memoria caché y los componentes de intercambio de la memoria. El sistema operativo puede reclamar la memoria caché si es necesario. Le recomendamos que también monitoree la métrica de la instancia de replicación, AvailableMemory.

AWS DMS compara esta métrica con las dimensiones combinadas de ReplicationInstanceIdentifer y ReplicationTaskIdentifier en la consola de CloudWatch. Utilice la categoría ReplicationInstanceIdentifier, ReplicationTaskIdentifier para ver esta métrica.

Consulta y administración de registros de tareas de AWS DMS

Puede usar Amazon CloudWatch para registrar la información de tarea durante un proceso de migración de AWS DMS. Se debe habilitar el registro cuando se selecciona la configuración de tareas. Para obtener más información, consulte Configuración de las tareas de los registros.

Para consultar los registros de una tarea que se ha ejecutado, siga estos pasos:

  1. Abra la consola de AWS DMS y elija Tareas de migración de base de datos desde el panel de navegación. Aparecerá el cuadro de diálogo de tareas de migración de base de datos.

  2. Seleccione el nombre de su tarea. Aparecerá el cuadro de diálogo de detalles de información general.

  3. Busque la sección Registros de tareas de migración y elija Ver registros de CloudWatch.

Además, puede utilizar la AWS CLI o la API de AWS DMS para consultar información sobre los registros de tareas. Para ello, utilice el comando describe-replication-instance-task-logs de la AWS CLI o la acción DescribeReplicationInstanceTaskLogs de la API de AWS DMS.

Por ejemplo, el siguiente comando de la AWS CLI muestra los metadatos del registro de tareas en formato JSON.

$ aws dms describe-replication-instance-task-logs \ --replication-instance-arn arn:aws:dms:us-east-1:237565436:rep:CDSFSFSFFFSSUFCAY

A continuación se muestra un ejemplo de respuesta del comando.

{ "ReplicationInstanceTaskLogs": [ { "ReplicationTaskArn": "arn:aws:dms:us-east-1:237565436:task:MY34U6Z4MSY52GRTIX3O4AY", "ReplicationTaskName": "mysql-to-ddb", "ReplicationInstanceTaskLogSize": 3726134 } ], "ReplicationInstanceArn": "arn:aws:dms:us-east-1:237565436:rep:CDSFSFSFFFSSUFCAY" }

En esta respuesta, existe un único log de tareas (mysql-to-ddb) asociado a la instancia de replicación. El tamaño de este log es de 3 726 124 bytes.

Puede utilizar la información que devuelve describe-replication-instance-task-logs para diagnosticar y solucionar problemas con los logs de tareas. Por ejemplo, si habilita el registro de depuración detallado para una tarea, el registro de tareas aumentará de tamaño rápidamente, lo que podría consumir todo el almacenamiento disponible en la instancia de replicación y hacer que estado de la instancia cambie a storage-full. Al describir los registros de tareas, puede determinar cuáles son los que ya no necesita y eliminarlos para liberar espacio de almacenamiento.

Para eliminar los logs de tareas para una tarea, defina la opción DeleteTaskLogs de la tarea en true. Por ejemplo, el JSON siguiente elimina los registros de tareas cuando se modifica una tarea utilizando el comando modify-replication-task de la AWS CLI o la acción ModifyReplicationTask de AWS DMS.

{ "Logging": { "DeleteTaskLogs":true } }

Registrar llamadas a la API de AWS DMS con AWS CloudTrail

AWS DMS se integra con AWS CloudTrail, un servicio que proporciona un registro de las acciones hechas por un usuario, un rol o un servicio de AWS en AWS DMS. CloudTrail captura todas las llamadas a la API de AWS DMS como eventos, incluidas las llamadas procedentes de la consola de AWS DMS y las llamadas de código a las operaciones de la API de AWS DMS. Si crea un registro de seguimiento, puede habilitar la entrega continua de eventos de CloudTrail a un bucket de Amazon S3, incluidos los eventos para AWS DMS. Si no configura un registro de seguimiento, puede ver los eventos más recientes de la consola de CloudTrail en el Historial de eventos. Mediante la información recopilada por CloudTrail, puede determinar la solicitud que se realizó a AWS DMS, la dirección IP desde la que se realizó, quién la realizó y cuándo, etc.

Para obtener más información acerca de CloudTrail, consulte la Guía del usuario de AWS CloudTrail.

Información de AWS DMS en CloudTrail

CloudTrail se habilita en su cuenta de AWS cuando la crea. Cuando se produce una actividad en AWS DMS, esa actividad se registra en un evento de CloudTrail junto con otros eventos de servicio de AWS en Event history (Historial de eventos). Puede ver, buscar y descargar los últimos eventos de la cuenta de AWS. Para obtener más información, consulte Visualización de eventos con el historial de eventos de CloudTrail.

Para mantener un registro continuo de eventos en la cuenta de AWS, incluidos los eventos de AWS DMS, cree un registro de seguimiento. Un registro de seguimiento permite a CloudTrail enviar archivos de registro a un bucket de Amazon S3. De manera predeterminada, cuando se crea un registro de seguimiento en la consola, el registro de seguimiento se aplica a todas las regiones de AWS. El seguimiento registra los eventos de todas las regiones de AWS en la partición de AWS y envía los archivos de registro al bucket de Amazon S3 especificado. También es posible configurar otros servicios de AWS para analizar en profundidad y actuar en función de los datos de eventos recopilados en los registros de CloudTrail. Para obtener más información, consulte:

Todas las acciones de AWS DMS las registra CloudTrail y se documentan en la Referencia de la API de AWS Database Migration Service. Por ejemplo, las llamadas a las acciones CreateReplicationInstance, TestConnection y StartReplicationTask generan entradas en los archivos de registros de CloudTrail.

Cada entrada de registro o evento contiene información sobre quién generó la solicitud. La información de identidad del usuario le ayuda a determinar lo siguiente:

  • Si la solicitud se realizó con las credenciales raíz o del usuario de IAM de .

  • Si la solicitud se realizó con credenciales de seguridad temporales de un rol o fue un usuario federado.

  • Si la solicitud la realizó otro servicio de AWS.

Para obtener más información, consulte el elemento userIdentity de CloudTrail.

Descripción de las entradas de los archivos de registro de AWS DMS

Un registro de seguimiento es una configuración que permite la entrega de eventos como archivos de registros en un bucket de Amazon S3 que especifique. Los archivos log de CloudTrail pueden contener una o varias entradas de log. Un evento representa una única solicitud de cualquier origen e incluye información acerca de la acción solicitada, la fecha y la hora de la acción, los parámetros de la solicitud, etcétera. Los archivos de registro de CloudTrail no son un rastro de pila ordenado de las llamadas a las API públicas, por lo que no aparecen en ningún orden específico.

En el ejemplo siguiente, se muestra una entrada de registro de CloudTrail que ilustra la acción RebootReplicationInstance.

{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAIOSFODNN7EXAMPLE:johndoe", "arn": "arn:aws:sts::123456789012:assumed-role/admin/johndoe", "accountId": "123456789012", "accessKeyId": "ASIAYFI33SINADOJJEZW", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-08-01T16:42:09Z" }, "sessionIssuer": { "type": "Role", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::123456789012:role/admin", "accountId": "123456789012", "userName": "admin" } } }, "eventTime": "2018-08-02T00:11:44Z", "eventSource": "dms.amazonaws.com", "eventName": "RebootReplicationInstance", "awsRegion": "us-east-1", "sourceIPAddress": "72.21.198.64", "userAgent": "console.amazonaws.com", "requestParameters": { "forceFailover": false, "replicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:EX4MBJ2NMRDL3BMAYJOXUGYPUE" }, "responseElements": { "replicationInstance": { "replicationInstanceIdentifier": "replication-instance-1", "replicationInstanceStatus": "rebooting", "allocatedStorage": 50, "replicationInstancePrivateIpAddresses": [ "172.31.20.204" ], "instanceCreateTime": "Aug 1, 2018 11:56:21 PM", "autoMinorVersionUpgrade": true, "engineVersion": "2.4.3", "publiclyAccessible": true, "replicationInstanceClass": "dms.t2.medium", "availabilityZone": "us-east-1b", "kmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/f7bc0f8e-1a3a-4ace-9faa-e8494fa3921a", "replicationSubnetGroup": { "vpcId": "vpc-1f6a9c6a", "subnetGroupStatus": "Complete", "replicationSubnetGroupArn": "arn:aws:dms:us-east-1:123456789012:subgrp:EDHRVRBAAAPONQAIYWP4NUW22M", "subnets": [ { "subnetIdentifier": "subnet-cbfff283", "subnetAvailabilityZone": { "name": "us-east-1b" }, "subnetStatus": "Active" }, { "subnetIdentifier": "subnet-d7c825e8", "subnetAvailabilityZone": { "name": "us-east-1e" }, "subnetStatus": "Active" }, { "subnetIdentifier": "subnet-6746046b", "subnetAvailabilityZone": { "name": "us-east-1f" }, "subnetStatus": "Active" }, { "subnetIdentifier": "subnet-bac383e0", "subnetAvailabilityZone": { "name": "us-east-1c" }, "subnetStatus": "Active" }, { "subnetIdentifier": "subnet-42599426", "subnetAvailabilityZone": { "name": "us-east-1d" }, "subnetStatus": "Active" }, { "subnetIdentifier": "subnet-da327bf6", "subnetAvailabilityZone": { "name": "us-east-1a" }, "subnetStatus": "Active" } ], "replicationSubnetGroupIdentifier": "default-vpc-1f6a9c6a", "replicationSubnetGroupDescription": "default group created by console for vpc id vpc-1f6a9c6a" }, "replicationInstanceEniId": "eni-0d6db8c7137cb9844", "vpcSecurityGroups": [ { "vpcSecurityGroupId": "sg-f839b688", "status": "active" } ], "pendingModifiedValues": {}, "replicationInstancePublicIpAddresses": [ "18.211.48.119" ], "replicationInstancePublicIpAddress": "18.211.48.119", "preferredMaintenanceWindow": "fri:22:44-fri:23:14", "replicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:EX4MBJ2NMRDL3BMAYJOXUGYPUE", "replicationInstanceEniIds": [ "eni-0d6db8c7137cb9844" ], "multiAZ": false, "replicationInstancePrivateIpAddress": "172.31.20.204", "patchingPrecedence": 0 } }, "requestID": "a3c83c11-95e8-11e8-9d08-4b8f2b45bfd5", "eventID": "b3c4adb1-e34b-4744-bdeb-35528062a541", "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }

Registro de contexto de AWS DMS

AWS DMS utiliza el registro de contexto para proporcionarle información sobre una migración en curso. El registro de contexto escribe información, como la siguiente, en el registro de CloudWatch de la tarea:

  • Información sobre la conexión de la tarea a las bases de datos de origen y destino.

  • Comportamiento de la tarea de replicación. Puede utilizar los registros de tareas para diagnosticar problemas de replicación.

  • Instrucciones SQL sin datos que AWS DMS ejecuta en las bases de datos de origen y destino. Puede usar los registros SQL para diagnosticar un comportamiento de migración inesperado.

  • Transmita los detalles de posición de cada evento de CDC.

El registro de contexto solo está disponible en la versión 3.5.0 o superiores de AWS DMS.

AWS DMS activa el registro de contexto de forma predeterminada. Para controlar el registro de contexto, defina la tarea EnableLogContext en true o false o modifique la tarea en la consola.

AWS DMS escribe la información del registro de contexto en la tarea de replicación del registro de CloudWatch cada tres minutos. Asegúrese de que la instancia de replicación tenga suficiente espacio para el registro de la aplicación. Para obtener más información sobre la administración de registros de tareas, consulte Consulta y administración de registros de tareas de AWS DMS.

Tipos de objetos

AWS DMS produce un registro de contexto en CloudWatch para los siguientes tipos de objetos.

Tipo de objeto Descripción
TABLE_NAME Estas entradas de registro contienen información sobre las tablas que están dentro del ámbito con la regla de asignación de tareas actual. Puede usar estas entradas para examinar los eventos de la tabla durante un periodo específico durante la migración.
SCHEMA_NAME Estas entradas de registro contienen información sobre esquemas usados por la regla de asignación de tareas actual. Puede usar estas entradas para determinar qué esquema AWS DMS se utilizará durante un periodo específico durante la migración.
TRANSACTION_ID Estas entradas contienen el ID de transacción de cada cambio de DML/DDL capturado de la base de datos de origen. Puede usar estas entradas de registro para determinar qué cambios se produjeron durante una transacción determinada.
CONNECTION_ID Estas entradas contienen el ID de conexión. Puede usar estas entradas de registro para determinar qué conexión utiliza AWS DMS para cada paso de migración.
STATEMENT Estas entradas contienen el código SQL utilizado para recuperar, procesar y aplicar cada cambio de migración.
STREAM_POSITION Estas entradas contienen la posición en el archivo de registro de transacciones de cada acción de migración en la base de datos de origen. El formato de estas entradas varía según el tipo de motor de base de datos de origen. También puede usar esta información para determinar una posición inicial para un punto de comprobación de recuperación al configurar la replicación exclusiva de CDC.

Ejemplos de registro

Esta sección contiene ejemplos de registros de log que puede utilizar para monitorear la replicación y diagnosticar problemas de replicación.

Ejemplos de registro de conexión

Esta sección contiene ejemplos de registros que incluyen los ID de conexión.

2023-02-22T10:09:29 [SOURCE_CAPTURE ]I: Capture record 1 to internal queue from Source {operation:START_REGULAR (43), connectionId:27598, streamPosition:0000124A/6800A778.NOW} (streamcomponent.c:2920) 2023-02-22T10:12:30 [SOURCE_CAPTURE ]I: Capture record 0 to internal queue from Source {operation:IDLE (51), connectionId:27598} (streamcomponent.c:2920) 2023-02-22T11:25:27 [SOURCE_CAPTURE ]I: Capture record 0 to internal queue from Source {operation:IDLE (51), columnName:region, connectionId:27598} (streamcomponent.c:2920)

Ejemplos de registro del comportamiento de las tareas

Esta sección contiene ejemplos de registros sobre el comportamiento del registro de tareas de replicación. Puede utilizar esta información para diagnosticar problemas de replicación, como una tarea en el estado IDLE.

Los siguientes registros SOURCE_CAPTURE indican que no hay eventos disponibles para leer en el archivo de registro de la base de datos de origen y contienen registros TARGET_APPLY que indican que no hay eventos recibidos de los componentes de CDC de AWS DMS para aplicar a la base de datos de destino. Estos eventos también contienen detalles contextuales relacionados con los eventos aplicados anteriormente.

2023-02-22T11:23:24 [SOURCE_CAPTURE ]I: No Event fetched from wal log (postgres_endpoint_wal_engine.c:1369) 2023-02-22T11:24:29 [TARGET_APPLY ]I: No records received to load or apply on target , waiting for data from upstream. The last context is {operation:INSERT (1), tableName:sales_11, schemaName:public, txnId:18662441, connectionId:17855, statement:INSERT INTO "public"."sales_11"("sales_no","dept_name","sale_amount","sale_date","region") values (?,?,?,?,?),

Ejemplos de registro de instrucciones SQL

Esta sección contiene ejemplos de registros sobre las instrucciones SQL que se ejecutan en las bases de datos de origen y destino. Las instrucciones SQL que aparecen en los registros solo muestran la instrucción SQL, no muestran los datos. El registro TARGET_APPLY siguiente muestra una instrucción INSERT que se ejecutó en el destino.

2023-02-22T11:26:07 [TARGET_APPLY ]I: Applied record 2193305 to target {operation:INSERT (1), tableName:sales_111, schemaName:public, txnId:18761543, connectionId:17855, statement:INSERT INTO "public"."sales_111"("sales_no","dept_name","sale_amount","sale_date","region") values (?,?,?,?,?),

Limitaciones

Las limitaciones siguientes se aplican al registro de contexto de AWS DMS:

  • Mientras AWS DMS crea un registro mínimo para todos los tipos de puntos de conexión, el registro del contexto específico del motor extensivo solo está disponible para los siguientes tipos de puntos de conexión. Recomendamos activar el registro de contexto al utilizar estos tipos de puntos de conexión.

    • MySQL

    • PostgreSQL

    • Oracle

    • Microsoft SQL Server

    • MongoDB/Amazon DocumentDB

    • Amazon S3