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
asked 8 months ago97 views
No Answers

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions