

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configurações de tarefa do Time Travel
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel"></a>

Para registrar e depurar tarefas de replicação, você pode usar o AWS DMS Time Travel. Nessa abordagem, você utiliza o Amazon S3 para armazenar logs e criptografá-los utilizando as chaves de criptografia. Somente com acesso ao bucket do S3 do Time Travel, é possível recuperar os logs do S3 utilizando filtros de data e hora e visualizar, baixar e ofuscar os logs conforme necessário. Ao fazer isso, é possível “viajar no tempo” com segurança para investigar as atividades do banco de dados. O Time Travel funciona independentemente do CloudWatch registro. Para obter mais informações sobre CloudWatch registro em log, consulte[Configurações de registro de tarefa](CHAP_Tasks.CustomizingTasks.TaskSettings.Logging.md). 

Você pode usar o Time Travel em todas as AWS regiões com AWS DMS endpoints de origem Oracle, Microsoft SQL Server e PostgreSQL compatíveis e endpoints de destino PostgreSQL e MySQL AWS DMS compatíveis. É possível ativar o Time Travel somente para tarefas de carga máxima e captura de dados alterados (CDC) e para tarefas somente CDC. Para ativar o Time Travel ou modificar qualquer configuração existente do Time Travel, interrompa a tarefa de replicação.

As configurações do Time Travel incluem as seguintes propriedades `TTSettings`:
+ `EnableTT`: se esta opção estiver definida como`true`, o Time Travel será ativado para a tarefa. O valor padrão é `false`.

  Tipo: booliano

  Obrigatório: não
+ `EncryptionMode`: o tipo de criptografia do lado do servidor que está sendo utilizada no bucket do S3 para armazenar os dados e logs. É possível especificar `"SSE_S3"` (o padrão) ou `"SSE_KMS"`.

  É possível alterar `EncryptionMode` de `"SSE_KMS"` para`"SSE_S3"`, mas não o contrário.

  Tipo: string

  Obrigatório: não
+ `ServerSideEncryptionKmsKeyId`— Se você especificar `"SSE_KMS"` para`EncryptionMode`, forneça o ID da sua AWS KMS chave gerenciada personalizada. Certifique-se de que a chave que você usa tenha uma política anexada que ative as permissões de usuário AWS Identity and Access Management (IAM) e permita o uso da chave. 

  Somente a sua própria chave do KMS simétrica gerenciada e personalizada é compatível com a opção `"SSE_KMS"`.

  Tipo: string

  Obrigatório: somente se `EncryptionMode` for definido como `"SSE_KMS"`
+ `ServiceAccessRoleArn`: o nome do recurso da Amazon (ARN) utilizado pelo serviço para acessar o perfil do IAM. Defina o nome do usuário como `dms-tt-s3-access-role`. Essa é uma configuração obrigatória que permite AWS DMS gravar e ler objetos de um bucket do S3.

  Tipo: string

  Obrigatório: se o Time Travel estiver ativado

  Veja a seguir um exemplo de política para esse perfil.

------
#### [ 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"
              ]
          }
      ]
  }
  ```

------

  Veja a seguir um exemplo de política de confiança para esse perfil.

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

****  

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

------
+ `BucketName`: o nome do bucket do S3 para armazenar logs de Time Travel. Crie esse bucket do S3 antes de ativar os logs do Time Travel.

  Tipo: string

  Obrigatório: se o Time Travel estiver ativado
+ `BucketFolder`: um parâmetro opcional para definir um nome de pasta no bucket do S3. Se você especificar esse parâmetro, o DMS criará os logs do Time Travel no caminho `"/BucketName/BucketFolder/taskARN/YYYY/MM/DD/hh"`. Se você não especificar esse parâmetro, AWS DMS cria o caminho padrão como`"/BucketName/dms-time-travel-logs/taskARN/YYYY/MM/DD/hh`.

  Tipo: string

  Obrigatório: não
+ `EnableDeletingFromS3OnTaskDelete`— Quando essa opção está definida como`true`, AWS DMS exclui os registros de viagem no tempo do S3 se a tarefa for excluída. O valor padrão é `false`.

  Tipo: string

  Obrigatório: não
+ `EnableRawData`: quando esta opção está definida como `true`, os dados brutos da linguagem de manipulação de dados (DML) dos logs do Time Travel aparecem sob a coluna `raw_data` dos logs do Time Travel. Para obter detalhes, consulte [Utilizar os logs do Time Travel](CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.LogSchema.md). O valor padrão é `false`. Quando esta opção é definida como `false`, somente o tipo de DML é capturado.

  Tipo: string

  Obrigatório: não
+ `RawDataFormat`— Nas AWS DMS versões 3.5.0 e superiores, quando `EnableRawData` está definido como. `true` Essa propriedade especifica um formato para os dados brutos da DML em um log do Time Travel e pode ser apresentada como:
  + `"TEXT"`: nomes e valores de colunas analisados e legíveis para eventos da DML capturados durante a CDC como campos `Raw`.
  + `"HEX"`: o hexadecimal original para nomes de colunas e valores capturados para eventos da DML durante a CDC.

  Essa propriedade se aplica às origens de bancos de dados Oracle e Microsoft SQL Server.

  Tipo: string

  Obrigatório: não
