DMS Task Full Load to Migrate Existing Data on EventBridge Scheduler Did Not Process Data?

0

I have a new Full Load DMS task and the Migration Type is set to "Migrate existing data". It has had it's first full load run successfully completed last week. The source data is rather large and it took about 17 hours to complete the full load on its first run. I created a Schedule using the EventBridge Scheduler tool to trigger this task to run each week on a regular cadence. I set the "StartReplicationTaskType" to "resume-processing" as instructed by the guide. As I understand, this type of processing picks up where the last task run left off. Yesterday, the Scheduler triggered the DMS task at the expected time, but only ran for about 1.5 minutes and didn't actually migrate any data. When I checked the CloudWatch metrics tab, there is a singular dot at the execution time yesterday but it's sitting on the line at 0 and when I hover over the dot it shows "FullLoadThroughputBandwidthTarget 0". The Table statistics tab shows the "Last updated" time for the tables to be at the time of the scheduled execution time from the Scheduler. However, when I checked the CloudWatch logs, this is the message near the end of the logs:

"No records received to load or apply on target , waiting for data from upstream (streamcomponent.c:1991)"

My question is, even if the source data has no updated rows, shouldn't the DMS task run a full load of the existing data regardless?

2 Answers
0

In your AWS DMS setup, using the resume-processing task type with EventBridge for scheduled tasks is intended for ongoing replication and not for initiating new full loads. This explains why your DMS task did not transfer any data when triggered; it was expecting to find new changes for replication but found none. To conduct weekly full data loads, adjust the EventBridge Scheduler to use the start-replication task type, which initiates a new full load each time it is triggered.

ℹ️ The resume-processing option isn't applicable for a full-load task, because you can't resume partially loaded tables during the full load phase.

🔗 For more detailed, check to API_StartReplicationTask_RequestParameters

profile picture
EXPERT
answered 9 days ago
  • In my EventBridge Schedule, I changed the param for task type to 'start-replication' in my settings like so: "StartReplicationTaskType": "start-replication" It was supposed to run last night at 7 pm US Central. The DMS task looks like there was an attempt at a run at that time according to the 'CloudWatch metrics' tab. But the data point is at the bottom of the graph and the pop-up message when I hover over the data point states: "FullLoadThroughputBandwidthTarget 0". And there are no CloudWatch logs tied to this attempt.
    Please advise.

0

Hi,

When you resume a task, the task doesn't restart, instead it resumes from the checkpoint it last stopped at.

This is done depending on the source, for example, Postgres will read from the replication slot but if the task is restarted, then the replication slot is recreated. Remember, resume won't cause another full load, it will just continue from the maintained checkpoint. [1]

If you resume the task, then only changes that were captured after the last stop point are applied to the database. If the migration task stops during the CDC phase, then AWS DMS maintains the checkpoint information for future use. You can view the task checkpoint in the Overview details tab of the AWS DMS console.

Depending on the CDCLatencyTarget [2] values, we can determine if the changes are still being applied to the target via swap files (to catch up with the source) the target may be trying to catch up with the source or reading from the swap files to do the same. We recommend checking the target latency here, if there is none and the latency matches or is similar to the CDCLatencySource values., then the delay is at the source, not the target.

FullLoadThroughputBandwidthTarget - Outgoing data transmitted from a full load for the target in KB per second.

In our case you are resuming the task "resume-processing" for CDC only, so the full load will not be performed, you can use the CDC metrics instead to verify if the changes are occurring.

If you notice no changes being made at CDC, we recommend increasing the logging severity to verify if any changes are being applied at the log level, should no changes be applied, restarting the task will perform another full load. You can also reach out to AWS support at this point to check the logs and latency.

References:

[1] Restarting and resuming a DMS task: https://repost.aws/knowledge-center/dms-restart-resume-failed-task

[2] Metrics in DMS: https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Monitoring.html

[3] How sources behave depending on resume: https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html

AWS
SUPPORT ENGINEER
answered 4 hours ago

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