Terraform创建DMS复制任务失败,CloudWatch日志无明确报错
AWS DMS复制任务启动失败排查方案
从提供的日志来看,任务在源端点初始化完成后直接进入资源释放流程,未执行实际的数据加载或捕获操作,仅抛出模糊的致命错误。结合映射规则和任务配置,以下是具体排查方向:
1. 源/目标端点权限与元数据验证
- 源MySQL用户需具备
SELECT(针对ti-lv.application表)、REPLICATION SLAVE、REPLICATION CLIENT权限,同时能执行SHOW DATABASES、DESCRIBE ti-lv.application等元数据查询操作 - 目标端点用户需具备
CREATE TABLE、DROP TABLE权限(因任务配置为DROP_AND_CREATE),若目标是RDS,需确认IAM角色或直接用户权限覆盖目标库的DDL操作 - 手动测试端点连接:在DMS控制台触发源/目标端点的连接测试,确保连接成功;用端点账号登录源库执行
SELECT * FROM ti-lv.application LIMIT 1,登录目标库执行CREATE TABLE test(id INT); DROP TABLE test验证权限
2. 映射规则准确性校验
- 确认源库中存在
ti-lv数据库(MySQL中schema对应database),名称完全匹配(注意部分数据库大小写敏感) - 确认
ti-lv库下存在application表,无拼写错误
3. 调整日志级别获取详细错误信息
当前日志中TABLES_MANAGER和TARGET_LOAD组件为默认级别,无法输出元数据读取或目标写入的详细错误。修改任务配置的Logging.LogComponents,将这两个组件的日志级别改为LOGGER_SEVERITY_DEBUG:
{ "Id": "TABLES_MANAGER", "Severity": "LOGGER_SEVERITY_DEBUG" }, { "Id": "TARGET_LOAD", "Severity": "LOGGER_SEVERITY_DEBUG" }
重启任务后查看CloudWatch日志,定位具体错误点
4. 任务配置参数修正
TargetMetadata.TargetSchema为空:若目标是PostgreSQL、SQL Server等需要指定schema的数据库,必须填写正确的目标schema名称;若为MySQL,需确认端点用户的默认数据库与预期一致ErrorBehavior.FailOnNoTablesCaptured: false:该配置会导致任务在未匹配到源表时不报错,需确认源表确实存在且符合映射规则
原始问题信息
CloudWatch日志片段
2024-05-24T07:42:20.000Z 2024-05-24T07:42:20 [SOURCE_CAPTURE ]D: 51) name: 'varchar', SQLType: 12, create params: 'length', unsigned: '-1', iFixedPrecScale: '0', iColumnSize: '255', iMinimumScale '0', iMaximumScale: '0' (ar_odbc_conn.c:1371) 2024-05-24T07:42:20.000Z 2024-05-24T07:42:20 [SOURCE_CAPTURE ]D: Exit ODBC Provider supported data types (ar_odbc_conn.c:1391) 2024-05-24T07:42:20.000Z 2024-05-24T07:42:20 [SOURCE_CAPTURE ]I: Source endpoint 'Mysql' is using provider syntax 'MySQL' (provider_syntax_manager.c:894) 2024-05-24T07:42:20.000Z 2024-05-24T07:42:20 [SOURCE_CAPTURE ]I: Mysql endpoint initialization finished for the stream component (mysql_endpoint_imp.c:808) 2024-05-24T07:42:20.000Z 2024-05-24T07:42:20 [SOURCE_CAPTURE ]D: Entering 'mysql_endpoint_free_imp' (mysql_endpoint_imp.c:879) 2024-05-24T07:42:20.000Z 2024-05-24T07:42:20 [SORTER ]I: Sorter inspect target state (sorter.c:519) 2024-05-24T07:42:20.000Z 2024-05-24T07:42:20 [SORTER ]I: Target state checkpoint source id: 0 (sorter.c:524) 2024-05-24T07:42:20.000Z 2024-05-24T07:42:20 [SORTER ]I: 'Stop reading when memory limit reached' is set to true (sorter.c:688) 2024-05-24T07:42:20.000Z 2024-05-24T07:42:20 [SOURCE_CAPTURE ]D: Leaving 'mysql_endpoint_free_imp' (mysql_endpoint_imp.c:896) 2024-05-24T07:42:20.000Z 2024-05-24T07:42:20 [TARGET_APPLY ]D: Entering 'odbc_endpoint_free_imp' (odbc_endpoint_imp.c:4045) 2024-05-24T07:42:20.000Z 2024-05-24T07:42:20 [TASK_MANAGER ]I: Subtask #0 ended (replicationtask_util.c:595) 2024-05-24T07:42:20.000Z 2024-05-24T07:42:20 [TASK_MANAGER ]I: Task - 222222222222222EEEE is in ERROR state, updating starting status to AR_NOT_APPLICABLE (repository.c:5483) 2024-05-24T07:42:20.000Z 2024-05-24T07:42:20 [TASK_MANAGER ]E: Task '222222222222222EEEEE' encountered a fatal error (repository.c:5580) 2024-05-24T07:42:29.000Z 2024-05-24T07:42:29 [TASK_MANAGER ]I: Task management thread terminated (replicationtask.c:4538) 2024-05-24T07:42:31.000Z 2024-05-24T07:42:31 [AT_GLOBAL ]I: Closing log file at Fri May 24 07:42:31 2024 (at_logger.c:2975)
复制任务映射规则
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "ti-lv", "table-name": "application" }, "rule-action": "include" } ] }
复制任务设置配置
{ "TargetMetadata": { "TargetSchema": "", "SupportLobs": true, "FullLobMode": false, "LobChunkSize": 0, "LimitedSizeLobMode": true, "LobMaxSize": 512, "InlineLobMaxSize": 0, "LoadMaxFileSize": 0, "ParallelLoadThreads": 0, "ParallelLoadBufferSize": 0, "BatchApplyEnabled": false, "TaskRecoveryTableEnabled": false, "ParallelLoadQueuesPerThread": 0, "ParallelApplyThreads": 0, "ParallelApplyBufferSize": 0, "ParallelApplyQueuesPerThread": 0 }, "FullLoadSettings": { "TargetTablePrepMode": "DROP_AND_CREATE", "CreatePkAfterFullLoad": false, "StopTaskCachedChangesApplied": false, "StopTaskCachedChangesNotApplied": false, "MaxFullLoadSubTasks": 2, "TransactionConsistencyTimeout": 1200, "CommitRate": 20000 }, "Logging": { "EnableLogging": true, "EnableLogContext": false, "LogComponents": [ { "Id": "TRANSFORMATION", "Severity": "LOGGER_SEVERITY_DEFAULT" }, { "Id": "SOURCE_UNLOAD", "Severity": "LOGGER_SEVERITY_DEBUG" }, { "Id": "IO", "Severity": "LOGGER_SEVERITY_DEFAULT" }, { "Id": "TARGET_LOAD", "Severity": "LOGGER_SEVERITY_DEFAULT" }, { "Id": "PERFORMANCE", "Severity": "LOGGER_SEVERITY_DEFAULT" }, { "Id": "SOURCE_CAPTURE", "Severity": "LOGGER_SEVERITY_DEBUG" }, { "Id": "SORTER", "Severity": "LOGGER_SEVERITY_DEFAULT" }, { "Id": "REST_SERVER", "Severity": "LOGGER_SEVERITY_DEFAULT" }, { "Id": "VALIDATOR_EXT", "Severity": "LOGGER_SEVERITY_DEFAULT" }, { "Id": "TARGET_APPLY", "Severity": "LOGGER_SEVERITY_DEBUG" }, { "Id": "TASK_MANAGER", "Severity": "LOGGER_SEVERITY_DEFAULT" }, { "Id": "TABLES_MANAGER", "Severity": "LOGGER_SEVERITY_DEFAULT" }, { "Id": "METADATA_MANAGER", "Severity": "LOGGER_SEVERITY_DEFAULT" }, { "Id": "FILE_FACTORY", "Severity": "LOGGER_SEVERITY_DEFAULT" }, { "Id": "COMMON", "Severity": "LOGGER_SEVERITY_DEFAULT" }, { "Id": "ADDONS", "Severity": "LOGGER_SEVERITY_DEFAULT" }, { "Id": "DATA_STRUCTURE", "Severity": "LOGGER_SEVERITY_DEFAULT" }, { "Id": "COMMUNICATION", "Severity": "LOGGER_SEVERITY_DEFAULT" }, { "Id": "FILE_TRANSFER", "Severity": "LOGGER_SEVERITY_DEFAULT" } ] }, "ControlTablesSettings": { "FullLoadExceptionTableEnabled": false, "ControlSchema": "dms", "HistoryTimeslotInMinutes": 5, "HistoryTableEnabled": true, "SuspendedTablesTableEnabled": true, "StatusTableEnabled": true }, "StreamBufferSettings": { "StreamBufferCount": 3, "StreamBufferSizeInMB": 8, "CtrlStreamBufferSizeInMB": 5 }, "ChangeProcessingDdlHandlingPolicy": { "HandleSourceTableDropped": true, "HandleSourceTableTruncated": true, "HandleSourceTableAltered": true }, "ErrorBehavior": { "EventErrorPolicy": "IGNORE", "DataErrorPolicy": "LOG_ERROR", "DataTruncationErrorPolicy": "LOG_ERROR", "DataErrorEscalationPolicy": "SUSPEND_TABLE", "DataErrorEscalationCount": 0, "TableErrorPolicy": "SUSPEND_TABLE", "TableErrorEscalationPolicy": "STOP_TASK", "TableErrorEscalationCount": 0, "RecoverableErrorCount": -1, "RecoverableErrorInterval": 5, "RecoverableErrorThrottling": true, "RecoverableErrorThrottlingMax": 1800, "RecoverableErrorStopRetryAfterThrottlingMax": true, "ApplyErrorDeletePolicy": "IGNORE_RECORD", "ApplyErrorInsertPolicy": "LOG_ERROR", "ApplyErrorUpdatePolicy": "LOG_ERROR", "ApplyErrorEscalationPolicy": "LOG_ERROR", "ApplyErrorEscalationCount": 0, "ApplyErrorFailOnTruncationDdl": false, "FullLoadIgnoreConflicts": true, "FailOnTransactionConsistencyBreached": false, "FailOnNoTablesCaptured": false }, "FailTaskWhenCleanTaskResourceFailed": false, "TTSettings": { "EnableTT": false, "TTRecordSettings": null, "TTS3Settings": null }, "ChangeProcessingTuning": { "BatchApplyPreserveTransaction": true, "BatchApplyTimeoutMin": 1, "BatchApplyTimeoutMax": 30, "BatchApplyMemoryLimit": 500, "BatchSplitSize": 0, "MinTransactionSize": 1000, "CommitTimeout": 1, "MemoryLimitTotal": 1024, "MemoryKeepTime": 60, "StatementCacheSize": 50 }, "PostProcessingRules": null, "CharacterSetSettings": null, "LoopbackPreventionSettings": null, "BeforeImageSettings": null }
内容的提问来源于stack exchange,提问作者x89
相关产品推荐
相关产品推荐

