实现一种自动化方法来处理AWS DMS操

自动化处理AWS DMS操作事件的方案

关键要点

在本篇文章中,我们探讨了如何使用AWS Lambda和Amazon EventBridge自动恢复AWSDMS(数据库迁移服务)中的可恢复错误任务。通过设置EventBridge规则来捕捉特定事件ID,可以调用Lambda函数分析和处理这些错误,进而避免手动干预,并提供更顺畅的迁移体验。


AWS数据库迁移服务(AWSDMS)帮助用户解决迁移同构和异构数据库引擎的复杂任务。随着业务的发展,企业需要采用最适合自己独特需求的数据库引擎,这往往导致各种数据库系统的共存,进而在无缝数据迁移方面带来挑战。然而,借助AWSDMS,客户找到了高效可靠的解决方案来弥合不同数据库引擎之间的差距。

AWSDMS允许无缝迁移和复制数据库,但在此过程中有时可能会出现错误。当这些错误是可恢复的时,了解如何有效地恢复并完成任务至关重要,以确保数据完整性并尽量减少停机时间。在本文中,我们将探讨如何恢复针对关系数据库的可恢复错误任务的过程。

概述

涵盖多种事件,包括启动、暂停、完成、全量加载完成、CDC(变更数据捕获)启动、错误等。这些事件在监控和管理数据库迁移任务中发挥了至关重要的作用。每个事件都有唯一的事件ID,以代表迁移过程中发生的特定事件。其中,00780079尤其重要,因为它们被用于无缝恢复任务。

  • DMS-EVENT-0078表示复制任务失败。
  • DMS-EVENT-0079表示复制任务已停止。

您可以在中找到有关AWSDMS生成的事件类别和事件消息的更多信息。

当DMS生成事件时,会将其发送到默认总线。在此解决方案中,我们将在默认总线上创建EventBridge规则,以匹配传入的可恢复事件并将其发送到目标进行处理。我们将使用处理这些事件,并重启失败或停止的任务。

通过这种架构,解决方案将自动恢复可恢复的任务。

删除)

前提条件

在本教程中,您需要完成以下前提条件:

  • 您必须有一个活跃的AWS账户,作为您所有云活动的基础。
  • 配置好虚拟私有云(VPC),因为AWS DMS在这个隔离的网络环境中操作,以确保安全的数据传输。
  • 对DMS概念和功能的基本理解将极大地提升您使用该服务的体验。
  • 对AWS Lambda的基本了解,该服务允许您根据事件运行代码,进而执行必要的停止或恢复任务命令,而无需管理服务器。

部署

在本节中,我们将带您了解如何部署此解决方案。要启动提供的CloudFormation模板,请执行以下步骤:

  1. 登录到中央账户控制台。 删除)](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/create/template?stackName=DMSResumableTaskStackt&templateURL=https://aws-blogs-artifacts-public.s3.amazonaws.com/artifacts/DBBLOG-3152/dbs-blog-stack.yaml)
  2. 选择“下一步”。
  3. 在堆栈名称栏中输入名称,例如 DMSResumableTaskStack
  4. 提供AWS Lambda函数的安全组ID和子网ID,确保其可以连通DMS API。
    ![](https://d2908q01vomqb2.cloudfront.net/887309d048beef83ad3eabf2a79a64a389ab1c9f/2023/10/06/task- 删除)
  5. 选择“下一步”。
  6. 输入要分配给堆栈的任何标签,然后选择“下一步”。
  7. 选中确认框,然后选择“提交”。
    ![](https://d2908q01vomqb2.cloudfront.net/887309d048beef83ad3eabf2a79a64a389ab1c9f/2023/10/06/stack- 删除)

堆栈创建大约需要5分钟,请等待堆栈完成,然后再进行测试和验证。

注意 :由于AWSLambda执行涉及相关成本,包括请求量、执行时长和内存分配等。如果Lambda重启任务时,会在任务自动重启时加上时间戳标签。如果在5分钟内任务再次失败,Lambda将不会重启该任务。您必须故障排除该任务以理解故障原因,并考虑与支持团队创建案例以获得进一步帮助。

附加规则

EventBridge接收事件,指示AWSDMS环境中的变化,并应用规则将事件路由到通知机制。规则根据事件结构(称为事件模式)将事件匹配到通知机制。您可以进入EventBridge并添加附加eventID以自动重启任务,更新EventBridge规则。

  1. 进入Amazon EventBridge,选择您在前一部分创建的DMS规则。
    删除)
  2. 编辑事件规则,添加基于需求的附加eventID,然后选择下一步。
    删除)
  3. 审核新增的规则,然后选择更新规则。

注意 :通过将DMS操作事件纳入EventBridge规则来更新DMS事件,从而实现DMS任务的自动重启。选择这些事件时务必小心,确保仅包含那些不需手动干预的事件。

测试与验证

  1. 进入DMS控制台,选择数据库迁移中的迁移任务,然后选择停止

![](https://d2908q01vomqb2.cloudfront.net/887309d048beef83ad3eabf2a79a64a389ab1c9f/2023/10/06/dms- 删除)

  1. 等待几分钟,这应当会触发EventBridge规则调用Lambda恢复任务。
  2. 如需故障排除,进入AWS Lambda控制台,选择**‘StackName- ’** Lambda函数,查看Amazon CloudWatchLogs并查找任何错误。

删除)

清理

为避免产生后续费用,请进入AWS CloudFormation控制台,选择堆栈并删除该堆栈。

结论

在这篇文章中,我们探讨了如何使用AWS Lambda和Amazon EventBridge实现AWSDMS中可恢复错误任务的自动恢复。通过设置EventBridge规则来捕捉特定事件ID,我们能够调用Lambda函数分析和处理可恢复的错误,从而消除手动干预的需求,确保迁移过程更加顺畅。

如有任何问题或反馈,请随时留下评论。


作者介绍

删除)FelixDavid 是AWS的高级技术客户经理。他与AWS客户合作,帮助他们理解业务和技术需求,并对齐技术解决方案,以实现最大价值。

删除)HarishBannai 是AWS的高级技术客户经理。他为企业客户提供RDS、数据库迁移服务的技术支持,并分享数据库最佳实践。

删除)KanwarBajwa 是AWS的企业支持领导,致力于帮助客户优化使用AWS服务,达到业务目标。

Leave a Reply

Required fields are marked *