本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon DMS 无服务器组件
为了管理执行复制所需的资源, Amazon DMS Serverless 具有精细的状态,可以显示服务采取的不同内部操作。启动复制时, Amazon DMS Serverless 会根据以下复制状态计算容量负载,预置计算出的容量,然后开始数据复制。
下图显示了 Amazon DMS 无服务器复制的状态转换。
在您开始复制后,第一个状态是正在初始化。在此状态下将初始化所有必需的参数。
紧随其后的状态包括正在准备元数据资源、正在测试连接和正在获取元数据。在这些状态下, Amazon DMS Serverless 会连接到您的源数据库以获取预测所需容量所需的信息。
当复制状态为 “测试连接” 时, Amazon DMS Serverless 会验证与源数据库和目标数据库的连接是否已成功建立。
正在测试连接之后的复制状态为正在获取元数据。在这里, Amazon DMS 检索计算容量所需的信息。
Amazon DMS 检索到必要信息后,下一个状态为 “计算容量”。此时,系统计算执行复制所需的底层资源的大小。
在正在计算容量之后,状态转换为正在预置容量。当复制处于这种状态时, Amazon DMS Serverless 会初始化底层计算资源。
成功预置所有资源后的复制状态为复制开始。在这种状态下, Amazon DMS Serverless 开始复制数据。复制过程包括以下几个阶段:
满载:在此阶段,DMS复制复制开始时的源数据存储。
CDC(初始):在此阶段,DMS复制在满载阶段对源数据存储所做的更改。 DMS仅当
StopTaskCachedChangesNotApplied
任务设置为时才会运行此阶段false
。CDC(正在进行):初始CDC阶段结束后,在源数据库上DMS复制所做的更改。 DMS只有在
StopTaskCachedChangesApplied
任务设置为的情况下,才会在初始CDC阶段之后继续运行复制false
。
最终状态为正在运行。在正在运行状态下,数据复制正在进行中。
您停止的复制进入已停止状态。您可以在以下情况下重新启动已停止的复制:
您无法重新启动DMS已取消配置的复制。
您可以使用操作重新启动已停止CDC或满载和CDC复制。StartReplication您无法使用控制台重新启动已停止的复制。
您无法重新启动使用 Postgre SQL 作为引擎的已停止复制。
本主题包含下列部分:
对于 Amazon DMS 无服务器, Amazon DMS 控制台的左侧导航面板有一个新选项,即无服务器复制。对于无服务器复制,您可以指定复制,而不是指定复制实例类型或任务来定义复制。此外,您还可以指定要为复制预置的最大和最小DMS容量单位 (DCUs)。DMSA DCU 是 2GB 的。RAM Amazon DMS 根据您的复制当前使用的每DCU项内容向您的账户收费。有关 Amazon DMS 定价的信息,请参阅 Amazon Database Migration Service 定价
Amazon DMS 然后根据您的表映射和预测的工作负载大小自动配置复制资源。此容量单位是在您指定的最小和最大容量单位值范围内的值。
支持的引擎版本
使用 Amazon DMS Serverless,您无需选择和管理引擎版本,因为该服务会处理该设置。 Amazon DMS 无服务器支持以下来源:
-
MongoDB
-
Amazon DocumentDB (with MongoDB compatibility)
-
微软SQL服务器
-
与 Postgre 兼容SQL的数据库
-
我的SQL兼容数据库
-
MariaDB
-
Oracle
-
IBMDb2
Amazon DMS 无服务器支持以下目标:
-
微软SQL服务器
-
Postgre SQL
-
我的SQL兼容数据库
-
Oracle
-
Amazon S3
-
Amazon Redshift
-
Amazon DynamoDB
-
Amazon Kinesis Data Streams
-
Amazon Managed Streaming for Apache Kafka
-
亚马逊 OpenSearch 服务
-
Amazon DocumentDB(与 MongoDB 兼容)
-
Amazon Neptune
作为 Amazon DMS Serverless 的一部分,您可以访问控制台命令,这些命令允许您创建、配置、启动和管理 Amazon DMS 无服务器复制。要使用控制台的无服务器复制部分运行这些命令,您需要执行以下操作之一:
设置一个新的 Amazon Identity and Access Management (IAM) 策略和IAM角色来附加该策略。
使用 Amazon CloudFormation 模板提供所需的访问权限。
Amazon DMS Serverless 要求您的账户中存在服务关联角色 (SLR)。 Amazon DMS 管理此角色的创建和使用。有关确保具备必要条件的更多信息SLR,请参阅Amazon DMS Serverless 的服务相关角色。
创建无服务器复制
要在两个现有 Amazon DMS 端点之间创建无服务器复制,请执行以下操作。有关创建 Amazon DMS 终端节点的信息,请参阅创建源和目标终端节点。
创建无服务器复制
登录 Amazon Web Services Management Console 并在 https://console.aws.amazon.com/dms/v2
/上打开 Amazon DMS 控制台。 -
在导航窗格上,选择无服务器复制,然后选择创建复制。
-
在创建复制页面上,指定您的无服务器复制配置:
选项 操作 名称
输入用于标识复制的名称,例如 DMS-replication
。描述性亚马逊资源名称 (ARN)-可选 您可以使用此可选参数对复制进行描述。 源数据库端点 选择账户中的现有端点。请注意, Amazon DMS Serverless 仅支持 Amazon DMS 标准版支持的端点类型的子集。 目标数据库端点 选择账户中的现有端点。请注意, Amazon DMS Serverless 仅支持 Amazon DMS 标准版支持的端点类型的子集。 复制类型 根据您的要求选择复制类型: 满载:仅 Amazon DMS 迁移现有数据。
完全加载和更改数据捕获 (CDC): Amazon DMS 迁移现有数据和复制期间发生的更改。
更改数据捕获 (CDC): Amazon DMS 仅迁移开始复制后发生的更改。
在设置部分中,设置复制所需的设置。
在表映射部分中,设置表映射以定义选择和筛选所要复制的数据的规则。在指定映射之前,请确保查看有关源数据库和目标数据库之间的数据类型映射的文档部分。有关源数据库和目标数据库的数据类型映射的信息,请参阅 使用 Amazon DMS 端点主题中源和目标端点类型的“数据类型”部分。
在计算设置部分中,设置以下设置。有关 Compute Config 设置的信息,请参阅 Compute Config。
选项 操作 VPC
选择现有的VPC。 子网组
选择现有子网组。 VPC安全组
选择默认值(如果尚未选择)。 Amazon KMS钥匙
选择合适的KMS密钥。有关KMS密钥的信息,请参阅Amazon Key Management Service API参考中的创建密钥。 部署
保留原样。 可用区
保留原样。 最小DMS容量单位 (DCU)-(可选)
留空使用默认值 1 DCU。 最大DMS容量单位 (DCU)
选择 16 DCU。 保留维护设置不变。
选择创建复制。
Amazon DMS 创建无服务器复制来执行迁移。
修改 Amazon DMS 无服务器复制
要修改您的复制配置,请使用 modify-replication-config
操作。您只能修改处于CREATED
STOPPED
、或FAILED
状态的 Amazon DMS 复制配置。有关modify-replication-config
操作的信息,请参阅 “Amazon Database Migration Service API参考” ModifyReplicationConfig中的。
要修改无服务器复制配置,请使用 Amazon Web Services Management Console
登录 Amazon Web Services Management Console 并在 https://console.aws.amazon.com/dms/v2
/上打开 Amazon DMS 控制台。 在导航窗格中,选择无服务器复制。
-
选择您要修改的复制。下表描述了根据复制的当前状态,您可以进行的修改。
设置 描述 允许的状态 名称
您可以更改复制的名称。输入包含 8 到 16 ASCII 个可打印字符(不包括/、” 和 @)的复制名称。该名称在所选择 Amazon 区域中对于您的账户应唯一。您可以选择在名称中添加一些细节,例如包括您正在执行的 Amazon 区域和任务,例如:
west2-mysql2mysql-config1
。ReplicationState
为CREATED
、STOPPED
或FAILED
。源数据库端点
选择一个新的现有源端点作为复制的源。
ReplicationState
为CREATED
,当ProvisionState
是null
时为FAILED
。目标数据库端点
选择一个新的现有目标端点作为复制的目标。
ReplicationState
为CREATED
,当ProvisionState
是null
时为FAILED
。复制类型
您可以修改无服务器复制的类型。
ReplicationState
为CREATED
,当ProvisionState
是null
时为FAILED
。复制设置
您可以修改复制设置,包括目标表准备模式、是否在复制中包含LOB列、最大LOB大小、验证和日志记录。有关更多信息,请参阅 Task settings(任务设置)。
ReplicationState
为CREATED
、STOPPED
或FAILED
。表映射
您可以修改无服务器复制的表映射设置,包括选择规则和转换规则。有关更多信息,请参阅 表映射。
ReplicationState
为CREATED
、STOPPED
或FAILED
。Compute Config
您可以修改无服务器复制的 Compute Config 设置,包括网络设置、扩展设置和维护设置。有关 Compute Config 设置的信息,请参阅 Compute Config。
当
ReplicationState
为CREATED
、STOPPED
或FAILED
时,您可以修改以下扩展、维护和网络设置:MinCapacityUnits
MaxCapacityUnits
MultiAZ
PreferredMaintenanceWindow
VpcSecurityGroupIds
在
ReplicationState
为CREATED
或者为FAILED
(当ProvisionState
是null
时)时,您可以修改以下网络和安全设置:AvailabilityZone
DnsNameServers
KmsKeyId
ReplicationSubnetGroupId
Compute Config
您可以使用 Compute Config 参数或控制台部分配置复制预置。Compute Config 对象中的字段包括以下内容:
选项 | 描述 |
---|---|
MinCapacityUnits |
这是要配置的最小DMS容量单位数 (DCU)。 Amazon DMS 这也是自动缩放可以缩小到的最小值DCU。 |
MaxCapacityUnits |
这是 Amazon DMS 可以预配置的最大DMS容量单位 (DCU),具体取决于复制的容量预测。这也是自动缩放可以扩展到的最大值DCU。 |
KmsKeyId |
选择要用于加密复制存储和连接信息的加密密钥。如果您选择(默认)aws/dms,则 Amazon DMS 使用与您的账户关联的默认KMS密钥和。 Amazon Web Services 区域屏幕上会显示描述和您的账号以及密钥ARN。有关使用加密密钥的更多信息,请参阅设置加密密钥并指定 Amazon KMS 权限。在本教程中,选择(默认)aws/dms。 |
ReplicationSubnetGroupId |
您选择的要在VPC其中创建复制的复制子网组。如果您的源数据库位于VPC,请选择包含源数据库的子网组作为复制位置。有关复制子网组的更多信息,请参阅 创建复制子组。 |
VpcSecurityGroupIds |
复制实例是在中创建的VPC。如果您的源数据库位于VPC,请选择提供对数据库所在数据库实例的访问权限VPC的安全组。 |
PreferredMaintenanceWindow |
此参数定义了每周可以进行系统维护的时间范围,以通用协调时间 (UTC) 为单位。默认值是从每个 8 小时的时间段中随机选择一个 30 分钟的窗口 Amazon Web Services 区域,发生在一周中的随机某一天。 |
MultiAZ |
设置此可选参数可在另一个可用区中创建复制的备用副本以支持失效转移。如果您打算使用更改数据捕获 (CDC) 或持续复制,我们建议您启用此选项。 |
了解无服务器中的 Amazon DMS 自动扩展
在您配置复制并使其处于RUNNING
状态后,该 Amazon DMS 服务将管理底层资源的容量以适应不断变化的工作负载。此管理功能根据以下复制设置扩展复制资源:
MinCapacityUnits
MaxCapacityUnits
在超过利用率阈值上限一段时间后,复制会纵向扩展;当容量利用率在较长一段时间内低于容量利用率阈值下限时,复制会纵向缩减。
注意
在完全加载过程中,Serverless 复制无法自动缩减。
在无服务器中 Amazon DMS 调整自动缩放
要调整您的复制自动缩放参数,我们建议您将设置MaxCapacityUnits
为最大值,然后让 Amazon DMS 管理资源的配置。建议您选择DCU最大最大容量设置,以便从自动缩放中获得最大的收益,以适应交易量的峰值。如果您的复制持续使用最大月度成本,则定价计算器会显示每月的最大成本DCU。最大值DCU并不代表实际成本,因为您只需为使用的容量付费。
如果您的复制未在满负荷状态下使用其资源,则 Amazon DMS 会逐渐取消资源配置以节省成本。但是,由于预置和取消预置资源需要时间,因此我们建议您将 MinCapacityUnits
设置为能够应对预计复制工作负载中会出现的任何突然峰值的值。这样可以防止您的复制资源不足,同时 Amazon DMS 为更高的工作负载级别配置资源。
如果复制资源的预置不足,最大容量设置太低,无法满足数据需求,或者最小容量太低,无法处理复制工作负载突然激增,则您的 CapacityUtilization
指标可能会始终保持在最大值。这可能会导致您的复制失败。如果由于资源配置不足而导致复制失败,则会在复制日志中 Amazon DMS 创建一个 out-of-memory事件。如果 out-of-memory这种情况是由于复制工作负载突然激增而发生的,则复制将自动扩展并重新启动。
监控 Amazon DMS 无服务器复制
Amazon 提供了多种用于监控 Amazon DMS 无服务器复制和响应潜在事件的工具:
Amazon DMS 无服务器复制指标
无服务器复制监控包括以下统计数据的 Amazon CloudWatch 指标。这些统计数据按每个无服务器复制进行分组。
指标 |
单位 |
描述 |
---|---|---|
CapacityUtilization | 百分比 |
无服务器复制使用的内存百分比 |
CDCIncomingChanges | 百分比 |
a 上等待应用于目标 point-in-time的更改事件总数。请注意,这与源终端节点的事务更改速率指标不同。此指标的数字过大 Amazon DMS 通常表示无法及时应用捕获的更改,从而导致目标延迟过高。 |
CDCLatencySource | 秒 |
从源端点捕获的最后一个事件与 Amazon DMS 实例的当前系统时间戳之间的间隔,以秒为单位。 CDCLatencySource表示源实例和复制实例之间的延迟。高CDCLatencySource表示从源捕获更改的过程被延迟。要确定正在进行的复制过程中的延迟,您可以将此指标与一起查看CDCLatencyTarget。如果CDCLatencySource和都CDCLatencyTarget很高,请CDCLatencySource先进行调查。 CDCLatencySource当源和复制之间没有复制延迟时,可以为 0。 CDCLatencySource当复制尝试读取源事务日志中的下一个事件并且与上次从源读取时相比没有新事件时,也可能变为零。发生这种情况时,复制会将重置CDCLatencySource为 0。 |
CDCLatencyTarget | 秒 |
在目标上等待提交的第一个事件时间戳与 Amazon DMS 实例的当前系统时间戳之间的间隔(秒)。目标延迟是复制实例服务器时间,与转发到目标组件的最早未经确认的事件 ID 时间之间的差异。换句话说,目标延迟是复制实例与应用但未经TRG端点确认的最早事件 (99%) 之间的时间戳差异。如果CDCLatencyTarget为高,则表示将更改事件应用于目标的过程已延迟。要确定正在进行的复制过程中的延迟,您可以将此指标与一起查看CDCLatencySource。如果CDCLatencyTarget为高但CDCLatencySource不高,请调查是否:
|
CDCThroughputBandwidthTarget | KB/秒 |
以每秒 KB 为单位为目标传输的传出数据。 CDCThroughputBandwidth记录在采样点传输的传出数据。如果未找到网络流量,则该值为零。由于CDC不会发出长时间运行的交易,因此可能不会记录网络流量。 |
CDCThroughputRowsSource | 行/秒 |
源的传入更改速率,以每秒行数为单位。 |
CDCThroughputRowsTarget | 行/秒 |
目标的传出更改速率,以每秒行数为单位。 |
FullLoadThroughputBandwidthTarget | KB/秒 |
目标在满负载情况下的传出数据传输速率,以每秒 KB 数为单位。 |
FullLoadThroughputRowsTarget | 行/秒 |
目标上的完全加载的传出更改,以行/秒为单位。 |
Amazon DMS 无服务器复制日志
在 Amazon DMS 迁移过程中 CloudWatch ,您可以使用 Amazon 记录复制信息。您可以在选择复制设置时启用日志记录。
无服务器复制会将状态日志上传到您的 CloudWatch 帐户,以提高对复制进度的可见性并帮助进行故障排除。
Amazon DMS 将无服务器链接的日志上传到带有前缀的专用日志组。dms-serverless-replication-
在此日志组中,有一个名为的 <your replication config resource ID>
dms-serverless-replication-orchestrator-
日志流。此日志流报告您的复制的复制状态,并显示一条相关消息,提供有关其在此阶段所做工作的更多详细信息。有关日志条目的示例,请参阅下文的 无服务器复制日志示例。<your replication config resource ID>
注意
Amazon DMS 在运行复制之前,不会创建日志组或流。 Amazon DMS 如果您只创建复制,则不会创建日志组或流。
要查看所运行复制的日志,请按照下列步骤操作:
-
打开 Amazon DMS 控制台,然后从导航窗格中选择无服务器复制。将出现无服务器复制对话框。
-
转到配置部分,然后在“常规”列中选择查看无服务器日志。 CloudWatch 日志组打开。
-
找到迁移任务日志部分,然后选择查看 CloudWatch 日志。
如果复制失败,则 Amazon DMS 会创建一个复制状态为的日志条目failed
,并显示一条描述失败原因的消息。作为排除复制失败故障的第一步,您应该检查 CloudWatch 日志。
注意
与 Amazon DMS Classic 一样,您可以选择对数据迁移本身的进度(即底层复制任务发出的日志)启用更精细的日志记录。通过在Logging
字段中设置为,可以在复制设置EnableLogging
中启用这些日志true
,如以下JSON示例所示:
{ "Logging": { "EnableLogging": true } }
如果您启用这些日志,它们将仅在无服务器复制的 running
阶段开始出现。它们将与之前的日志流出现在同一个日志组中,但会出现在新的日志流 dms-serverless-serv-res-id-
下。有关如何解释无服务器复制日志的信息,请参阅以下章节。{unique identifier}
无服务器复制日志示例
本节包括用于无服务器复制的日志条目示例。
示例:复制开始
运行无服务器复制时, Amazon DMS 会创建一个类似于以下内容的日志条目:
{'replication_state':'initializing', 'message': 'Initializing the replication workflow.'}
示例:复制失败
如果复制的其中一个端点配置不正确,则 Amazon DMS 会创建一个类似于以下内容的日志条目:
{'replication_state':'failed', 'message': 'Test connection failed for endpoint X.', 'failure_message': 'X'}
如果在出现故障后,您在日志中看到此消息,请确保指定的端点运行正常且配置正确。
提高了 Oracle 到 Amazon Redshift 的完全加载迁移的吞吐量
Amazon DMS 显著提高了从 Oracle 到 Amazon Redshift 的满负荷迁移的吞吐量性能。 DMS自动为表映射中没有该custom parallel-load
选项的表启用此功能。对于具有自定义并行加载选项的表,DMSServerless 会根据给定的表映射配置来分配表负载。要使用增强的吞吐量,请执行以下操作:
提供不引用分区或边界的选择规则。例如,如果表映射中的表设置包含
parallel-load
,则 DMS Serverless 将不会使用增强吞吐量功能。有关更多信息,请参阅 选择规则和操作。将
MaxFileSize
和WriteBufferSize
设置为 64 MB。有关更多信息,请参阅 使用 Amazon Redshift 作为 Amazon DMS 的目标时的端点设置。对于包含稀疏数据的数据存储,建议将
CompressCsvFiles
设置为true
;对于包含密集数据的数据存储,则设置为false
。将以下任务设置设为
0
:ParallelLoadThreads
ParallelLoadQueuesPerThread
ParallelApplyThreads
ParallelApplyQueuesPerThread
ParallelLoadBufferSize
将
MaxFullLoadSubTasks
设置为49
以支持并行数据迁移。将
LOB mode
设置为inline
。有关更多信息,请参阅 在 Amazon DMS 任务中设置对源数据库的LOB支持。
Amazon DMS 不为以下复制提供增强的吞吐量性能:
使用并行加载对表进行复制。有关更多信息,请参阅 对所选表、视图和集合使用并行加载。
使用数据转换规则进行复制。
使用筛选规则进行复制。
使用
change-data-type
转换规则进行复制。