AWS Database Migration Service
用户指南 (版本 API Version 2016-01-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS DMS 发行说明

接下来,您可以查找不同版本的 AWS Database Migration Service (AWS DMS) 的发行说明。

AWS Database Migration Service (AWS DMS) 3.1.1 发行说明

下面的表显示了 AWS Database Migration Service (AWS DMS) 3.1.1 版的功能和错误修复。

新功能或增强功能 描述
4 字节 UTF8 字符的迁移

AWS DMS 现在支持所有 4 字节字符集,如 UTF8MB4 等。此功能无需任何配置更改即可工作。

对 Microsoft SQL Server 2017(作为源)的支持

增加了对 SQL Server 2017(作为源)的支持。有关更多信息,请参阅将 Microsoft SQL Server 数据库作为 AWS DMS 源

对表的并行完全加载的支持

增加了对基于分区和子分区的大型表的并行完全加载的支持。此功能为每个表分区或子分区使用一个单独的卸载线程来加速批量加载过程。您也可以指定特定的范围或分区来迁移表的部分数据。受支持的源为 Oracle、SQL Server、Sybase、MySQL、IBM Db2 for Linux、UNIX、PostgreSQL 和 Windows (Db2 LUW)。有关更多信息,请参阅表的并行加载

控制每个表的大对象 (LOB) 设置

现在,您可以使用附加的表映射设置来控制每个表的 LOB 设置。有关更多信息,请参阅目标元数据任务设置。受支持的源为 Oracle、SQL Server、MySQL 和 PostgreSQL。

控制单个迁移任务中的表加载顺序

现在,您可以使用表映射来控制迁移任务中的表的加载顺序。您可以通过在表映射中使用加载顺序无符号整数来标记表,从而指定顺序。首先迁移具有较高加载顺序值的表。有关更多信息,请参阅使用表映射指定任务设置

支持在将 PostgreSQL 用作源时更新主键值

现在,在将 PostgreSQL 用作源以继续复制时,将复制对主键值的更新。

针对 S3 和 Amazon Redshift(作为目标)的附加加密选项。

现在可以使用额外连接属性 (ECA) 通过 SSE-KMS 对转入 S3 或 Amazon Redshift(作为目标)的数据进行加密。默认情况下,新的 ECA (encryptionMode) 在 S3 中使用服务器端加密 (SSE-S3) 来加密数据。如果其 S3 存储桶需要基于 AWS Key Management Service (AWS KMS) 的加密,您现在可以将它设置为 SSE-KMS。您可以使用 kmsKeyId ECA 传递 KMS 密钥 ID。

已解决如下所示。

报告的日期 描述

2018 年 24 月 4 日

修复了以下问题:用户无法创建 Azure SQL 作为 SQL Server 2016 的源终端节点。

2018 年 5 月 5 日

修复了以下问题:Oracle 源中的 CHR(0) 作为 Aurora 与 MySQL 的兼容性 目标中的 CHR(32) 迁移。

2018 年 5 月 10 日

修复了以下问题:在使用 Oracle LogMiner 迁移来自 Oracle 物理备用实例的更改时,来自 Oracle(作为源)的持续复制无法按预期方式工作。

2018 年 5 月 27 日

修复了以下问题:PostgreSQL 中各种数据类型的字符数在迁移到 PostgreSQL 的过程中增加了 3 倍。

2018 年 12 月 6 日

修复了以下问题:数据在从 TEXT 迁移到 NCLOB(PostgreSQL 到 Oracle)的过程中,因这些引擎在处理字符串中的空值的方式不同而发生更改。

2018 年 6 月 17 日

修复了以下问题:在从源 MySQL 版本 5.5 迁移时,复制任务无法在目标 MySQL 版本 5.5 实例中创建主键。

2018 年 23 月 6 日

修复了以下问题:在从 PostgreSQL 实例迁移到 与 PostgreSQL 兼容的 Aurora 时,JSON 列在完整 LOB 模式下被截断。

2018 年 6 月 27 日

修复了以下问题:对 PostgreSQL(作为目标)的更改的批量应用因在目标上创建中间净更改表时出错而失败。

2018 年 6 月 30 日

修复了以下问题:MySQL 时间戳 '0000-00-00 00:00:00' 在执行完全加载时无法按预期方式迁移。

2018 年 7 月 2 日

修复了以下问题:DMS 复制任务在发生源 Aurora MySQL 故障转移后无法按预期方式继续执行。

2018 年 7 月 9 日

修复了有关从 MySQL 迁移到 Amazon Redshift ,该问题导致任务失败,并出现未知列和数据类型错误。

2018 年 7 月 21 日

修复了以下问题:字符串中的空字符在受限 LOB 和完整 LOB 模式下以不同方式从 SQL Server 迁移到 PostgreSQL。

2018 年 7 月 23 日

修复了以下问题:SQL Server(作为源)中的保护事务填满 SQL Server 中的事务日志。

2018 年 7 月 26 日

修复了以下问题:Null 值在从 PostgreSQL 到 Oracle 的向前滚动迁移中作为空值迁移。

多个日期

修复了各种日志记录问题以确保用户通过 Amazon CloudWatch 日志获得有关迁移的更多信息。

多个日期

修复了各种数据验证问题。

AWS Database Migration Service (AWS DMS) 2.4.4 发行说明

下面的表显示了 AWS Database Migration Service (AWS DMS) 2.4.4 版的功能和错误修复。

新功能或增强功能 描述
使用筛选条件子句对迁移进行的验证

现在,您可以在迁移表的部分数据时使用表筛选条件来验证数据。

开放式数据库连接 (ODBC) 驱动程序升级

适用于 MySQL 的底层 ODBC 驱动程序已升级到 5.3.11-1,适用于 Amazon Redshift 的底层 ODBC 驱动程序已升级到 1.4.2-1010。

在夏令时发生更改时重新计算延迟 现在,您可以重新计算 Oracle 和 PostgreSQL(作为源)的夏令时更改期间的时间偏移。在夏令时发生更改后,源和目标延迟计算都是准确的。
UUID 数据类型转换(SQL Server 到 MySQL) 现在,在 SQL Server(作为源)和 MySQL(作为目标)之间迁移时,可以将 UNIQUEIDENTIFER 数据类型(即,通用唯一标识符或 UUID)转换为字节。
能够更改 S3(作为源)和 Amazon Redshift(作为目标)的加密模式 现在,在 S3(作为源)和 Amazon Redshift(作为目标)之间迁移时,您可以更改加密模式。您可以使用连接属性指定加密模式。同时支持服务器端加密和 AWS KMS。

已解决如下所示。

报告的日期 描述
2018 年 7 月 17 日 修复了以下问题:在完全大型二进制对象 (LOB) 模式中变更数据捕获 (CDC) 期间,PostgreSQL(作为源)将 Null 值作为空值发送到目标 Oracle 数据库。
2018 年 7 月 29 日 修复了以下问题:针对 S3 的迁移任务在从 DMS 版本 1.9.0 升级后无法继续。
2018 年 8 月 5 日 修复了以下问题:ResumeFetchForXRows 额外连接属性无法用于 MySQL 源的 VARCHAR 主键。
2018 年 9 月 12 日 修复了以下问题:使用 SQL Server 保护事务的 DMS 阻止事务日志被重用。
2018 年 9 月 21 日 修复了以下问题:从 PostgreSQL(作为源)到 Amazon Redshift(作为目标)的批量加载失败。失败的任务在完全加载被中断后未报告失败。
2018 年 10 月 3 日 修复了以下问题:DMS 迁移任务在未为 SQL Server(作为源)正确配置持续复制的先决条件时未失败。
多个日期 修复了与数据验证相关的多个问题,并增加了对验证多字节 UTF-8 字符的增强支持。

AWS Database Migration Service (AWS DMS) 2.4.3 发行说明

下面的表显示了 AWS Database Migration Service (AWS DMS) 2.4.3 版的功能和错误修复。

新功能或增强功能 描述
出现不匹配情况时重新创建表元数据

添加了用于 MySQL 终端节点的新的额外连接属性:CleanSrcMetadataOnMismatch

这是一个布尔属性,可在出现不匹配情况时在复制实例上清除并重新创建表元数据信息。例如,对表运行数据定义语言 (DDL) 中的更改语句可能会产生有关在复制实例中缓存的表的不同信息。默认情况下,此属性设置为 false。

数据验证的性能改进

改进包括:

  • 现在,数据验证在开始之前先对数据分区,这样它可以比较相似的分区并对其进行验证。此版本改进了更改处理方式,以提取批量分区,从而缩短分区时间并加速数据验证。

  • 进行了改进以根据任务设置自动处理排序规则差异。

  • 进行了改进以识别验证期间的误报,还可减少缓存更改阶段的误报。

  • 对数据验证的一般日志记录改进。

  • 当表具有复合主键时对数据验证所用查询的改进。

已解决如下所示。

报告的日期 描述
2018 年 2 月 12 日 修复了以下问题:在持续复制中,在 AWS DMS 缺少一些插入的批量应用中,已更新表中的唯一约束。
2018 年 3 月 16 日 修复了以下问题:在持续复制阶段,从 Oracle 到 PostgreSQL 的迁移任务因为源 Amazon RDS for Oracle 实例上的多个 AZ 故障转移而崩溃。

AWS Database Migration Service (AWS DMS) 2.4.2 发行说明

下面的表显示了 AWS Database Migration Service (AWS DMS) 2.4.2 版的功能和错误修复。

新功能或增强功能 描述
变更数据捕获期间对 Amazon RDS for Oracle 的 Binary Reader 支持 增加了对在持续复制期间从 Amazon RDS for Oracle 源使用变更数据捕获 (CDC) 方案中的 Binary Reader 的支持。
作为目标的 Amazon Redshift 的其他 COPY 命令参数

使用额外的连接属性引入了对以下其他 Amazon Redshift 复制参数的支持。有关更多信息,请参阅将 Amazon Redshift 作为 AWS DMS 目标时的额外连接属性

  • TRUNCATECOLUMNS

  • REMOVEQUOTES

  • TRIMBLANKS

在 PostgreSQL 源中截断表时使迁移任务失败的选项 引入了对在 PostgreSQL 源中发生截断时使用新任务设置使任务失败的支持。有关更多信息,请参阅错误处理任务设置一节中的 ApplyErrorFailOnTruncationDdl 设置。
对 PostgreSQL 终端节点中的 JSON/JSONB/HSTORE 的验证支持 引入了对作为源和目标的 PostgreSQL 的 JSON、JSONB 和 HSTORE 列的数据验证支持。
改进了 MySQL 源的日志记录 改进了在变更数据捕获 (CDC) 期间读取 MySQL 二进制日志 (binlogs) 时出现的问题的日志可见性。现在,如果在 CDC 期间访问 MySQL 源二进制日志时出现问题,日志将清楚地显示错误或警告。
其他数据验证统计数据 增加了更多的复制表统计数据。有关更多信息,请参阅复制任务统计数据

已解决如下所示。

报告的日期 描述
2018 年 1 月 14 日 修复了与在完全加载和 CDC 期间将零日期 (0000-00-00) 用于 MySQL 目标相关的所有问题。MySQL 不接受 0000-00-00(在 MySQL 中无效),而其他一些引擎接受它。对于 MySQL 目标,所有这些日期将变为 0101-01-01
2018 年 1 月 21 日 修复了在迁移名称包含 $ 符号的表时迁移失败的问题。
2018 年 2 月 3 日 修复了在迁移到任何受支持的目标时 PostgreSQL 源中的 JSON 列被截断的问题。
2018 年 2 月 12 日 修复了以下问题:在 Aurora MySQL 目标中进行故障转移后迁移任务失败。
2018 年 2 月 21 日 修复了以下问题:在出现网络连接问题后迁移任务无法启动持续复制阶段。
2018 年 2 月 23 日 修复了以下问题:持续复制到 Amazon Redshift 目标期间,表映射中的某些转换规则导致迁移任务崩溃。
报告多个日期的数据

修复了各种数据验证问题:

  • 修复了 Oracle 源和目标验证中的宽字符串处理问题。

  • 处理在为表映射中的表删除列时进行的验证。

  • 改进了具有高更改率的源的验证性能。

AWS Database Migration Service (AWS DMS) 2.4.1 发行说明

下面的表显示了 AWS Database Migration Service (AWS DMS) 2.4.1 版的功能和错误修复。

新功能或增强功能 描述
JSONB 支持 PostgreSQL 源 引入了对从作为源的 PostgreSQL 的 JSONB 迁移的支持。JSONB 将视为 LOB 数据类型且需要适当 LOB 设置才能使用。
HSTORE 支持 PostgreSQL 源 引入了对从作为源的 PostgreSQL 的 HSTORE 数据类型迁移的支持。HSTORE 将视为 LOB 数据类型且需要适当 LOB 设置才能使用。
作为目标的 Amazon Redshift 的其他 COPY 命令参数

通过使用这些额外连接属性引入了对以下其他复制参数的支持:

  • ACCEPTANYDATE

  • DATEFORMAT

  • TIMEFORMAT

  • EMPTYASNULL

已解决如下所示。

报告的日期 描述
2017 年 12 月 7 日 修复了以下问题:从启用了 TDE 列加密的 Oracle 表读取时完全加载阶段开始前迁移任务被挂起。
2017 年 10 月 3 日 修复了以下问题:PostgreSQL 源中的 JSON 列不会按预期方式进行迁移。
2017 年 10 月 5 日 修复了以下问题:在源 Oracle 实例上未找到存档重做日志文件时 DMS 迁移任务显示 0 源延迟。此修复将线性增加此类条件下的源延迟。

2017 年 11 月 20 日

修复了一个与 LOB 迁移相关的问题,即,PostgreSQL 中的 TEXT 列正在迁移到 Oracle 中的 CLOB 列,其中 LOB 条目中的每个字符之后都有多余的空格。

2017 年 11 月 20 日

修复了底层复制实例从版本 1.9.0 升级到 2.4.0 后迁移任务未按预期方式停止的问题。
2017 年 11 月 30 日 修复了以下问题:DMS 迁移任务未正确捕获由在源 PostgreSQL 实例上运行的复制命令所做的更改。
2017 年 12 月 11 日 修复了以下问题:迁移任务在从 MySQL 源中不存在的二进制日志读取更改数据时发生了故障。
2017 年 12 月 11 日 修复了以下问题:DMS 正在从 MySQL 源中不存在的表读取更改数据。
2017 年 12 月 20 日 包含数据验证功能的几个修复和增强。
2017 年 12 月 22 日 修复了 Amazon Redshift 目标的 maxFileSize 参数的问题。此参数已被错误地解释为字节而不是千字节。
2018 年 1 月 4 日 修复了 Amazon DynamoDB 作为目标迁移任务的内存分配错误。在某些情况下,如果要使用的对象映射包含了排序键,则 AWS DMS 不会分配足够的内存。
2018 年 1 月 10 日 修复以下与作为源的 Oracle 12.2 相关的问题:使用 ROWDEPENDENCIES 时未按预期捕获数据操作语言 (DML) 语句。

AWS Database Migration Service (AWS DMS) 2.4.0 发行说明

下面的表显示了 AWS Database Migration Service (AWS DMS) 2.4.0 版的功能和错误修复。

新功能或增强功能 描述
复制 Oracle 索引表空间 增加了用于支持 Oracle 索引表空间复制的功能。可以在此处查看有关索引表空间的更多详细信息。
对跨账户 S3 访问的支持

增加了支持标准 ACL(预定义的授权)的功能,以支持在 S3 终端节点中进行跨账户访问。有关标准 ACL 的更多详细信息,请参阅 Amazon S3 开发人员指南 中的 标准 ACL

使用:在 S3 终端节点中设置额外连接属性,即 CannedAclForObjects=value。可能值如下所示:

  • NONE

  • PRIVATE

  • PUBLIC_READ

  • PUBLIC_READ_WRITE

  • AUTHENTICATED_READ

  • AWS_EXEC_READ

  • BUCKET_OWNER_READ

  • BUCKET_OWNER_FULL_CONTROL

已解决如下所示。

报告的日期 描述
2017 年 7 月 19 日 修复了以下问题:在源 PostgreSQL 实例用完复制槽时,复制任务永远陷入重试循环。使用此修复后,任务将在失败时显示错误消息,报告 DMS 无法创建逻辑复制槽。
2017 年 27 月 7 日 修复了复制引擎中的一个问题,即,enum MySQL 数据类型导致在出现内存分配错误时任务失败。
2017 年 7 月 8 日 修复了一个问题,在源关闭超过 5 分钟时,该问题导致将 Oracle 作为源的迁移任务出现意外行为。即使在源变为可用后,该问题也会导致持续复制阶段挂起。
2017 年 8 月 24 日 修复了一个 PostgreSQL 目标问题,即,无法正确处理 TIME 数据类型中的小数部分。
2017 年 9 月 14 日 修复了以下问题:在 CDC 阶段进行更新的过程中,将不正确的值写入到基于 PostgreSQL 的目标的 TOAST 字段中。
2017 年 10 月 8 日 修复了 2.3.0 版中的以下问题:MySQL 5.5 源的持续复制无法正常工作。
2017 年 10 月 12 日

修复了在持续复制阶段从 SQL Server 2016 源中读取更改时出现的一个问题。需要在源 SQL Server 终端节点中将该修复与以下额外连接属性一起使用:IgnoreTxnCtxValidityCheck=true

AWS Database Migration Service (AWS DMS) 2.3.0 发行说明

下面的表显示了 AWS Database Migration Service (AWS DMS) 2.3.0 版的功能和错误修复。

新功能或增强功能 描述
将 S3 作为源 将 Amazon S3 作为 AWS DMS 源
将 SQL Azure 作为源 将 Microsoft Azure SQL 数据库作为 AWS DMS 源
平台 – AWS SDK 更新

将复制实例中的 AWS 软件开发工具包更新为 1.0.113。AWS 软件开发工具包用于某些终端节点(如 Amazon Redshift 和 S3),以代表客户将数据上传到这些终端节点。使用不受限制。

Oracle 源:支持复制 Oracle 中的表空间

可以从 Oracle 源中迁移表空间,而无需在迁移之前在目标中预创建表空间。

使用:在 Oracle 源终端节点的额外连接属性中使用 ReadTableSpaceName 设置,并将其设置为 true 以支持表空间复制。默认情况下,该选项设置为 false。

Oracle 源:为将 Oracle 活动 Data Guard 备用实例作为源提供 CDC 支持

能够将 Oracle 活动 Data Guard 的备用实例用作源以复制对受支持目标的持续更改。通过进行此更改,便无需连接到可能处于生产状态的活动数据库。

使用:在 Oracle 源终端节点的额外连接属性中使用 StandbyDelayTime 设置,并指定时间(分钟)以指定备用同步延迟。

PostgreSQL 源:添加 WAL 检测信号

增加了用于从 PostgreSQL 源复制的提前写入日志 (WAL) 检测信号 (运行虚拟查询)。已增加此功能,以便空闲逻辑复制槽不会保留旧 WAL 日志,以免在源上出现存储已满情况。该检测信号将 restart_lsn 保持运行状态,并防止出现存储已满情况。

使用(只要适用)如下所示:

  • HeartbeatEnable 设置为 true(默认值为 false)。

  • HeartbeatSchema 是检测信号项目架构(默认值为 public)。

  • HeartbeatFrequency 是检测信号频率(以分钟为单位,默认值为 5,最小值为 1)

所有终端节点:为同构复制保留转换

2.2.0 版提供了为同构迁移任务执行同类型迁移(从表结构/数据类型角度看)的功能。不过,在启动具有表转换的任务时,DMS 仍会在内部转换数据类型。即使在使用转换时,该功能也会在同构直接迁移目标上保留源的数据类型。

对于所有同构迁移,使用不受限制。

所有终端节点:在找不到表时任务失败

可以在包括转换规则找不到匹配项时强制复制任务失败。

使用:将 FailOnNoTablesCaptured 任务设置设为 true。

Oracle 源:在存档重做日志丢失时停止任务

在源上的存档重做日志丢失时,可以退出重试循环并停止任务。

使用:使用 RetryTimeoutInMinutes 额外连接属性指定停止超时(以分钟为单位)。

已解决如下所示。

报告的日期 描述
2017 年 1 月 5 日

修复了在相同 MySQL 实例 (5.6+ 版) 上启动多个 DMS 任务时出现的服务器 ID 冲突问题

2017 年 2 月 21 日

修复了以下问题:在 MongoDB 中的 _id 是文档中的字符串时,为 nestingLevel=ONE 创建表失败。在进行该修复之前,_id(具有字符串时)将被创建为 LONGTEXT (MySQL) 或 CLOB (Oracle),这会导致在尝试将其指定为主键时失败。

2017 年 5 月 5 日 修复了以下问题:在 Oracle 源中使用完整 LOB 模式时,NULL LOB 将迁移为空。
2017 年 5 月 5 日

修复了以下问题:如果自定义 CDC 启动时间在 24 小时之前,将 MySQL 作为源的任务将失败并出现太多的连接错误。

2017 年 5 月 24 日 修复了以下问题:在复制实例上一次性启动多个任务时,任务启动时间太长。
2017 年 7 月 7 日

修复了导致出现有关使用所有可用连接槽的 PostgreSQL 错误消息的问题。现在,在用完到 PostgreSQL 的所有可用连接槽并且 DMS 无法获取更多槽以继续复制时,将在默认日志记录级别记录一个错误。

2017 年 7 月 19 日

修复了以下问题:未正确将更新和删除从 Oracle 迁移到 DynamoDB。

2017 年 8 月 8 日

修复了一个问题,在迁移期间 Oracle 源数据库实例关闭时间超过 5 分钟时,该问题导致在 CDC 期间出现意外行为。

2017 年 12 月 8 日

修复了以下问题:在插入到 Amazon Redshift 内的非 varchar 数据类型中时,将任何源中的 null 作为 amazon_null 迁移。

2017 年 8 月 27 日

对于 MongoDB,修复了以下问题:在 nestingLevel=NONE_id 不是 ObjectId 时,完全加载任务崩溃。