

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

# `AWSSupport-TroubleshootDMSTableErrors`
<a name="awssupport-troubleshoot-dms-table-errors"></a>

 **描述** 

 AWS Systems Manager **AWSSuport-TroubleshootDMSTableErrors**自动化运行手册可帮助您自动执行数据库迁移任务或无服务器复制`Table errors`中的故障排除过程。 AWS Database Migration Service当数据库迁移任务或 AWS DMS 服务中创建的无服务器复制无法将表从源端点（源数据库）迁移到目标端点（目标数据库）时，就会发生这些错误。本运行手册分析 CloudWatch 日志中的签名错误消息，特别关注传统数据库迁移任务的任务日志和无服务器复制的无服务器日志。它还针对 AWS DMS 迁移`Table error`过程中遇到的常见错误消息提供了有针对性的建议和补救步骤。

 **如何工作？** 

 运行手册执行以下步骤：
+ 获取有关所提供的 AR AWS DMS N 的信息，该ARN可以是数据库迁移任务，也可以是无服务器复制。
+ 通过检查 DescribeReplicationTasks API（用于数据库迁移任务）和 DescribeReplications API（用于无服务器复制）响应中的`FreshStartDate`值，验证所提供的 AWS DMS 资源是否至少启动过一次。如果资源尚未启动，则自动化会引发错误。
+ 如果资源已启动，则自动化会使用`TableStatistics`信息检查处于`TableError`状态的表。如果未发现任何错误，则在显示一条确认在指定的数据库迁移任务或无服务器复制中未发现表错误的消息后，自动化将结束工作流程。
+ 如果找到带有`TableError`状态的表，则自动化会检查是否为指定 AWS DMS 资源启用了 CloudWatch 日志记录。如果未启用日志记录，则自动化会在显示一条表明未启用日志记录的消息后结束工作流程。

  **注意：**预计将启用 CloudWatch 日志记录，因为自动化依赖于这些日志来分析和识别表处于`TableError`状态的问题。
+ 如果启用了日志记录，则自动化会分析 CloudWatch 日志，并为每个处于`TableError`状态的表生成报告。该报告包括常见错误消息的建议，并提供相关的错误日志，以帮助识别和解决阻碍表从 AWS DMS 源端点成功迁移到 AWS DMS 目标端点的问题。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootDMSTableErrors) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

/

**参数**
+ AutomationAssumeRole

  类型：字符串

  描述：（可选）允许 Systems Manager Automation 代表您执行操作 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
+ DMSArn

  类型：字符串

  描述：（必填）数据库迁移任务或无服务器复制的 ARN 

  允许的模式：`^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):dms:[a-z0-9-]+:\d{12}:(task|replication-config):[a-zA-Z0-9-]+$`
+ StartTimeRange

  类型：字符串

  描述：（可选）此参数定义给定数据库迁移任务或无服务器复制的 CloudWatch 日志分析时间范围的起点。如果提供，则仅收集和分析从该特定时间起生成的日志。请注意，如果`startDate`和之间的时间范围太长，`endDate`则工作流程可能会超时。该值应以 ISO 6081 日期时间格式提供。

  允许的模式：`^$|^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})\\.(\\d{3})Z$`
+ EndTimeRange

  类型：字符串

  描述：（可选）此参数设置给定数据库迁移任务或无服务器复制的 CloudWatch 日志分析的时间范围的结束时间。如果提供，则仅收集和分析在此特定时间之前生成的日志。请注意，如果`startDate`和之间的时间范围太长，`endDate`则工作流程可能会超时。该值应以 ISO 6081 日期时间格式提供。

  允许的模式：`^$|^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})\\.(\\d{3})Z$`

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `dms:DescribeReplicationTasks`
+ `dms:DescribeReplications`
+ `dms:DescribeEndpoints`
+ `dms:DescribeReplicationConfigs`
+ `dms:DescribeTableStatistics`
+ `dms:DescribeReplicationTableStatistics`
+ `logs:FilterLogEvents`

 **自动化承担角色的 IAM policy 示例** 

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

