

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Paramètres de tâche de voyage dans le temps
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel"></a>

Pour enregistrer et déboguer les tâches de réplication, vous pouvez utiliser AWS DMS Time Travel. Dans cette approche, vous utilisez Amazon S3 pour stocker les journaux et les chiffrer à l’aide de vos clés de chiffrement. Ce n’est qu’en accédant à votre compartiment S3 de voyage dans le temps que vous pouvez récupérer vos journaux S3 à l’aide de filtres de date et d’heure, puis afficher, télécharger et masquer les journaux selon vos besoins. Ce faisant, vous pouvez « voyager dans le temps » en toute sécurité pour examiner les activités de base de données. Time Travel fonctionne indépendamment de la CloudWatch journalisation. Pour plus d'informations sur la CloudWatch journalisation, consultez[Paramètres de la tâche de journalisation](CHAP_Tasks.CustomizingTasks.TaskSettings.Logging.md). 

Vous pouvez utiliser Time Travel dans toutes les AWS régions avec des points de terminaison sources AWS DMS compatibles avec Oracle, Microsoft SQL Server et PostgreSQL, et des points de terminaison cibles PostgreSQL et MySQL AWS DMS pris en charge. Vous pouvez activer le voyage dans le temps uniquement pour les tâches de chargement complet et de capture des données de modification (CDC) et pour les tâches de CDC uniquement. Pour activer le voyage dans le temps ou pour modifier des paramètres de voyage dans le temps existants, assurez-vous que votre tâche de réplication est arrêtée.

Les paramètres de voyage dans le temps incluent les propriétés `TTSettings` suivantes :
+ `EnableTT` : si cette option est définie sur `true`, la journalisation de voyage dans le temps est activée pour la tâche. La valeur par défaut est `false`.

  Type : booléen

  Obligatoire : non
+ `EncryptionMode` : type de chiffrement côté serveur actuellement utilisé sur votre compartiment S3 pour stocker vos données et vos journaux. Vous pouvez spécifier `"SSE_S3"` (par défaut) ou `"SSE_KMS"`.

  Vous pouvez redéfinir `EncryptionMode` de `"SSE_KMS"` à `"SSE_S3"`, mais pas l’inverse.

  Type : chaîne

  Obligatoire : non
+ `ServerSideEncryptionKmsKeyId`— Si vous le spécifiez `"SSE_KMS"` pour`EncryptionMode`, fournissez l'ID de votre AWS KMS clé gérée personnalisée. Assurez-vous que la clé que vous utilisez est associée à une politique qui active les autorisations utilisateur Gestion des identités et des accès AWS (IAM) et autorise l'utilisation de la clé. 

  Seule votre propre clé KMS symétrique gérée personnalisée est prise en charge avec l’option `"SSE_KMS"`.

  Type : Chaîne

  Obligatoire uniquement si vous définissez `EncryptionMode` sur `"SSE_KMS"`
+ `ServiceAccessRoleArn` : Amazon Resource Name (ARN) utilisé par le service pour accéder au rôle IAM. Définissez le nom du rôle sur `dms-tt-s3-access-role`. Il s'agit d'un paramètre obligatoire qui permet d' AWS DMS écrire et de lire des objets à partir d'un compartiment S3.

  Type : Chaîne

  Obligatoire si le voyage dans le temps est activé

  Voici un exemple de politique pour ce rôle.

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

------

  Voici un exemple de politique d’approbation pour ce rôle.

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

****  

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

------
+ `BucketName` : nom du compartiment S3 dans lequel stocker les journaux de voyage dans le temps. Assurez-vous de créer ce compartiment S3 avant d’activer les journaux de voyage dans le temps.

  Type : Chaîne

  Obligatoire si le voyage dans le temps est activé
+ `BucketFolder` : paramètre facultatif pour définir le nom d’un dossier dans le compartiment S3. Si vous spécifiez ce paramètre, DMS crée les journaux de voyage dans le temps dans le chemin `"/BucketName/BucketFolder/taskARN/YYYY/MM/DD/hh"`. Si vous ne spécifiez pas ce paramètre, AWS DMS crée le chemin par défaut sous la forme`"/BucketName/dms-time-travel-logs/taskARN/YYYY/MM/DD/hh`.

  Type : chaîne

  Obligatoire : non
+ `EnableDeletingFromS3OnTaskDelete`— Lorsque cette option est définie sur`true`, AWS DMS supprime les journaux de voyage dans le temps de S3 si la tâche est supprimée. La valeur par défaut est `false`.

  Type : chaîne

  Obligatoire : non
+ `EnableRawData` : lorsque cette option est définie sur `true`, les données brutes DML pour les journaux de voyage dans le temps apparaissent sous la colonne `raw_data` des journaux de voyage dans le temps. Pour obtenir des détails, consultez [Utilisation des journaux de voyage dans le temps](CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.LogSchema.md). La valeur par défaut est `false`. Lorsque cette option est définie sur `false`, seul le type de DML est capturé.

  Type : chaîne

  Obligatoire : non
+ `RawDataFormat`— Dans AWS DMS les versions 3.5.0 et supérieures, quand `EnableRawData` est défini sur. `true` Cette propriété spécifie un format pour les données brutes du DML dans un journal de voyage dans le temps. Elle peut se présenter comme suit :
  + `"TEXT"` : noms de colonnes et valeurs lisibles et analysés pour les événements DML capturés pendant la CDC sous forme de champs `Raw`.
  + `"HEX"` : valeur hexadécimale d’origine pour les noms de colonnes et les valeurs capturés pour les événements DML pendant la CDC.

  Cette propriété s’applique aux sources de base de données Oracle et Microsoft SQL Server.

  Type : chaîne

  Obligatoire : non
