使用 亚马逊云科技 DMS 从微软 SQL Server AlwaysOn 只读副本迁移到亚马逊 Aurora PostgreSQL

客户选择将其关键工作负载复制到兼容 Amazon Aurora PostgreSQL 的版本,以方便使用、最大限度地减少运营开销并能够摆脱商业许可。在这篇文章中,我们解释了将数据从高度可用的本地微软 SQL Server AlwaysOn 二级只读数据库迁移到具有 Amazon Aurora PostgreSQL 兼容版本的 A mazon Aurora PostgreSQL 兼容版本 以及使用 亚马逊云科技 数据库迁移 服务 (亚马逊云科技 D MS) 的高级步骤。

当您的 SQL Server 任务关键型工作负载在 SQL Server AlwaysOn 主副本上运行时,将复制负载转移到辅助可用性组副本可以避免复制引发的主副本上的 SQL 读取争用,从而提高复制性能。我们可以使用 亚马逊云科技 数据库迁移服务 (亚马逊云科技 DMS) 变更数据捕获 (CDC) 来近乎实时地迁移数据。这还可以确保从源只读副本终端节点读取交易,以便高效地迁移到 Amazon Aurora PostgreSQL。

亚马逊云科技 DMS 用于数据迁移,可以在最短的停机时间内实现数据库引擎更改。亚马逊云科技 DMS 可以使用本地二级可用性组副本作为持续复制的来源,也称为更改数据捕获。亚马逊云科技 DMS 变更数据捕获 (CDC) 可以从特定的时间点开始和停止。它还提供对象级复制,使您可以选择要复制到目标系统的对象。要将数据库代码从一个数据库引擎转换为另一个数据库引擎,请使用 亚马逊云科技 架构转换工具 (亚马逊云科技 SCT)。

使用辅助可用性组只读副本的主要好处

以下是使用辅助可用性组只读副本的主要好处:

  • 对于任何任务关键型工作负载,拥有次要工作负载都会减轻主副本的数据负载
  • 它扩展了托管可读辅助副本的系统的整体处理能力
  • 可读辅助数据库上的临时统计信息可增强只读查询
  • 为了消除辅助数据库上的阻塞争用,只读工作负载使用行版本控制
  • 对于辅助副本上基于磁盘和内存优化的表类型,允许对表变量进行 DML 操作

解决方案概述

以下架构图描述了从 SQL Server AlwaysOn 只读副本迁移到亚马逊 Aurora PostgreSQL 的情况。SQL Server AlwaysOn 可用性组由一个主副本和一个辅助副本组成。必须使用同步可用性组复制来配置辅助副本。使用同步可用性组复制配置辅助可用性组副本时,活动事务日志中的事务是主副本的精确副本。每个 SQL Server AlwaysOn 副本都是一个独立的服务器,有自己的专用系统资源。当 亚马逊云科技 DMS 使用可用性组侦听器通过源端点完全限定域名与 SQL Server AlwaysOn 连接时,在额外的连接属性 中提供 Applicati onIntent=ReadOnly 会将连接路由到辅助副本。在迁移活动期间,主数据库可供应用程序在线使用。

该解决方案通过以下关键步骤实施:

  1. 使用 亚马逊云科技 架构转换工具迁移源架构
  2. 使用 亚马逊云科技 DMS 复制数据。

有关更多详细信息,请参阅 SQL Server 到 Aurora PostgreSQL 的迁移 手册。

先决条件

在我们开始之前,您必须完成以下先决条件:

  1. 使用 AlwaysOn 可用性组中的 SQL Server 数据库在本地或 亚马逊弹性计算云 (Amazon EC2) 上配置您的源,以配置可用性组以启用只读路由。
  2. 将亚马逊 Aurora PostgreSQL 实例配置为您的 亚马逊云科技 账户中的目标数据库引擎。
  3. 在源端安装 亚马逊云科技 SCT 并确认它能够同时连接到 SQL 服务器侦听器和目标 Aurora PostgreSQL 实例。
  4. 在源和目标之间建立连接。

此外,您必须具有 SQL Server 复制和 亚马逊云科技 DMS 的基础知识。

使用 亚马逊云科技 SCT 迁移源架构

将数据库从一个数据库平台迁移到另一个数据库平台(异构迁移)时的关键点包括代码转换和数据迁移。亚马逊云科技 SCT 和 亚马逊云科技 DMS 是简化此迁移过程的可靠工具。

