DMS Aurora CDC to Redshift Serverless - "Failed to apply", suspends table

0

Our source database is Aurora MySQL (5.7.mysql_aurora.2.11.2) and our target is Redshift Serverless. I've set it for "full load and ongoing". After full load, it runs fine for awhile but eventually it says "Running with errors" and some tables are now suspended. In the logs, we'll see things like this:

2023-09-18T20:14:21 [TARGET_APPLY ]E: 0 rows affected, ODBC return code: 100 [1022510] (cloud_bulk.c:760)
2023-09-18T20:14:21 [TARGET_APPLY ]I: cloud_thread_parallel_net_changes_ops_handler: Failed to apply DELETE (5) for table 632 (cloud_bulk_apply_parallel_net_changes.c:199)

Sometimes it's "Failed to apply UPDATE" and the number in parentheses is different.

We occasionally have problems with Aurora slave replication errors on Aurora read replicas with similar issues. It appears to be trying to update or delete a row that doesn't exist (there was no insert in the CDC/binlog?). In Aurora we have configured it to ignore these replication errors (using mysql.rds_skip_repl_error) but I don't see any way to do this with DMS. The TableErrorPolicy task setting seems to govern whether the task continues running (with errors) or stops. I don't see any way to have it skip a table error like this. I've tried changing the various policies mentioned in the Error Handling section of Task Settings in the docs but nothing seems to change its behavior except TableErrorPolicy.

There's nothing in sys_load_error_detail or awsdms_apply_exceptions in Redshift. awsdms_suspended_tables will show the table(s) as suspended with suspend_reason = TABLE ERROR.

Questions:

  1. Is there a way to stop Aurora from sending out UPDATE and DELETE binlog statements for rows that don't exist? Why does this happen in the first place?
  2. Is there a way to configure DMS to ignore/skip these errors like we can in Aurora?
cmyers
已提问 8 个月前101 查看次数
没有答案

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则