实施自动方法来处理 亚马逊云科技 DMS 运营事件

亚马逊云科技 数据库迁移服务 (亚马逊云科技 DMS) 允许您处理迁移同构和异构数据库引擎的复杂任务。随着企业的发展,需要采用最合适的数据库引擎来满足其独特需求。这通常会导致各种数据库系统的共存,从而在无缝数据迁移方面带来挑战。但是,借助 亚马逊云科技 DMS,客户找到了一种高效可靠的解决方案,可以弥合不同数据库引擎之间的差距。

亚马逊云科技 DMS 支持数据库的无缝迁移和复制,但有时在此过程中可能会出现错误。当这些错误可以恢复时,必须知道如何有效地恢复和完成任务,以确保数据完整性并最大限度地减少停机时间。在这篇文章中,我们探讨了恢复关系数据库目标任务的可恢复错误任务的过程。

概述

亚马逊云科技 DMS 复制任务 包含各种事件,包括开始、暂停、完成、满载完成、CDC(更改数据捕获)启动、错误等。这些事件在监视和管理数据库迁移任务中起着至关重要的作用。这些事件由事件 ID 唯一标识,每个事件代表迁移过程中的特定事件。在这些事件 ID 中, 0078 007 9 特别重要,因为它们用于无缝恢复任务。

DMS-EVENT-0078 表示复制任务失败。

DMS-EVENT-0079 表示复制任务已停止。

您可以在 亚马逊云科技 DMS 开发人员指南中找到有关 亚马逊云科技 DM S 生成的事件类别和事件消息的更多信息。

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

使用这种架构,该解决方案将自动恢复可恢复的任务。

先决条件

在本演练中,您必须完成以下先决条件:

  • 您必须拥有一个活跃的 亚马逊云科技 账户,该账户将作为您所有基于云的活动的基础。
  • 配置虚拟私有云 (VPC),因为 亚马逊云科技 DMS 在这个隔离的网络环境中运行以确保安全的数据传输。
  • 对 DMS 概念和功能的基本了解将极大地增强您对服务的体验。
  • 对 亚马逊云科技 Lambda 有基本了解,该服务可让您运行代码以响应事件并运行必要的停止或恢复任务命令,而无需管理服务器

部署

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

  1. 使用中央账户登录控制台。
  2. 选择启动堆栈:
  3. 选择 “下一步”。
  4. 在堆栈名称中,输入一个名称。例如, dmsR esumableTaskStack。
  5. 为 亚马逊云科技 Lambda 函数提供安全组 ID 和子网 ID,该函数必须提供与 DMS API 的连接。
  6. 选择 “ 下一步” 。
  7. 输入要分配给堆栈的任何标签,然后选择 下一步
  8. 选中确认复选框并选择 提交
    堆栈大约需要 5 分钟才能完成。等到堆栈完成后再继续测试和验证。

注意 :随着 亚马逊云科技 Lambda 的执行 ,相关 成本就会浮出水面,包括请求量、执行时长和 Lambda 函数的内存分配等要素。当 lambda 重新启动任务时,它会添加带有时间戳的标签,标明任务何时自动重启。如果任务在 5 分钟内再次失败,则 lambda 将无法启动任务。您必须对任务进行故障排除才能了解失败的原因。考虑提出支持以获得进一步援助的案例。

其他规则

EventBridge 接收事件,该事件是 亚马逊云科技 DMS 环境变化的指标,并应用规则将事件路由到通知机制。规则根据事件的结构(称为事件模式)将事件与通知机制进行匹配。你可以前往 EventBridge 添加额外的 eventId 来自动重启任务。更新 EventBridge 规则。

  1. 前往 Amazon EventBridge 并选择您在上一节中创建的 DMS 规则。
  2. 编辑事件规则, 根据您的要求添加其他 EventID,然后选择下一步。
  3. 查看新添加的规则,然后选择更新规则。

注意:通过将 DMS 操作事件纳入 EventBridge 规则来 更新 DMS 事件,从而启用 DMS 任务的自动重启。选择这些事件时务必谨慎,确保只有那些不需要干预的事件才包含在 EventBridge 规则中。

测试和验证

  1. 前往 DMS 控制台,在数据库迁移任务下选择迁移任务,然后选择 停止。

  1. 等待几分钟,这应该会触发 EventBridge 规则来调用 lambda,这将恢复任务。
  2. 要进行故障排除,请前往 亚马逊云科技 Lambda 控制台, 选择 “StackName- ” Lambda 函数,然后选择 “查看 亚马逊 CloudWatchLogs” 并查找任何错误。

正在清理

为避免将来产生费用,请前往 亚马逊云科技 CloudFormation 控制台,选择堆栈并删除堆栈。

结论

在这篇文章中,我们使用 亚马逊云科技 Lambda 和亚马逊 EventBridge 来自动恢复 亚马逊云科技 DMS 中可恢复的错误任务的流程。通过设置 EventBridge 规则来捕获特定事件 ID,我们可以调用 Lambda 函数来分析和处理可恢复的错误,从而无需手动干预并确保更流畅的迁移体验。

如果您有任何问题或反馈,请发表评论。


作者简介

费利克斯·戴维 是 亚马逊云科技 的高级技术客户经理。他与 亚马逊云科技 客户合作,帮助他们了解业务和技术需求,协调技术解决方案,并从 亚马逊云科技 中实现最大价值。

哈里什·班奈 是 A WS 的高级技术客户经理。他与企业客户合作,提供有关 RDS、数据库迁移服务运营性能的技术援助,并共享数据库最佳实践。

Kanwar Bajwa 是 亚马逊云科技 的企业支持主管,他与客户合作以优化他们对 亚马逊云科技 服务的使用并实现其业务目标。