本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 AWS DMS 从一个或多个 Microsoft SQL Server 数据库中迁移数据。将 SQL Server 数据库作为源时,您可以将数据迁移到另一个 SQL Server 数据库或其他 AWS DMS 支持的数据库。
有关 AWS DMS 支持作为源的 SQL Server 版本的信息,请参阅 的来源 AWS DMS。
源 SQL Server 数据库可安装在您网络中的任意计算机上。在与 AWS DMS 一起使用时,需要 SQL Server 账户,该账户对源数据库具有与选定任务类型相对应的访问权限。有关更多信息,请参阅 SQL Server 任务权限。
AWS DMS 支持从 SQL Server 的命名实例中迁移数据。当您创建源终端节点时,您可以在服务器名称中使用以下表示法。
IPAddress\InstanceName
例如,以下是正确的源终端节点服务器名称。在这里,名称的第一部分是服务器的 IP 地址,第二部分是 SQL Server 实例名称 (本例中为 SQLTest)。
10.0.0.25\SQLTest
此外,获取 SQL Server 的命名实例侦听的端口号,并使用它来配置 AWS DMS 源终端节点。
注意
端口 1433 是 Microsoft SQL Server 的默认端口。但是,也经常使用每次启动 SQL Server 时更改的动态端口,以及用于通过防火墙连接到 SQL Server 的特定静态端口号。因此,当您创建 AWS DMS 源端点时,需要知道 SQL Server 命名实例的实际端口号。
可以使用 SSL 加密 SQL Server 终端节点与复制实例之间的连接。有关将 SSL 用于 SQL Server 终端节点的更多信息,请参阅SSL与一起使用 AWS Database Migration Service。
您可以使用 CDC 从 SQL Server 数据库进行持续迁移。有关为 CDC 配置源 SQL Server 数据库的信息,请参阅捕获数据更改,以便从 SQL Server 进行持续复制。
有关使用 SQL Server 源数据库和 AWS DMS 的其他详细信息,请参阅以下内容。
主题
将 SQL Server 作为 AWS DMS 的源的限制
将 SQL Server 数据库作为 AWS DMS 源时,存在以下限制:
-
列的身份属性不迁移到目标数据库列。
-
SQL Server 端点不支持使用包含稀疏列的表。
-
不支持 Windows 身份验证。
-
不复制对 SQL Server 中计算字段的更改。
-
不支持临时表。
-
不支持 SQL Server 分区切换。
-
在使用 WRITETEXT 和 UPDATETEXT 实用工具时,AWS DMS 不捕获对源数据库应用的事件。
-
不支持以下数据操作语言(DML)模式。
SELECT * INTO
new_table
FROMexisting_table
-
在将 SQL Server 作为源时,不支持列级别加密。
-
AWS DMS 在作为源的 SQL Server 2008 或 SQL Server 2008 R2 上不支持服务器级别审核。这是因为 SQL Server 2008 和 2008 R2 存在已知问题。例如,运行以下命令将导致 AWS DMS 失败。
USE [master] GO ALTER SERVER AUDIT [my_audit_test-20140710] WITH (STATE=on) GO
-
使用 SQL Server 作为源时,在完整 LOB 模式下不支持几何列。应改用受限 LOB 模式,或将
InlineLobMaxSize
任务设置设为使用内联 LOB 模式。 -
在复制任务中使用 Microsoft SQL Server 源数据库时,如果删除该任务,则不会删除 SQL Server Replication Publisher 定义。Microsoft SQL Server 系统管理员必须从 Microsoft SQL Server 删除这些定义。
-
仅完全加载任务支持从架构绑定和非架构绑定的视图迁移数据。
-
不支持使用 sp_rename 重命名表(例如,
sp_rename 'Sales.SalesRegion', 'SalesReg;)
-
不支持使用 sp_rename 重命名列(例如,
sp_rename 'Sales.Sales.Region', 'RegID', 'COLUMN';
) AWS DMS 不支持通过更改处理来设置和取消设置列默认值(使用带
ALTER COLUMN SET DEFAULT
子句的ALTER TABLE
语句)。-
AWS DMS 不支持通过更改处理来设置列的可空性(使用带
ALTER COLUMN [SET|DROP] NOT NULL
子句的ALTER TABLE
语句)。 -
在 SQL Server 2012 和 SQL Server 2014 中,将 DMS 复制与可用性组一起使用时,无法将分发数据库放入可用性组。SQL 2016 支持将分发数据库放入可用性组,但合并、双向或点对点复制拓扑中使用的分发数据库除外。
-
对于分区表,AWS DMS 不支持为每个分区设置不同的数据压缩设置。
-
将值插入 SQL Server 空间数据类型(GEOGRAPHY 和 GEOMETRY)时,可以忽略空间参考系统标识符(SRID)属性或指定其他数字。复制具有空间数据类型的表时,AWS DMS 将使用默认 SRID(0 代表 GEOMETRY,4326 代表 GEOGRAPHY)替换 SRID。
-
如果您的数据库未配置为进行 MS-REPLICATION 或 MS-CDC,您仍然可以捕获没有主键的表,但只捕获 INSERT/DELETE DML 事件。将忽略 UPDATE 和 TRUNCATE TABLE 事件。
-
不支持列存储索引。
-
不支持内存优化表(使用内存中 OLTP)。
-
当复制主键由多个列组成的表时,不支持在完全加载期间更新主键列。
-
不支持延迟的耐久性。
-
由于 RDS 执行备份的方式,
readBackupOnly=Y
端点设置(额外连接属性)在 RDS for SQL Server 源实例上不起作用。 -
EXCLUSIVE_AUTOMATIC_TRUNCATION
在 Amazon RDS SQL Server 源实例上不起作用,因为 RDS 用户无权运行 SQL Server 存储过程sp_repldone
。 AWS DMS 不捕获截断命令。
-
AWS DMS 不支持从启用了加速数据库恢复(ADR)的数据库进行复制。
-
AWS DMS 不支持在单个事务中捕获数据定义语言(DDL)和数据操作语言(DML)语句。
-
AWS DMS 不支持复制数据层应用程序包(DACPAC)。
-
当您将更改应用于目标数据库时,涉及主键或唯一索引并更新多个数据行的 UPDATE 语句可能会导致冲突。例如,当目标数据库通过 INSERT 和 DELETE 语句而不是单个 UPDATE 语句应用更新时,可能会发生这种情况。在批量优化应用模式中,该表可能会被忽略。在事务应用模式下,UPDATE 操作可能会导致违反约束。要避免出现此问题,请重新加载相关表。或者,在 Apply Exceptions 控制表(
dmslogs.awsdms_apply_exceptions
)中找到有问题的记录,然后在目标数据库中手动对其进行编辑。有关更多信息,请参阅 更改处理优化设置。 -
AWS DMS 不支持复制名称包含以下集合中的特殊字符的表和架构。
\\ -- \n \" \b \r ' \t ;
-
不支持数据掩蔽。AWS DMS 在不进行掩蔽的情况下迁移已掩蔽的数据。
-
AWS DMS 最多复制 32767 个带主键的表,每个表最多可复制 1000 列。这是因为 AWS DMS 会为每个复制的表创建一个 SQL Server 复制项目,而 SQL Server 复制项目存在这些限制。
-
使用更改数据捕获(CDC)时,必须将构成唯一索引的所有列定义为
NOT NULL
。如果不满足此要求,将导致出现 SQL Server 系统错误 22838。 如果 SQL Server 将事件从活动事务日志归档到备份日志,或者将其从活动事务日志中截断,则可能丢失事件。
访问备份事务日志时适用以下限制:
-
不支持加密的备份。
-
不支持存储在 URL 或 Windows Azure 上的备份。
-
AWS DMS 不支持从备用共享文件夹直接处理文件级别的事务日志备份。
对于除 Amazon RDS for Microsoft SQL Server 以外的云 SQL Server 源,AWS DMS 仅支持活动事务日志的持续复制(CDC)。您不能将备份日志用于 CDC。如果 SQL Server 将事件从活动事务日志归档到备份日志,或者在 DMS 读取之前将事件从活动事务日志中截断,则可能丢失事件。
对于 Amazon RDS for Microsoft SQL Server 源,AWS DMS 3.5.2 及更低版本仅支持活动事务日志的持续复制(CDC),因为 DMS 无法通过 CDC 访问备份日志。如果 RDS for SQL Server 将事件从活动事务日志归档到备份日志,或者在 DMS 读取之前将事件从活动事务日志中截断,则可能丢失事件。此限制不适用于 AWS DMS 版本 3.5.3 及更高版本。
SQL Server 任务权限
仅完全加载任务的权限
要执行仅完全加载的任务,需要以下权限。请注意,AWS DMS 不会创建 dms_user
登录角色。有关为 SQL Server 创建登录角色的信息,请参阅使用 Microsoft SQL Server 创建数据库用户。
USE db_name;
CREATE USER dms_user FOR LOGIN dms_user;
ALTER ROLE [db_datareader] ADD MEMBER dms_user;
GRANT VIEW DATABASE STATE to dms_user;
GRANT VIEW DEFINITION to dms_user;
USE master;
GRANT VIEW SERVER STATE TO dms_user;
持续复制任务权限
无论是否使用 sysadmin
角色,都可以使用 DMS 将自管理 SQL Server 实例配置为持续复制。对于无法授予 sysadmin
角色的 SQL Server 实例,请确保 DMS 用户具有如下所述的权限。
从自管理 SQL Server 数据库进行持续复制所需的设置权限
使用 SQL Server Management Studio(SSMS)或如前面的仅完全加载任务的权限中所述,创建采用密码身份验证的新 SQL Server 账户,例如
self_managed_user
。运行以下
GRANT
命令:GRANT VIEW SERVER STATE TO
self_managed_user
; USE MSDB; GRANT SELECT ON MSDB.DBO.BACKUPSET TOself_managed_user
; GRANT SELECT ON MSDB.DBO.BACKUPMEDIAFAMILY TOself_managed_user
; GRANT SELECT ON MSDB.DBO.BACKUPFILE TOself_managed_user
; USE db_name; CREATE USERself_managed_user
FOR LOGINself_managed_user
; ALTER ROLE [db_owner] ADD MEMBERself_managed_user
; GRANT VIEW DEFINITION toself_managed_user
;除上述权限外,用户还需要以下权限之一:
用户必须是
sysadmin
固定服务器角色的成员配置和权限如在可用性组环境中的 SQL Server 上设置持续复制:无 sysadmin 角色或在独立 SQL Server 上设置持续复制:不使用 sysadmin 角色中所述,具体取决于您的源配置。
从云 SQL Server 数据库进行持续复制所需的设置权限
云托管的 SQL Server 实例是在 Amazon RDS for Microsoft SQL Server、Azure SQL 托管实例或 DMS 支持的任何其他托管云 SQL Server 实例上运行的实例。
使用 SQL Server Management Studio(SSMS)或如前面的仅完全加载任务的权限中所述,创建采用密码身份验证的新 SQL Server 账户,例如 rds_user
。
运行以下授权命令。
GRANT VIEW SERVER STATE TO rds_user;
USE MSDB;
GRANT SELECT ON MSDB.DBO.BACKUPSET TO rds_user;
GRANT SELECT ON MSDB.DBO.BACKUPMEDIAFAMILY TO rds_user;
GRANT SELECT ON MSDB.DBO.BACKUPFILE TO rds_user;
USE db_name;
CREATE USER rds_user FOR LOGIN rds_user;
ALTER ROLE [db_owner] ADD MEMBER rds_user;
GRANT VIEW DEFINITION to rds_user;
对于 Amazon RDS for Microsoft SQL Server 源,DMS 版本 3.5.3 及更高版本支持从事务日志备份中读取。为确保 DMS 能够访问日志备份,除上述权限外,还要授予 master
用户权限或 RDS SQL Server 源上的以下权限:
//DMS 3.5.3 version onwards
GRANT EXEC ON msdb.dbo.rds_dms_tlog_download TO rds_user;
GRANT EXEC ON msdb.dbo.rds_dms_tlog_read TO rds_user;
GRANT EXEC ON msdb.dbo.rds_dms_tlog_list_current_lsn TO rds_user;
GRANT EXEC ON msdb.dbo.rds_task_status TO rds_user;
在 SQL Server 源中使用持续复制(CDC)的先决条件
您可以针对本地或 Amazon EC2 上的自管理 SQL Server 数据库、诸如 Amazon RDS 之类的云数据库或者 Microsoft Azure SQL 托管实例使用持续复制(更改数据捕获(CDC))。
尤其在对作为 AWS DMS 源的 SQL Server 数据库使用持续复制时,存在以下要求:
-
必须配置 SQL Server 进行完整备份,并且您必须在开始复制数据之前先进行一次备份。
-
恢复模式必须设置为 Bulk logged 或 Full。
-
不支持 SQL Server 备份到多个磁盘。如果定义备份以将数据库备份写入到不同磁盘上的多个文件中,则 AWS DMS 无法读取数据并且 AWS DMS 任务失败。
-
对于自管理 SQL Server 源,在您删除任务时,DMS CDC 任务中使用的源数据库的 SQL Server Replication Publisher 定义不会被删除。SQL Server 系统管理员必须从 SQL Server 删除自管理源的这些定义。
-
在 CDC 期间,AWS DMS 需要查找 SQL Server 事务日志备份以读取更改。AWS DMS 不支持使用通过第三方备份软件以非本机格式创建的 SQL Server 事务日志备份。要支持采用本机格式并且使用第三方备份软件创建的事务日志备份,请将
use3rdPartyBackupDevice=Y
连接属性添加到源端点。 -
对于自管理 SQL Server 源,请注意,在新创建的表发布前,SQL Server 不会捕获对它们的更改。在将表添加到 SQL Server 源后,AWS DMS 将管理创建发布。但是,该过程可能需要几分钟时间。不会将在该延迟期间对新创建的表执行的操作捕获或复制到目标中。
-
AWS DMS 更改数据捕获要求在 SQL Server 中启用完整事务日志记录。要在 SQL Server 中启用完整事务日志记录,请启用 MS-REPLICATION 或 CHANGE DATA CAPTURE(CDC)。
-
在 MS CDC 捕获作业处理这些更改之前,SQL Server tlog 条目不会被标记为可重复使用。
-
内存优化表上不支持 CDC 操作。该限制适用于 SQL Server 2014(在此版本中首次引入该功能)及更高版本。
默认情况下,AWS DMS 更改数据捕获需要将 Amazon EC2 或本地 SQL Server 上的分布数据库作为源。因此,请确保在为带有主键的表配置 MS 复制时已激活分发服务器。
支持的 SQL Server 压缩方法
请注意以下有关 AWS DMS 支持的 SQL Server 压缩方法的内容:
AWS DMS 在 SQL Server 版本 2008 及更高版本中支持行/页压缩。
AWS DMS 不支持 Vardecimal 存储格式。
AWS DMS 不支持稀疏列和列式结构压缩。
使用自管理 SQL Server AlwaysOn 可用性组
SQL Server Always On 可用性组配有高可用性和灾难恢复解决方案,提供数据库镜像的企业级替代功能。
在 AWS DMS 中,您可以迁移单个主可用性组或辅助可用性组副本中的更改。
使用主可用性组副本
要将主可用性组作为 AWS DMS 中的源,请执行以下操作:
为可用性副本中的所有 SQL Server 实例启用分发选项。有关更多信息,请参阅 在自管理 SQL Server 上设置持续复制。
在 AWS DMS 控制台中,打开 SQL Server 源数据库设置。对于服务器名称,请指定为可用性组侦听器配置的域名服务(DNS)名称或 IP 地址。
在首次启动 AWS DMS 任务时,可能需要比平常更长的时间。这种缓慢是因为可用性组服务器正在复制表项目的创建。
使用辅助可用性组副本
要将辅助可用性组作为 AWS DMS 中的源,请执行以下操作:
-
使用与 AWS DMS 源端点用户相同的凭证连接到各个副本。
-
确保您的 AWS DMS 复制实例可以解析所有现有副本的 DNS 名称并与之连接。您可以使用以下 SQL 查询来获取所有副本的 DNS 名称。
select ar.replica_server_name, ar.endpoint_url from sys.availability_replicas ar JOIN sys.availability_databases_cluster adc ON adc.group_id = ar.group_id AND adc.database_name = '<source_database_name>';
创建源端点时,请为端点的服务器名称或端点密钥的服务器地址指定可用性组侦听器的 DNS 名称。有关可用性组侦听器的更多信息,请参阅 SQL Server 文档中的可用性组侦听器是什么?
。 您可以使用公有 DNS 服务器或本地 DNS 服务器来解析可用性组侦听器、主副本和辅助副本。要使用本地 DNS 服务器,请配置 Amazon Route 53 Resolver。有关更多信息,请参阅 使用您自己的本地名称服务器。
请将以下额外连接属性添加到您的源端点。
额外连接属性 值 注意 applicationIntent
ReadOnly
如果没有此 ODBC 设置,复制任务将路由到主可用性组副本。有关更多信息,请参阅 SQL Server 文档中的对高可用性、灾难恢复的 SQL Server Native Client 支持 。 multiSubnetFailover
yes
有关更多信息,请参阅 SQL Server 文档中的对高可用性、灾难恢复的 SQL Server Native Client 支持 。 alwaysOnSharedSynchedBackupIsEnabled
false
有关更多信息,请参阅 使用 SQL Server 作为 AWS DMS 源时的端点设置。 activateSafeguard
false
有关更多信息,请参阅下面的限制。 setUpMsCdcForTables
false
有关更多信息,请参阅下面的限制。 在您可用性组的所有副本上启用分发选项。将所有节点添加到分发服务器列表中。有关更多信息,请参阅 设置分发。
对主读写副本运行以下查询以启用数据库的发布。您只对数据库运行一次此查询。
sp_replicationdboption @dbname = N'<source DB name>', @optname = N'publish', @value = N'true';
限制
以下是使用辅助可用性组副本的限制:
使用只读可用性组副本作为源时,AWS DMS 不支持 Safeguard。有关更多信息,请参阅 使用 SQL Server 作为 AWS DMS 源时的端点设置。
使用只读可用性组副本作为源时,AWS DMS 不支持
setUpMsCdcForTables
额外连接属性。有关更多信息,请参阅 使用 SQL Server 作为 AWS DMS 源时的端点设置。-
从 3.4.7 版本开始,AWS DMS 可以使用自管理的辅助可用性组副本作为持续复制(更改数据捕获或 CDC)的源数据库。不支持云 SQL Server 多可用区只读副本。如果您使用 AWS DMS 的早期版本,请确保使用主可用性组副本作为 CDC 的源数据库。
失效转移到其他节点
如果您将端点的 ApplicationIntent
额外连接属性设置为 ReadOnly
,您的 AWS DMS 任务将连接到只读路由优先级最高的只读节点。当优先级最高的只读节点不可用时,它会失效转移到可用性组中的其他只读节点。如果未设置 ApplicationIntent
,您的 AWS DMS 任务将仅连接到可用性组中的主(读/写)节点。
使用 SQL Server 作为 AWS DMS 源时的端点设置
您可以使用端点设置来配置 SQL Server 源数据库,这与使用额外连接属性类似。您可以在使用 AWS DMS 控制台创建源端点时指定端点设置,或者在 AWS CLI 中使用符合 --microsoft-sql-server-settings '{"
JSON 语法的 EndpointSetting"
:
"value"
, ...
}'create-endpoint
命令指定端点设置。
下表显示了将 SQL Server 作为源时您可以使用的端点设置。
名称 | 描述 |
---|---|
|
此属性可开启或关闭 Safeguard。有关 Safeguard 的更多信息,请参阅下文的 默认值: 有效值:{ 例如: |
AlwaysOnSharedSynchedBackupIsEnabled |
从作为 Always On 可用性组集群的一部分托管的 SQL Server 源数据库进行迁移时,此属性会调整 AWS DMS 的行为。 AWS DMS 增强了对配置为在 Always On 集群中运行的 SQL Server 源数据库的支持。在这种情况下,AWS DMS 会尝试跟踪事务备份是否是在 Always On 集群中的节点(而非托管源数据库实例的节点)上发生。迁移任务启动时,AWS DMS 会尝试连接集群中的每个节点,但如果无法连接到任一节点,任务则会失败。 如果您需要 AWS DMS 在 Always On 集群中轮询所有的节点进行事务备份,则将此属性设置为 默认值: 有效值: 示例: |
|
使用此 ODBC 驱动程序属性设置,SQL Server 可将您的复制任务路由到优先级最高的只读节点。如果不使用此设置,SQL Server 会将您的复制任务路由到主读写节点。 |
|
在不使用 sysadmin 用户的情况下在独立 SQL 服务器上设置持续复制时,请使用此端点设置。AWS DMS 版本 3.4.7 及更高版本支持使用此参数。有关在独立 SQL Server 上设置持续复制的信息,请参阅捕获数据更改,以便从 SQL Server 进行持续复制。 默认值: 有效值: 例如: |
|
使用此额外连接属性(ECA)设置 SQL Server 实例的客户端语句超时时间(以秒为单位)。默认值为 60 秒。 例如: |
|
如果设置为 默认值: 有效值: 示例: |
|
强制在内联 LOB 上执行 LOB 查找。 默认值: 有效值: 例如: |
|
借助此 ODBC 驱动程序属性,DMS 可在可用性组失效转移时连接到新的主服务器。此属性专为连接中断或侦听器 IP 地址不正确的情况而设计。在这些情况下,AWS DMS 会尝试连接与可用性组侦听器关联的所有 IP 地址。 |
|
使用此属性需要 sysadmin 权限。当此属性设置为 有效值: 例如: 注意:由于 RDS 执行备份的方式,此参数在 Amazon RDS SQL Server 源实例上不起作用。 |
|
为实现最佳性能,AWS DMS 尝试从活动事务日志 (TLOG) 捕获所有未读取的更改。不过,有时由于截断,有效的 TLOG 可能未包含所有未读取的更改。在出现此情况时,AWS DMS 将访问日志备份以捕获缺少的更改。为了最大限度减小访问日志备份的需求,AWS DMS 使用下列方法之一阻止截断:
默认值: 有效值:{ 例如: |
|
此属性可为源数据库和任务映射中未启用 MS-Replication 的表启用 MS-CDC。将此值设置为 有效值:{ 例如: |
|
表示用于获取 CDC 数据的模式。 默认值: 有效值: 例如: |
|
当此属性设置为 |
SQL Server 的源数据类型
将 SQL Server 作为 AWS DMS 源的数据迁移支持大多数 SQL Server 数据类型。下表列出了使用 AWS DMS 时支持的 SQL Server 源数据类型以及来自 AWS DMS 数据类型的默认映射。
有关如何查看目标中映射的数据类型的信息,请参阅有关所使用的目标终端节点的部分。
有关 AWS DMS 数据类型的其他信息,请参阅AWS Database Migration Service 的数据类型。
SQL Server 数据类型 |
AWS DMS 数据类型 |
---|---|
BIGINT |
INT8 |
BIT |
BOOLEAN |
DECIMAL |
NUMERIC |
INT |
INT4 |
MONEY |
NUMERIC |
NUMERIC (p,s) |
NUMERIC |
SMALLINT |
INT2 |
SMALLMONEY |
NUMERIC |
TINYINT |
UINT1 |
REAL |
REAL4 |
FLOAT |
REAL8 |
DATETIME |
DATETIME |
DATETIME2(SQL Server 2008 及更高版本) |
DATETIME |
SMALLDATETIME |
DATETIME |
DATE |
DATE |
TIME |
TIME |
DATETIMEOFFSET |
WSTRING |
CHAR |
string |
VARCHAR |
string |
VARCHAR (max) |
CLOB TEXT 要将此数据类型用于 AWS DMS,必须允许对特定任务使用 CLOB 数据类型。 对于 SQL Server 表,AWS DMS 将为 UPDATE 语句更新目标中的 LOB 列,但不更改 SQL Server 中的 LOB 列的值。 在 CDC 期间,AWS DMS 仅在包含主键的表中支持 CLOB 数据类型。 |
NCHAR |
WSTRING |
NVARCHAR (length) |
WSTRING |
NVARCHAR (max) |
NCLOB NTEXT 要将此数据类型用于 AWS DMS,必须允许对特定任务使用 SupportLobs。有关启用 Lob 支持的更多信息,请参阅在 AWS DMS 任务中设置对源数据库的LOB支持。 对于 SQL Server 表,AWS DMS 将为 UPDATE 语句更新目标中的 LOB 列,但不更改 SQL Server 中的 LOB 列的值。 在 CDC 期间,AWS DMS 仅在包含主键的表中支持 CLOB 数据类型。 |
BINARY |
BYTES |
VARBINARY |
BYTES |
VARBINARY (max) |
BLOB IMAGE 对于 SQL Server 表,AWS DMS 将为 UPDATE 语句更新目标中的 LOB 列,但不更改 SQL Server 中的 LOB 列的值。 要将此数据类型用于 AWS DMS,必须允许对特定任务使用 BLOB 数据类型。 AWS DMS 仅在包含主键的表中支持 BLOB 数据类型。 |
TIMESTAMP |
BYTES |
UNIQUEIDENTIFIER |
string |
HIERARCHYID |
在复制到 SQL Server 目标终端节点时,使用 HIERARCHYID。 在复制到所有其他目标终端节点时,使用 WSTRING (250)。 |
XML |
NCLOB 对于 SQL Server 表,AWS DMS 将为 UPDATE 语句更新目标中的 LOB 列,但不更改 SQL Server 中的 LOB 列的值。 要将此数据类型用于 AWS DMS,必须允许对特定任务使用 NCLOB 数据类型。 在 CDC 期间,AWS DMS 仅在包含主键的表中支持 NCLOB 数据类型。 |
GEOMETRY |
在复制到支持此数据类型的目标终端节点时,使用 GEOMETRY。 在复制到不支持此数据类型的目标终端节点时,使用 CLOB。 |
GEOGRAPHY |
在复制到支持此数据类型的目标终端节点时,使用 GEOGRAPHY。 在复制到不支持此数据类型的目标终端节点时,使用 CLOB。 |
AWS DMS 不支持包含以下数据类型的字段的表。
-
CURSOR
-
SQL_VARIANT
-
TABLE
注意
根据用户定义的数据类型的基类型来支持这些类型。例如,基于 DATETIME 的用户定义的数据类型将作为 DATETIME 数据类型进行处理。