

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.

# Configuración de tarea de Viaje en el tiempo
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel"></a>

Para registrar y depurar las tareas de replicación, puede utilizar AWS DMS Time Travel. En este enfoque, puede usar Amazon S3 para almacenar los registros y cifrarlos con las claves de cifrado. Solo con acceder al bucket de S3 de Viaje en el tiempo, 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 de vuelta en el tiempo” para investigar las actividades de la base de datos. El viaje en el tiempo funciona de forma independiente del CloudWatch registro. Para obtener más información sobre el CloudWatch registro, consulte[Configuración de las tareas de los registros](CHAP_Tasks.CustomizingTasks.TaskSettings.Logging.md). 

Puede utilizar Time Travel en todas AWS las regiones con puntos de enlace AWS DMS de origen compatibles con Oracle, Microsoft SQL Server y PostgreSQL y puntos de enlace de destino AWS DMS compatibles con PostgreSQL y MySQL. Puede activar el Viaje en el tiempo solo para tareas de carga completa y de captura de datos de cambios (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 de replicación.

La configuración de Viaje en el tiempo incluye las propiedades de `TTSettings` siguientes:
+ `EnableTT`: si esta opción está establecida en `true`, el registro de Viaje en el tiempo está activado para la tarea. El valor predeterminado es `false`.

  Tipo: Booleano

  Obligatorio: no
+ `EncryptionMode`: el tipo de cifrado del lado del servidor que se utiliza en el bucket de S3 para almacenar los datos y registros. Puede especificar `"SSE_S3"` (predeterminado) o `"SSE_KMS"`.

  Puede cambiar `EncryptionMode` de `"SSE_KMS"` a `"SSE_S3"`, pero no al revés.

  Tipo: cadena

  Requerido: no
+ `ServerSideEncryptionKmsKeyId`— Si lo especificas, proporciona el ID de tu `"SSE_KMS"` clave `EncryptionMode` gestionada personalizada. AWS KMS Asegúrese de que la clave que utilice tenga una política adjunta que active los permisos de usuario AWS Identity and Access Management (IAM) y permita el uso de la clave. 

  La opción de `"SSE_KMS"` solo admite su propia clave KMS simétrica y administrada de forma personalizada.

  Tipo: cadena

  Obligatorio: solo si establece `EncryptionMode` en `"SSE_KMS"`
+ `ServiceAccessRoleArn`: el nombre de recurso de Amazon (ARN) utilizado por el servicio para acceder al rol de IAM. Establezca el nombre del rol en `dms-tt-s3-access-role`. Esta es una configuración obligatoria que permite AWS DMS escribir y leer objetos de un bucket de S3.

  Tipo: cadena

  Obligatorio: si el Viaje en el tiempo está activado

  A continuación, se muestra una política de ejemplo para este rol.

------
#### [ JSON ]

****  

  ```
  {
   "Version":"2012-10-17",		 	 	 
   "Statement": [
          {
              "Sid": "VisualEditor0",
              "Effect": "Allow",
              "Action": [
                  "s3:PutObject",
                  "kms:GenerateDataKey",
                  "kms:Decrypt",
                  "s3:ListBucket",
                  "s3:DeleteObject"
              ],
              "Resource": [
                  "arn:aws:s3:::S3bucketName*",
                  "arn:aws:kms:us-east-1:112233445566:key/1234a1a1-1m2m-1z2z-d1d2-12dmstt1234"
              ]
          }
      ]
  }
  ```

------

  A continuación, se muestra una política de confianza de ejemplo para este rol.

------
#### [ JSON ]

****  

  ```
  {
   "Version":"2012-10-17",		 	 	 
   "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "dms.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole"
          }
      ]
  }
  ```

------
+ `BucketName`: el nombre del bucket de S3 para almacenar los registros de Viaje en el tiempo. Asegúrese de crear este bucket de S3 antes de activar los registros de Viaje en el tiempo.

  Tipo: cadena

  Obligatorio: si el Viaje en el tiempo está activado
+ `BucketFolder`: un parámetro opcional para definir un nombre de carpeta en el bucket de S3. Si especifica este parámetro, el DMS crea los registros de Viaje en el tiempo en la ruta `"/BucketName/BucketFolder/taskARN/YYYY/MM/DD/hh"`. Si no especifica este parámetro, AWS DMS crea la ruta predeterminada como`"/BucketName/dms-time-travel-logs/taskARN/YYYY/MM/DD/hh`.

  Tipo: cadena

  Requerido: no
+ `EnableDeletingFromS3OnTaskDelete`— Si esta opción está establecida en`true`, AWS DMS elimina los registros de viajes en el tiempo de S3 si se elimina la tarea. El valor predeterminado es `false`.

  Tipo: cadena

  Requerido: no
+ `EnableRawData`: si esta opción está establecida en `true`, los datos sin procesar del lenguaje de manipulación de datos (DML) de los registros de Viaje en el tiempo aparecen en la columna `raw_data` de registros de Viaje en el tiempo. Para obtener información detallada, consulte [Uso de los registros de Viaje en el tiempo](CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.LogSchema.md). El valor predeterminado es `false`. Si esta opción está establecida en `false`, solo se captura el tipo de DML.

  Tipo: cadena

  Requerido: no
+ `RawDataFormat`— En AWS DMS las versiones 3.5.0 y superiores, cuando `EnableRawData` está configurado en. `true` Esta propiedad especifica un formato para los datos sin procesar del DML en un registro de Viaje en el tiempo y se puede presentar de la siguiente manera:
  + `"TEXT"`: nombres y valores de columnas analizados y legibles para los eventos de DML capturados durante CDC como campos `Raw`.
  + `"HEX"`: el hexadecimal original para los nombres y valores de las columnas capturados para los eventos del DML durante CDC.

  Esta propiedad se aplica a los orígenes de base de datos de Oracle y Microsoft SQL Server.

  Tipo: cadena

  Requerido: no
+ `OperationsToLog`: especifica el tipo de operaciones de DML para registrar los registros de Viaje en el tiempo. Puede especificar uno de los siguientes valores:
  + `"INSERT"`
  + `"UPDATE"`
  + `"DELETE"`
  + `"COMMIT"`
  + `"ROLLBACK"`
  + `"ALL"`

  El valor predeterminado es `"ALL"`.

  Tipo: cadena

  Requerido: no
+ `MaxRecordSize`: especifica el tamaño máximo de los registros de Viaje en el tiempo que se registran para cada fila. Utilice esta propiedad para controlar el crecimiento de los registros de Viaje en el tiempo en el caso de tablas especialmente ocupadas. El valor predeterminado es 64 KB.

  Tipo: entero

  Obligatorio: no

Para obtener más información sobre cómo activar y usar los registros de Viaje en el tiempo, consulte los siguientes temas.

**Topics**
+ [Activación de los registros de Viaje en el tiempo para una tarea](CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.TaskEnabling.md)
+ [Uso de los registros de Viaje en el tiempo](CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.LogSchema.md)
+ [¿Con qué frecuencia AWS DMS carga los registros de viajes en el tiempo a S3](CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.UploadsToS3.md)

# Activación de los registros de Viaje en el tiempo para una tarea
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.TaskEnabling"></a>

Puede activar el viaje en el tiempo para una AWS DMS tarea mediante la configuración de la tarea descrita anteriormente. Asegúrese de detener la tarea de replicación antes de activar el Viaje en el tiempo.

**Para activar el viaje en el tiempo mediante la AWS CLI**

1. Cree un archivo JSON de configuración de tareas de DMS y agregue una sección de `TTSettings` como la siguiente. Para obtener información sobre cómo utilizar un archivo de configuración de tareas para establecer la configuración de las tareas, consulte [Ejemplo de configuración de tarea](CHAP_Tasks.CustomizingTasks.TaskSettings.md#CHAP_Tasks.CustomizingTasks.TaskSettings.Example).

   ```
    .
    .
    .
       },
   "TTSettings" : {
     "EnableTT" : true,
     "TTS3Settings": {
         "EncryptionMode": "SSE_KMS",
         "ServerSideEncryptionKmsKeyId": "arn:aws:kms:us-west-2:112233445566:key/myKMSKey",
         "ServiceAccessRoleArn": "arn:aws:iam::112233445566:role/dms-tt-s3-access-role",
         "BucketName": "myttbucket",
         "BucketFolder": "myttfolder",
         "EnableDeletingFromS3OnTaskDelete": false
       },
     "TTRecordSettings": {
         "EnableRawData" : true,
         "OperationsToLog": "DELETE,UPDATE",
         "MaxRecordSize": 64
       },
    .
    .
    .
   ```

1. En una acción de tarea adecuada, especifique este archivo JSON mediante la opción `--replication-task-settings`. Por ejemplo, el siguiente fragmento de código de la CLI especifica este archivo de configuración de Viaje en el tiempo como parte de `create-replication-task`.

   ```
   aws dms create-replication-task 
   --target-endpoint-arn arn:aws:dms:us-east-1:112233445566:endpoint:ELS5O7YTYV452CAZR2EYBNQGILFHQIFVPWFRQAY \
   --source-endpoint-arn arn:aws:dms:us-east-1:112233445566:endpoint:HNX2BWIIN5ZYFF7F6UFFZVWTDFFSMTNOV2FTXZA \
   --replication-instance-arn arn:aws:dms:us-east-1:112233445566:rep:ERLHG2UA52EEJJKFYNYWRPCG6T7EPUAB5AWBUJQ \
   --migration-type full-load-and-cdc --table-mappings 'file:///FilePath/mappings.json' \
   --replication-task-settings 'file:///FilePath/task-settings-tt-enabled.json' \
   --replication-task-identifier test-task
                               .
                               .
                               .
   ```

   Aquí, el nombre de este archivo de configuración de viajes en el tiempo es `task-settings-tt-enabled.json`.

Del mismo modo, puede especificar este archivo como parte de la acción `modify-replication-task`.

Tenga en cuenta el manejo especial de los registros de Viaje en el tiempo para las siguientes acciones de tareas:
+ `start-replication-task`: al ejecutar una tarea de replicación, si no se puede acceder a un bucket de S3 utilizado para Viaje en el tiempo, la tarea se marca como `FAILED`.
+ `stop-replication-task`— Cuando la tarea se detiene, AWS DMS envía inmediatamente todos los registros de viajes en el tiempo que están disponibles actualmente para la instancia de replicación al depósito S3 utilizado para Time Travel.

Mientras se ejecuta una tarea de replicación, puede cambiar el valor `EncryptionMode` de `"SSE_KMS"` a `"SSE_S3"`, pero no al revés.

Si el tamaño de los registros de Viaje en el tiempo de una tarea en curso supera 1 GB, DMS envía los registros a S3 a los cinco minutos de alcanzar ese tamaño. Una vez ejecutada una tarea, si no se puede acceder al bucket de S3 o a la clave de KMS, DMS deja de enviar registros a este bucket. Si descubre que sus registros no se están insertando en su bucket de S3, compruebe su S3 y sus AWS KMS permisos. Para obtener más información sobre la frecuencia con la que DMS envía estos registros a S3, consulte [¿Con qué frecuencia AWS DMS carga los registros de viajes en el tiempo a S3](CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.UploadsToS3.md).

Para activar el Viaje en el tiempo para una tarea existente desde la consola, use la opción del editor JSON en la **configuración de la tarea** para agregar una sección de `TTSettings`.

# Uso de los registros de Viaje en el tiempo
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.LogSchema"></a>

Los *archivos de registro de Viaje en el tiempo* son archivos de valores separados por comas (CSV) con los siguientes campos.

```
log_timestamp 
component 
dms_source_code_location 
transaction_id 
event_id 
event_timestamp 
lsn/scn 
primary_key
record_type 
event_type 
schema_name 
table_name 
statement 
action 
result 
raw_data
```

Una vez que los registros de Viajes en el tiempo estén disponibles en S3, podrá acceder a ellos directamente y consultarlos con herramientas como Amazon Athena. O bien, puede descargar los registros como lo haría con cualquier archivo de S3.

El siguiente ejemplo muestra un registro de Viaje en el tiempo donde se registran las transacciones de una tabla llamada `mytable`. Los finales de línea del registro siguiente se agregan para facilitar la lectura.

```
"log_timestamp ","tt_record_type","dms_source_code_location ","transaction_id",
"event_id","event_timestamp","scn_lsn","primary_key","record_type","event_type",
"schema_name","table_name","statement","action","result","raw_data"
"2021-09-23T01:03:00:778230","SOURCE_CAPTURE","postgres_endpoint_wal_engine.c:00819",
"609284109","565612992","2021-09-23 01:03:00.765321+00","00000E9C/D53AB518","","DML",
"UPDATE (3)","dmstest","mytable","","Migrate","","table dmstest.mytable:
UPDATE: id[bigint]:2244937 phone_number[character varying]:'phone-number-482'
age[integer]:82 gender[character]:'f' isactive[character]:'true ' 
date_of_travel[timestamp without time zone]:'2021-09-23 01:03:00.76593' 
description[text]:'TEST DATA TEST DATA TEST DATA TEST DATA'"
```

# ¿Con qué frecuencia AWS DMS carga los registros de viajes en el tiempo a S3
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.UploadsToS3"></a>

Para minimizar el uso de almacenamiento de la instancia de replicación, AWS DMS descarga periódicamente los registros de viajes en el tiempo de la misma. 

Los registros de Viajes en el tiempo se envían al bucket de Amazon S3 en los siguientes casos:
+ Si el tamaño actual de los registros supera 1 GB, AWS DMS carga los registros en S3 en cinco minutos. De este modo, AWS DMS puede realizar hasta 12 llamadas por hora a S3 y AWS KMS por cada tarea en ejecución.
+ AWS DMS carga los registros en S3 cada hora, independientemente del tamaño de los registros.
+ Cuando se detiene una tarea, carga AWS DMS inmediatamente los registros de viajes en el tiempo a S3.