****  

```
            {
                "Version":"2012-10-17",		 	 	 
                "Statement": [
                    {
                        "Sid": "VisualEditor0",
                        "Effect": "Allow",
                        "Action": [
                            "dms:DescribeReplicationConfigs",
                            "dms:DescribeEndpoints",
                            "dms:DescribeReplicationTableStatistics",
                            "dms:DescribeTableStatistics",
                            "logs:FilterLogEvents",
                            "dms:DescribeReplicationTasks",
                            "dms:DescribeReplications"
                        ],
                        "Resource": "*"
                    }
                ]
            }
```

------

 **说明** 

按照这些步骤对自动化进行配置：

1. [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootDMSTableErrors/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootDMSTableErrors/description)在 Systems Manager 的 “文档” 下导航至。

1. 选择 Execute automation（执行自动化）。

1. 对于输入参数，请输入以下内容：
   + **AutomationAssumeRole （可选）：**

     允许 Systems Manager Automation 代表您执行操作的 AWS AWS Identity and Access Management (IAM) 角色的亚马逊资源名称 (ARN)。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
   + **DMSArn**

     存在表错误的数据库迁移任务或无服务器复制的 ARN。
   + **StartTimeRange**

     （可选）ISO 6081 日期时间格式，定义了分析给定数据库迁移任务或无服务器复制 CloudWatch 日志的时间范围的开始时间。
   + **EndTimeRange**

     （可选）ISO 6081 日期时间格式，定义了分析给定数据库迁移任务或无服务器复制 CloudWatch 日志的时间范围的结束时间。

1. 从页面底部选择 “**执行**” 按钮。

1. 自动化启动。

1. 文档将执行以下步骤：
   + **验证 DMSInput TypeAndGatherDetails**

     验证给定的 AR AWS DMS N 输入并收集后续步骤所需的数据库迁移任务或无服务器复制的基本细节。
   + **branchOnTable错误**

     根据上述步骤中发现的表格错误数量对工作流程进行分支。如果计数大于 0，则继续执行-`branchOnCWLoggingStatus` 步骤。否则，请继续执行-`outputNoTableErrors` 步骤。
   + **outputNoTable错误**

     输出一条消息，说明在给定的数据库迁移任务或无服务器复制中未发现表错误。
   + **Branch CWLogging On 状态**

     根据上述步骤中发现的 CloudWatch 日志状态对工作流程进行分支。如果已启用，则继续执行-`gatherTableDetails` 步骤。否则，请继续执行-`outputNoCWLoggingEnabled` 步骤。
   + **OutputNo CWLogging 已启用**

     输出一条消息，说明在给定的数据库迁移任务或无服务器复制中未启用 CloudWatch 日志记录。
   + **gatherTableDetails**

     收集失败表`FullLoadEndTime`的时间戳并计算时间范围值以分析日志。 CloudWatch 
   + **analyzeCloudWatch日志**

     根据签名错误消息分析在 CloudWatch 日志组中找到的日志，并将报告返回给用户。

1. 执行完成后，请查看 “输出” 部分，了解执行的详细结果。
   + **未找到表错误的输出**

     如果在提供的数据库迁移任务或无服务器复制中未发现表错误，则自动化会显示相同的输出。
   + **输出为 “未启用 CloudWatch 登录”**

     如果在提供的数据库迁移任务或无服务器复制中未启用 CloudWatch 日志记录，则自动化会显示同样的输出并提供启用日志记录的步骤。
   + **日志分析报告**

     输出一份报告，该报告可识别所提供的数据库迁移任务或无服务器复制中`Table error`处于状态的表，区分错误类型，列出遇到的错误消息，并为每个已识别的表提供有针对性的修复步骤和建议。

 **参考** 

Systems Manager Automation
+ [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootDMSTableErrors/description)
+ [运行自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [设置自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [支持自动化工作流登录页面](https://aws.amazon.com/premiumsupport/technology/saw/)