使用 亚马逊云科技 SCT 用户界面,您可以自动将数据库架构从源实例转换为目标实例。如果源数据库中的任何部分代码无法自动转换,亚马逊云科技 SCT 还会指导您如何通过行动手册在目标数据库中创建等效架构。

有关将 SQL Server 迁移到亚马逊 Aurora PostgreSQL 兼容版的最佳实践的更多信息,请参阅 使用最佳实践和实地经验教训 将 SQL Server 迁移到亚马逊 Aurora PostgreSQL

使用 亚马逊云科技 DMS 复制数据

从 3.4.7 版开始,亚马逊云科技 DMS 可以使用自我管理的二级可用性组副本作为持续复制(更改数据捕获)的来源。

您首先创建源端点以连接到辅助可用性组只读副本。有关要求、源端点 的额外连接属性以及 使用辅助可用性组 副本时的限制,请参阅使用自行管理的 SQL Server Always On 可用性组。您可以使用侦听器完全限定域名 (HA) 或带有额外连接属性 A pplicationint=Read Only 的辅助副本完全限定域名(非 HA)作为源服务器名称。

然后,您可以使用 亚马逊云科技 DMS 控制台创建目标终端节点以连接到 Aurora PostgreSQL 实例。有关限制、安全要求和端点设置的更多详细信息 ,请参阅 使用 PostgreSQL 数据库作为 亚马逊云科技 数据库迁移服务的 目标

最后,创建一个 亚马逊云科技 DMS 任务来执行满载和持续复制。有关更多详细信息,请参阅 使用 亚马逊云科技 DMS 为持续复制 创建任务

监控 亚马逊云科技 DMS 复制任务

监控是维护 亚马逊云科技 DMS 的一致性、可访问性和性能的重要组成部分,对于大型迁移尤其如此。监控可帮助您识别差异并根据配置的阈值指标触发通知。要调试任何故障,监控数据非常有用。亚马逊云科技 提供了多种选项来监控您的 亚马逊云科技 DMS 任务。例如,您可以使用 Amazon CloudWatch 使用指标收集、跟踪和监控 亚马逊云科技 资源。检查任务创建时是否使用适当的端点以及架构和数据库对象之间所需的映射规则非常重要。有关监视方法和监控项的更多信息,请参阅以下资源:

  • 监控 亚马逊云科技 DMS 任务
  • 记录任务设置
  • 如何在 亚马逊云科技 数据库迁移服务 (DMS) 中使用表统计来监控我的任务?
  • 对 亚马逊云科技 数据库迁移服务中的迁移任务进行故障排除
  • 使用 亚马逊云科技 CloudTrail 记录迁移中心 API 调用
  • 使用 亚马逊云科技 CLI 为 亚马逊云科技 DMS 资源设置亚马逊 CloudWatch 警报

结论

在这篇文章中,我们提供了一些高级步骤,演示如何使用 亚马逊云科技 DMS 将数据从 AlwaysOn 只读副本复制到兼容 Amazon Aurora PostgreSQL 的版本。您可以使用 亚马逊云科技 DMS 无缝迁移任务关键型本地数据库,同时最大限度地减少停机时间。如果您的业务关键型数据库运行在本地 SQL Server Always On 可用性组上,则可以将数据从辅助只读副本复制到兼容 Amazon Aurora PostgreSQL 的版本,停机时间几乎为零。


作者简介

InduteJa Aligeti 是 亚马逊云科技 的高级首席数据库顾问。她拥有超过 18 年的微软技术使用经验,专长于 SQL Server。她专注于帮助客户构建高度可用、经济实惠的数据库解决方案,并将其大规模 SQL Server 数据库迁移到 亚马逊云科技。

Bhavani Akundi 是 亚马逊云科技 专业服务的首席数据库顾问。她在使用微软技术方面拥有丰富的经验,专门研究 SQL Server。她与客户紧密合作,使用经济实惠的解决方案帮助他们迁移和现代化数据库工作负载。

Sreenivas Nettem 是 亚马逊云科技 专业服务的首席数据库顾问。他在使用微软技术方面拥有超过 18 年的经验,专门研究 SQL Server。他与客户紧密合作,帮助他们将数据库迁移到 亚马逊云科技 并对其进行现代化改造。