+ `OperationsToLog` : spécifie le type d’opérations DML pour journaliser les journaux de voyage dans le temps. Vous pouvez spécifier l'une des options suivantes :
  + `"INSERT"`
  + `"UPDATE"`
  + `"DELETE"`
  + `"COMMIT"`
  + `"ROLLBACK"`
  + `"ALL"`

  La valeur par défaut est `"ALL"`.

  Type : chaîne

  Obligatoire : non
+ `MaxRecordSize` : spécifie la taille maximale des enregistrements de journalisation de voyage dans le temps consignés pour chaque ligne. Utilisez cette propriété pour contrôler la croissance des journaux de voyage dans le temps pour les tables particulièrement chargées. La valeur par défaut est de 64 Ko.

  Type : Integer

  Obligatoire : non

Pour plus d’informations sur l’activation et l’utilisation des journaux de voyage dans le temps, consultez les rubriques suivantes.

**Topics**
+ [Activation des journaux de voyage dans le temps pour une tâche](CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.TaskEnabling.md)
+ [Utilisation des journaux de voyage dans le temps](CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.LogSchema.md)
+ [À quelle fréquence les journaux de voyage AWS DMS dans le temps sont-ils téléchargés sur S3](CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.UploadsToS3.md)

# Activation des journaux de voyage dans le temps pour une tâche
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.TaskEnabling"></a>

Vous pouvez activer Time Travel pour une AWS DMS tâche à l'aide des paramètres de tâche décrits précédemment. Assurez-vous que votre tâche de réplication est arrêtée avant d’activer le voyage dans le temps.

**Pour activer le voyage dans le temps à l'aide du AWS CLI**

1. Créez un fichier JSON de configuration de tâche DMS et ajoutez la section `TTSettings` suivante. Pour en savoir plus sur l’utilisation d’un fichier de configuration de tâche pour définir les paramètres d’une tâche, consultez [Exemple de paramètres de tâche](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. Dans une action de tâche appropriée, spécifiez ce fichier JSON à l’aide de l’option `--replication-task-settings`. Par exemple, le fragment de code CLI suivant spécifie ce fichier de paramètres de voyage dans le temps comme faisant partie 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
                               .
                               .
                               .
   ```

   Ici, le nom de ce fichier de paramètres de voyage dans le temps est `task-settings-tt-enabled.json`.

De même, vous pouvez spécifier ce fichier comme faisant partie de l’action `modify-replication-task`.

Notez le traitement spécial des journaux de voyage dans le temps pour les actions de tâche suivantes :
+ `start-replication-task` : lorsque vous exécutez une tâche de réplication, si un compartiment S3 utilisé pour le voyage dans le temps n’est pas accessible, la tâche est marquée comme `FAILED`.
+ `stop-replication-task`— Lorsque la tâche s'arrête, AWS DMS envoie immédiatement tous les journaux de voyage dans le temps actuellement disponibles pour l'instance de réplication vers le compartiment S3 utilisé pour Time Travel.

Pendant l’exécution d’une tâche de réplication, vous pouvez modifier la valeur `EncryptionMode` de `"SSE_KMS"` à `"SSE_S3"`, mais pas l’inverse.

Si la taille des journaux de voyage dans le temps pour une tâche continue dépasse 1 Go, DMS transfère les journaux vers S3 dans un délai de cinq minutes après avoir atteint cette taille. Après l’exécution d’une tâche, si le compartiment S3 ou la clé KMS devient inaccessible, DMS arrête de transférer les journaux vers ce compartiment. Si vous constatez que vos journaux ne sont pas transférés vers votre compartiment S3, vérifiez votre S3 et vos AWS KMS autorisations. Pour plus de détails sur la fréquence à laquelle DMS transfère ces journaux vers S3, consultez [À quelle fréquence les journaux de voyage AWS DMS dans le temps sont-ils téléchargés sur S3](CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.UploadsToS3.md).

Pour activer le voyage dans le temps pour une tâche existante à partir de la console, utilisez l’option de l’éditeur JSON sous **Paramètres de tâche** pour ajouter une section `TTSettings`.

# Utilisation des journaux de voyage dans le temps
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.LogSchema"></a>

Les *fichiers journaux de voyage dans le temps* sont des fichiers CSV (valeurs séparées par des virgules) comportant les champs suivants.

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

Une fois que vos journaux de voyage dans le temps sont disponibles dans S3, vous pouvez y accéder directement et les interroger à l’aide d’outils tels qu’Amazon Athena. Vous pouvez également télécharger les journaux comme n’importe quel fichier à partir de S3.

L’exemple suivant illustre un journal de voyage dans le temps dans lequel les transactions d’une table appelée `mytable` sont journalisées. Les fins de ligne du journal suivant ont été ajoutées pour plus de lisibilité.

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

# À quelle fréquence les journaux de voyage AWS DMS dans le temps sont-ils téléchargés sur S3
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.UploadsToS3"></a>

Pour minimiser l'utilisation du stockage par votre instance de réplication, AWS DMS déchargez régulièrement les journaux Time Travel de cette instance. 

Les journaux de voyage dans le temps sont transférés vers votre compartiment Amazon S3 dans les cas suivants :
+ Si la taille actuelle des journaux dépasse 1 Go, AWS DMS télécharge les journaux vers S3 dans les cinq minutes. Ainsi, AWS DMS vous pouvez effectuer jusqu'à 12 appels par heure à S3 et AWS KMS pour chaque tâche en cours d'exécution.
+ AWS DMS télécharge les journaux sur S3 toutes les heures, quelle que soit leur taille.
+ Lorsqu'une tâche est arrêtée, télécharge AWS DMS immédiatement les journaux de voyage dans le temps vers S3.