

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

 **Description** 

 AWS Systems Manager **AWSSuport-TroubleshootDMSTableErrors** 自動化 Runbook 可協助您自動化在資料庫遷移任務或無伺服器複寫`Table errors`中找到的 疑難排解程序 AWS Database Migration Service。當資料庫遷移任務或在 AWS DMS 服務中建立的無伺服器複寫無法從來源端點 （來源資料庫） 遷移到目標端點 （目標資料庫） 時，就會發生這些錯誤。此 Runbook 會分析 CloudWatch 日誌的簽章錯誤訊息，特別是專注於傳統資料庫遷移任務的任務日誌，以及無伺服器複寫的無伺服器日誌。它也針對 AWS DMS 遷移`Table error`期間遇到的常見錯誤訊息，提供有針對性的建議和修復步驟。

 **如何運作？** 

 Runbook 會執行下列步驟：
+ 擷取所提供 AWS DMS 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 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ 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` 參數需要下列動作才能成功使用 Runbook。
+ `dms:DescribeReplicationTasks`
+ `dms:DescribeReplications`
+ `dms:DescribeEndpoints`
+ `dms:DescribeReplicationConfigs`
+ `dms:DescribeTableStatistics`
+ `dms:DescribeReplicationTableStatistics`
+ `logs:FilterLogEvents`

 **自動化擔任角色的 IAM 政策範例** 

------
#### [ 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. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootDMSTableErrors/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootDMSTableErrors/description)中導覽至 。

1. 選擇 Execute automation (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**

     (IAM) 角色的 Amazon Resource Name AWS AWS Identity and Access Management (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **DMSArn**

     資料庫遷移任務的 ARN 或具有資料表錯誤的無伺服器複寫。
   + **StartTimeRange**

     （選用） ISO 6081 日期時間格式，定義用於分析指定資料庫遷移任務或無伺服器複寫之 CloudWatch 日誌的時間範圍開始。
   + **EndTimeRange**

     （選用） ISO 6081 日期時間格式，定義用於分析指定資料庫遷移任務或無伺服器複寫之 CloudWatch 日誌的時間範圍結束。

1. 從頁面底部選取**執行**按鈕。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **validateDMSInputTypeAndGatherDetails**

     驗證指定的 AWS DMS ARN 輸入，並收集後續步驟中所需的資料庫遷移任務或無伺服器複寫的基本詳細資訊。
   + **branchOnTableErrors**

     根據在上述步驟中找到的資料表錯誤數目，將工作流程分支。如果計數大於 0，則繼續 - `branchOnCWLoggingStatus` 步驟。否則，請繼續 - `outputNoTableErrors` 步驟。
   + **outputNoTableErrors**

     輸出訊息，指出指定的資料庫遷移任務或無伺服器複寫中找不到資料表錯誤。
   + **branchOnCWLoggingStatus**

     根據在上述步驟中找到的 CloudWatch 記錄狀態來配置工作流程。如果啟用，則繼續 - `gatherTableDetails` 步驟。否則，請繼續 - `outputNoCWLoggingEnabled` 步驟。
   + **outputNoCWLoggingEnabled**

     輸出訊息，指出指定的資料庫遷移任務或無伺服器複寫中未啟用 CloudWatch 記錄。
   + **gatherTableDetails**

     收集失敗資料表的`FullLoadEndTime`時間戳記，並計算時間範圍值以分析 CloudWatch 日誌。
   + **analyzeCloudWatchLogs**

     根據簽章錯誤訊息分析 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/)