+ `OperationsToLog`: especifica o tipo de operação da DML a ser registrado em log nos logs do Time Travel. É possível especificar um dos seguintes:
  + `"INSERT"`
  + `"UPDATE"`
  + `"DELETE"`
  + `"COMMIT"`
  + `"ROLLBACK"`
  + `"ALL"`

  O padrão é `"ALL"`.

  Tipo: string

  Obrigatório: não
+ `MaxRecordSize`: especifica o tamanho máximo dos registros de log do Time Travel que são registrados em log para cada linha. Utilize essa propriedade para controlar o crescimento dos logs do Time Travel em tabelas especialmente ocupadas. O padrão é 64 KB.

  Tipo: inteiro

  Obrigatório: não

Para obter mais informações sobre como ativar e utilizar os logs do Time Travel, consulte os tópicos a seguir.

**Topics**
+ [Ativar os logs do Time Travel para uma tarefa](CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.TaskEnabling.md)
+ [Utilizar os logs do Time Travel](CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.LogSchema.md)
+ [Com que frequência AWS DMS carrega registros de viagem no tempo para o S3](CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.UploadsToS3.md)

# Ativar os logs do Time Travel para uma tarefa
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.TaskEnabling"></a>

Você pode ativar a Viagem no Tempo para uma AWS DMS tarefa usando as configurações de tarefa descritas anteriormente. Verifique se a tarefa de replicação é interrompida antes de ativar o Time Travel.

**Para ativar a Viagem no Tempo usando o AWS CLI**

1. Crie um arquivo JSON de configuração de tarefas do DMS e adicione uma seção `TTSettings` como a seguinte. Para obter informações sobre como utilizar um arquivo de configuração de tarefas para definir as configurações de tarefas, consulte [Exemplo de configurações de tarefas](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. Em uma ação de tarefa apropriada, especifique esse arquivo JSON utilizando a opção `--replication-task-settings`. Por exemplo, o fragmento de código da CLI a seguir especifica esse arquivo de configurações de Time Travel 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
                               .
                               .
                               .
   ```

   Aqui, o nome desse arquivo de configurações do Time Travel é `task-settings-tt-enabled.json`.

De forma semelhante, é possível especificar esse arquivo como parte da ação `modify-replication-task`.

Observe o tratamento especial dos logs do Time Travel para as seguintes ações de tarefas:
+ `start-replication-task`: ao executar uma tarefa de replicação, se um bucket do S3 utilizado pelo Time Travel não estiver acessível, a tarefa será marcada como `FAILED`.
+ `stop-replication-task`— Quando a tarefa é interrompida, envia AWS DMS imediatamente todos os registros de viagem no tempo que estão atualmente disponíveis para a instância de replicação para o bucket do S3 usado para viagem no tempo.

Enquanto uma tarefa de replicação é executada, é possível alterar o valor de `EncryptionMode` de `"SSE_KMS"` para `"SSE_S3"`, mas não o contrário.

Se o tamanho dos logs do Time Travel de uma tarefa em andamento exceder 1 GB, o DMS enviará os logs para o S3 em cinco minutos após atingir esse tamanho. Depois que uma tarefa estiver em execução, se o bucket do S3 ou a chave do KMS ficarem inacessíveis, o DMS deixará de enviar logs para esse bucket. Se você achar que seus registros não estão sendo enviados para o bucket do S3, verifique o S3 e AWS KMS as permissões. Para obter mais detalhes sobre a frequência com que o DMS envia esses logs para o S3, consulte [Com que frequência AWS DMS carrega registros de viagem no tempo para o S3](CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.UploadsToS3.md).

Para ativar o Time Travel para uma tarefa existente no console, utilize a opção do editor JSON em **Configurações de tarefa** para adicionar uma seção `TTSettings`.

# Utilizar os logs do Time Travel
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.LogSchema"></a>

Os *Arquivos de log do Time Travel* são arquivos de valores separados por vírgulas (CSV) com os campos a seguir.

```
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
```

Depois que os logs do Time Travel estiverem disponíveis no S3, é possível acessá-los e consultá-los diretamente com ferramentas, como o Amazon Athena. Ou é possível baixar os logs da mesma forma utilizada com qualquer arquivo do S3.

O exemplo a seguir mostra um log do Time Travel em que as transações de uma tabela chamada `mytable` são registradas em log. As terminações de linha do log a seguir foram adicionadas para facilitar a leitura.

```
"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'"
```

# Com que frequência AWS DMS carrega registros de viagem no tempo para o S3
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.UploadsToS3"></a>

Para minimizar o uso do armazenamento de sua instância de replicação, AWS DMS descarregue periodicamente os registros de viagem no tempo dela. 

Os logs do Time Travel são enviados para o bucket do Amazon S3 nos seguintes casos:
+ Se o tamanho atual dos registros exceder 1 GB, AWS DMS faça o upload dos registros para o S3 em cinco minutos. Assim, AWS DMS pode fazer até 12 chamadas por hora para o S3 e AWS KMS para cada tarefa em execução.
+ AWS DMS carrega os registros para o S3 a cada hora, independentemente do tamanho dos registros.
+ Quando uma tarefa é interrompida, carrega AWS DMS imediatamente os registros de viagem no tempo para o S3.