

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Time Travel 任务设置
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel"></a>

要记录和调试复制任务，可以使用 T AWS DMS ime Travel。在此方法中，您可以使用 Amazon S3 来存储日志，并使用加密密钥对其进行加密。只有具有对您的 Time Travel S3 存储桶的访问权限，才能使用日期时间过滤器检索 S3 日志，然后根据需要查看、下载以及对日志进行模糊处理。由此，您可以安全地“回到过去”来调查数据库活动。Time Travel 的工作原理与 CloudWatch 日志记录无关。有关 CloudWatch 日志记录的更多信息，请参阅[日志记录任务设置](CHAP_Tasks.CustomizingTasks.TaskSettings.Logging.md)。

你可以在所有 AWS 区域使用支持的 Oracle、Microsoft SQL Server 和 PostgreSQL 源端点以及 AWS DMS支持的 PostgreSQL 和 MySQL 目标端点的 Time Travel。 AWS DMS只能为完全加载和更改数据捕获（CDC）任务以及仅 CDC 的任务启用 Time Travel。要打开 Time Travel 或修改任何现有的 Time Travel 设置，请确保您的复制任务已停止。

Time Travel 设置包括以下 `TTSettings` 属性：
+ `EnableTT` – 如果此选项设置为 `true`，则会为任务开启 Time Travel 日志记录。默认值为 `false`。

  类型：布尔值

  必需：否
+ `EncryptionMode` – 您的 S3 存储桶上用于存储数据和日志的服务器端加密类型。您可以指定 `"SSE_S3"`（默认值）或 `"SSE_KMS"`。

  您可以将 `EncryptionMode` 从 `"SSE_KMS"` 更改为 `"SSE_S3"`，但不能反向更改。

  类型：字符串

  必需：否
+ `ServerSideEncryptionKmsKeyId`— 如果您指定 `"SSE_KMS"``EncryptionMode`，请提供您的自定义托管 AWS KMS 密钥的 ID。确保您使用的密钥具有启用 AWS Identity and Access Management (IAM) 用户权限并允许使用该密钥的附加策略。

  `"SSE_KMS"` 选项仅支持您自己的自定义托管对称 KMS 密钥。

  类型：字符串

  必需：仅在 `EncryptionMode` 设置为 `"SSE_KMS"` 时
+ `ServiceAccessRoleArn` – 服务用于访问 IAM 角色的 Amazon 资源名称（ARN）。将角色名称设置为 `dms-tt-s3-access-role`。这是一项必需设置， AWS DMS 允许从 S3 存储桶中写入和读取对象。

  类型：字符串

  必需：如果已启用 Time Travel

  下面是该角色的策略示例。

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

------

  下面是该角色的信任策略示例。

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

****  

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

------
+ `BucketName` – 用于存储 Time Travel 日志的 S3 存储桶的名称。请务必先创建此 S3 存储桶，然后再启用 Time Travel 日志。

  类型：字符串

  必需：如果已启用 Time Travel
+ `BucketFolder` – 一个可选参数，用于在 S3 桶中设置文件夹的名称。如果您指定此参数，DMS 将在路径 `"/{{BucketName}}/{{BucketFolder}}/{{taskARN}}/{{YYYY}}/{{MM}}/{{DD}}/{{hh}}"` 中创建 Time Travel 日志。如果您未指定此参数，则 AWS DMS 会将默认路径创建为`"/{{BucketName}}/dms-time-travel-logs/{{taskARN}}/{{YYYY}}/{{MM}}/{{DD}}/{{hh}}`。

  类型：字符串

  必需：否
+ `EnableDeletingFromS3OnTaskDelete`— 当此选项设置为时`true`，如果任务已 AWS DMS 删除，则会从 S3 中删除时空旅行日志。默认值为 `false`。

  类型：字符串

  必需：否
+ `EnableRawData` – 当该选项设置为 `true` 时，Time Travel 日志的数据操作语言（DML）原始数据将显示在 Time Travel 日志的 `raw_data` 列下。有关详细信息，请参阅[使用 Time Travel 日志](CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.LogSchema.md)。默认值为 `false`。当该选项设置为 `false` 时，仅捕获 DML 的类型。

  类型：字符串

  必需：否
+ `RawDataFormat`— 在 3.5.0 及更高 AWS DMS 版本中，当设置`EnableRawData`为。`true`该属性为 Time Travel 日志中 DML 的原始数据指定了一种格式，可以表示为：
  + `"TEXT"` – CDC 期间捕获的 DML 事件的已解析、可读的列名和值作为 `Raw` 字段。
  + `"HEX"` – CDC 期间为 DML 事件捕获的列名和值的原始十六进制值。

  该属性适用于 Oracle 和 Microsoft SQL Server 数据库源。

  类型：字符串

  必需：否
+ `OperationsToLog` – 指定要登录 Time Travel 日志的 DML 操作的类型。您可以指定以下几项之一：
  + `"INSERT"`
  + `"UPDATE"`
  + `"DELETE"`
  + `"COMMIT"`
  + `"ROLLBACK"`
  + `"ALL"`

  默认值为 `"ALL"`。

  类型：字符串

  必需：否
+ `MaxRecordSize` – 指定每行记录的 Time Travel 日志记录的最大大小。使用该属性可以控制极为繁忙表格的 Time Travel 日志的增长。默认值为 64 KB。

  类型：整数

  必需：否

有关启用和使用 Time Travel 日志的更多信息，请参阅以下主题。

**Topics**
+ [为任务启用 Time Travel 日志](CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.TaskEnabling.md)
+ [使用 Time Travel 日志](CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.LogSchema.md)
+ [将时空旅行日志 AWS DMS 上传到 S3 的频率](CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.UploadsToS3.md)