源库为SQL Server的同步方案概览
根据同步方案,查看同步任务的注意事项及限制:
说明 DTS默认同步到目标数据库中时会取消外键约束,因此源数据库的级联、删除等操作不会同步到如下目标数据库:
SQL Server间的同步
具体注意事项及限制如下:
类型 | 说明 |
源库限制 | 待同步的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据。 若同步对象为表级别,且需进行编辑(如表列名映射),单次同步任务的表数量超过5000或时,建议您拆分待同步的表,分批配置多个任务,或者配置整库的同步任务,否则任务提交后可能会显示请求报错。 单次同步任务仅支持同步至多10个数据库。当超出数量限制,会出现稳定性和性能问题的风险,此时建议您拆分待同步的表,分批配置任务。 不支持同步内存优化表。 DTS是用fn_log函数获取源库日志,而该函数有一定的性能瓶颈,请不要过早清理源库日志,否则可能会导致任务失败。 数据日志: 需开启,备份模式设置为Full,且已成功执行过全量物理备份。 如为增量同步任务,DTS要求源数据库的数据日志保存24小时以上,如为全量同步和增量同步任务,DTS要求源数据库的数据日志至少保留7天以上(您可在全量同步完成后将数据日志保存时间设置为24小时以上),否则DTS可能因无法获取数据日志而导致任务失败,极端情况下甚至可能会导致数据不一致或丢失。由于您所设置的数据日志保存时间低于DTS要求的时间进而导致的问题,不在DTS的SLA保障范围内。
若源库待同步的表需要开启CDC,则需满足以下条件,否则预检查将会失败。 sys.sysservers视图的srvname字段与SERVERPROPERTY函数返回值保持一致。 若源库是自建SQL Server,则数据库所有者需是sa;若源库是RDS SQL Server,则数据库所有者需是sqlsa。 若源库是企业版,则需为2008及以上版本。 若源库是标准版,则需为2016SP1及以上版本。 若源库为SQL Server 2017版(包括标准版和企业版),建议升级版本。
若源库为只读实例,则不支持同步DDL操作。 在混合式日志解析模式下,源库不支持连续执行(时间间隔小于10分钟)多个加减列操作。例如,连续执行如下SQL会导致任务报错。 ALTER TABLE test_table DROP COLUMN Flag;
ALTER TABLE test_table ADD Remark nvarchar(50) not null default('');
在库表结构同步和全量同步阶段,请勿执行库或表结构变更的DDL操作,否则会导致数据同步任务失败。 若源库为Web版的RDS SQL Server,则在配置任务时SQLServer增量同步模式需选择为解析源库日志做增量同步(不支持堆表)。
|
其他限制 | 不支持同步数据类型为CURSOR、ROWVERSION、SQL_VARIANT、HIERARCHYID、POLYGON、GEOMETRY和GEOGRAPHY的数据。 如需跨版本同步,请提前确认兼容性。 若在对象配置阶段将SQLServer增量同步模式选择为解析源库日志做增量同步(不支持堆表),则待同步的表需具备聚集索引,且聚集索引中需包含主键列;待同步的表不支持堆表、无主键表、压缩表、含计算列表。在混合式日志解析模式下,没有如上限制。 若在对象配置阶段将SQLServer增量同步模式选择为非堆表用日志解析增量同步,堆表用CDC增量同步(混合式日志解析),则DTS的增量同步依赖CDC组件,因此请确保源库CDC作业正常运行,否则会导致DTS任务失败。 若在对象配置阶段将SQLServer增量同步模式选择为轮询查询CDC实例做增量同步,则还有如下限制: DTS实例使用的源库账号需具备开启CDC的权限。开启库级别CDC需要使用sysadmin角色权限的账号,开启表级别CDC需要高权限账号。 DTS是通过轮询方式去源库查询每张表的CDC实例(CDC Instance)以获取增量数据,因此源库待同步表的数量不能超过1000张,否则可能会导致任务延迟或不稳定。 不支持连续执行加减列操作(一分钟内执行超过两次加列或减列的DDL),否则可能会导致任务失败。 不支持对源库CDC实例(CDC Instance)做变更操作,否则可能会导致任务失败或数据丢失。
为保障增量数据同步延迟的准确性,解析源端日志做增量同步模式,DTS会在源库中创建触发器dts_cdc_sync_ddl、心跳表dts_sync_progress、DDL存储表dts_cdc_ddl_history;混合式增量同步模式,DTS会在源库中创建触发器dts_cdc_sync_ddl、心跳表dts_sync_progress、DDL存储表dts_cdc_ddl_history以及会开启库级别CDC和部分表CDC,建议源端开启CDC的表数据变更量不超过1000 RPS。 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执行数据同步。否则全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。 全量初始化会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。 在DTS同步期间,不允许有除DTS外的数据写入目标库,否则会导致源库与目标库数据不一致。例如,有除DTS外的数据写入目标库时,使用DMS执行在线DDL变更,可能引起目标库数据丢失。 若同步任务包含增量数据同步,则不支持重建索引操作,否则可能造成任务失败,甚至数据丢失。 若单次同步任务中开启CDC的表数量大于1000,则预检查会失败。 如需进行增量同步,请禁用目标库中已启用的触发器和外键,否则会导致同步任务失败。 若您需要使用修改同步对象功能,则不支持新增或移除数据库的操作。 若实例运行失败,DTS技术支持人员将在8小时内尝试恢复该实例。在恢复失败实例的过程中,可能会对该实例进行重启、调整参数等操作。
说明 在调整参数时,仅会修改实例的参数,不会对数据库中的参数进行修改。可能修改的参数,包括但不限于修改实例参数中的参数。
|
特殊情况 | 源实例为RDS SQL Server时,DTS会在源RDS SQL Server实例中创建一个rdsdt_dtsacct 账号用于数据同步,请勿在任务运行过程中对该账号进行删除或密码修改操作,否则可能会导致任务失败。具体详情,请参见系统账号说明。 |
RDS SQL Server同步至MySQL
当目标为MySQL,包括自建MySQL、RDS MySQL时,具体注意事项及限制如下:
类型 | 说明 |
源库限制 | 待同步的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据。 若同步对象为表级别,且需进行编辑(如表列名映射),单次同步任务的表数量超过5000或时,建议您拆分待同步的表,分批配置多个任务,或者配置整库的同步任务,否则任务提交后可能会显示请求报错。 单次同步任务仅支持同步至多10个数据库。当超出数量限制,会出现稳定性和性能问题的风险,此时建议您拆分待同步的表,分批配置任务。 DTS是用fn_log函数获取源库日志,而该函数有一定的性能瓶颈,请不要过早清理源库日志,否则可能会导致任务失败。 数据日志: 需开启,备份模式设置为Full,且已成功执行过全量物理备份。 如为增量同步任务,DTS要求源数据库的数据日志保存24小时以上,如为全量同步和增量同步任务,DTS要求源数据库的数据日志至少保留7天以上(您可在全量同步完成后将数据日志保存时间设置为24小时以上),否则DTS可能因无法获取数据日志而导致任务失败,极端情况下甚至可能会导致数据不一致或丢失。由于您所设置的数据日志保存时间低于DTS要求的时间进而导致的问题,不在DTS的SLA保障范围内。
若源库待同步的表需要开启CDC,则需满足以下条件,否则预检查将会失败。 sys.sysservers视图的srvname字段与SERVERPROPERTY函数返回值保持一致。 若源库是自建SQL Server,则数据库所有者需是sa;若源库是RDS SQL Server,则数据库所有者需是sqlsa。 若源库是企业版,则需为2008及以上版本。 若源库是标准版,则需为2016SP1及以上版本。 若源库为SQL Server 2017版(包括标准版和企业版),建议升级版本。
若源库为只读实例,则不支持同步DDL操作。 在混合式日志解析模式下,源库不支持连续执行(时间间隔小于10分钟)多个加减列操作。例如,连续执行如下SQL会导致任务报错。 ALTER TABLE test_table DROP COLUMN Flag;
ALTER TABLE test_table ADD Remark nvarchar(50) not null default('');
在库表结构同步和全量同步阶段,请勿执行库或表结构变更的DDL操作,否则会导致数据同步任务失败。 若源库为Web版的RDS SQL Server,则在配置任务时SQLServer增量同步模式需选择为解析源库日志做增量同步(不支持堆表)。
|
其他限制 | 同步对象的要求: 若在对象配置阶段将SQLServer增量同步模式选择为解析源库日志做增量同步(不支持堆表),则待同步的表需具备聚集索引,且聚集索引中需包含主键列;待同步的表不支持堆表、无主键表、压缩表、含计算列表。在混合式日志解析模式下,没有如上限制。 若在对象配置阶段将SQLServer增量同步模式选择为非堆表用日志解析增量同步,堆表用CDC增量同步(混合式日志解析),则DTS的增量同步依赖CDC组件,因此请确保源库CDC作业正常运行,否则会导致DTS任务失败。 若在对象配置阶段将SQLServer增量同步模式选择为轮询查询CDC实例做增量同步,则还有如下限制: DTS实例使用的源库账号需具备开启CDC的权限。开启库级别CDC需要使用sysadmin角色权限的账号,开启表级别CDC需要高权限账号。 DTS是通过轮询方式去源库查询每张表的CDC实例(CDC Instance)以获取增量数据,因此源库待同步表的数量不能超过1000张,否则可能会导致任务延迟或不稳定。 不支持连续执行加减列操作(一分钟内执行超过两次加列或减列的DDL),否则可能会导致任务失败。 不支持对源库CDC实例(CDC Instance)做变更操作,否则可能会导致任务失败或数据丢失。
暂不支持复杂的同步DDL操作。 为保障增量数据同步延迟的准确性,解析源端日志做增量同步模式,DTS会在源库中创建触发器dts_cdc_sync_ddl、心跳表dts_sync_progress、DDL存储表dts_cdc_ddl_history;混合式增量同步模式,DTS会在源库中创建触发器dts_cdc_sync_ddl、心跳表dts_sync_progress、DDL存储表dts_cdc_ddl_history以及会开启库级别CDC和部分表CDC,建议源端开启CDC的表数据变更量不超过1000 RPS。 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执行数据同步。否则全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。 全量初始化会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。 在DTS同步期间,不允许有除DTS外的数据写入目标库,否则会导致源库与目标库数据不一致。例如,有除DTS外的数据写入目标库时,使用DMS执行在线DDL变更,可能引起目标库数据丢失。 若同步任务包含增量数据同步,则不支持重建索引操作,否则可能造成任务失败,甚至数据丢失。 若单次同步任务中开启CDC的表数量大于1000,则预检查会失败。 若目标库的DDL写入失败,DTS任务会继续运行,您需要在任务日志中查看执行失败的DDL。查看任务日志的方法,请参见查询任务日志。 若您将列名仅大小写不同的字段写入到目标MySQL数据库的同一个表中,可能会因为MySQL数据库列名大小写不敏感,导致同步结果不符合预期。 在数据同步完成后,建议使用analyze table <表名> 命令以确认数据均已写入目标表。例如,在MySQL触发HA切换机制后,可能会导致数据只写到了内存,从而造成数据丢失。 若您需要使用修改同步对象功能,则不支持新增或移除数据库的操作。 若实例运行失败,DTS技术支持人员将在8小时内尝试恢复该实例。在恢复失败实例的过程中,可能会对该实例进行重启、调整参数等操作。
说明 在调整参数时,仅会修改实例的参数,不会对数据库中的参数进行修改。可能修改的参数,包括但不限于修改实例参数中的参数。
|
特殊情况 | 源实例为RDS SQL Server时,DTS会在源RDS SQL Server实例中创建一个rdsdt_dtsacct 账号用于数据同步,请勿在任务运行过程中对该账号进行删除或密码修改操作,否则可能会导致任务失败。具体详情,请参见系统账号说明。 |
SQL Server同步至PolarDB MySQL
具体注意事项及限制如下:
类型 | 说明 |
源库限制 | 待同步的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据。 若同步对象为表级别,且需进行编辑(如表列名映射),单次同步任务的表数量超过5000或时,建议您拆分待同步的表,分批配置多个任务,或者配置整库的同步任务,否则任务提交后可能会显示请求报错。 单次同步任务仅支持同步至多10个数据库。当超出数量限制,会出现稳定性和性能问题的风险,此时建议您拆分待同步的表,分批配置任务。 DTS是用fn_log函数获取源库日志,而该函数有一定的性能瓶颈,请不要过早清理源库日志,否则可能会导致任务失败。 数据日志: 需开启,备份模式设置为Full,且已成功执行过全量物理备份。 如为增量同步任务,DTS要求源数据库的数据日志保存24小时以上,如为全量同步和增量同步任务,DTS要求源数据库的数据日志至少保留7天以上(您可在全量同步完成后将数据日志保存时间设置为24小时以上),否则DTS可能因无法获取数据日志而导致任务失败,极端情况下甚至可能会导致数据不一致或丢失。由于您所设置的数据日志保存时间低于DTS要求的时间进而导致的问题,不在DTS的SLA保障范围内。
若源库待同步的表需要开启CDC,则需满足以下条件,否则预检查将会失败。 sys.sysservers视图的srvname字段与SERVERPROPERTY函数返回值保持一致。 若源库是自建SQL Server,则数据库所有者需是sa;若源库是RDS SQL Server,则数据库所有者需是sqlsa。 若源库是企业版,则需为2008及以上版本。 若源库是标准版,则需为2016SP1及以上版本。 若源库为SQL Server 2017版(包括标准版和企业版),建议升级版本。
若源库为只读实例,则不支持同步DDL操作。 在混合式日志解析模式下,源库不支持连续执行(时间间隔小于10分钟)多个加减列操作。例如,连续执行如下SQL会导致任务报错。 ALTER TABLE test_table DROP COLUMN Flag;
ALTER TABLE test_table ADD Remark nvarchar(50) not null default('');
在库表结构同步和全量同步阶段,请勿执行库或表结构变更的DDL操作,否则会导致数据同步任务失败。 若源库为Web版的RDS SQL Server,则在配置任务时SQLServer增量同步模式需选择为解析源库日志做增量同步(不支持堆表)。
|
其他限制 | 同步对象的要求: 若在对象配置阶段将SQLServer增量同步模式选择为解析源库日志做增量同步(不支持堆表),则待同步的表需具备聚集索引,且聚集索引中需包含主键列;待同步的表不支持堆表、无主键表、压缩表、含计算列表。在混合式日志解析模式下,没有如上限制。 若在对象配置阶段将SQLServer增量同步模式选择为非堆表用日志解析增量同步,堆表用CDC增量同步(混合式日志解析),则DTS的增量同步依赖CDC组件,因此请确保源库CDC作业正常运行,否则会导致DTS任务失败。 若在对象配置阶段将SQLServer增量同步模式选择为轮询查询CDC实例做增量同步,则还有如下限制: DTS实例使用的源库账号需具备开启CDC的权限。开启库级别CDC需要使用sysadmin角色权限的账号,开启表级别CDC需要高权限账号。 DTS是通过轮询方式去源库查询每张表的CDC实例(CDC Instance)以获取增量数据,因此源库待同步表的数量不能超过1000张,否则可能会导致任务延迟或不稳定。 不支持连续执行加减列操作(一分钟内执行超过两次加列或减列的DDL),否则可能会导致任务失败。 不支持对源库CDC实例(CDC Instance)做变更操作,否则可能会导致任务失败或数据丢失。
暂不支持复杂的同步DDL操作。 为保障增量数据同步延迟的准确性,解析源端日志做增量同步模式,DTS会在源库中创建触发器dts_cdc_sync_ddl、心跳表dts_sync_progress、DDL存储表dts_cdc_ddl_history;混合式增量同步模式,DTS会在源库中创建触发器dts_cdc_sync_ddl、心跳表dts_sync_progress、DDL存储表dts_cdc_ddl_history以及会开启库级别CDC和部分表CDC,建议源端开启CDC的表数据变更量不超过1000 RPS。 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执行数据同步。否则全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。 全量初始化会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。 在DTS同步期间,不允许有除DTS外的数据写入目标库,否则会导致源库与目标库数据不一致。例如,有除DTS外的数据写入目标库时,使用DMS执行在线DDL变更,可能引起目标库数据丢失。 若同步任务包含增量数据同步,则不支持重建索引操作,否则可能造成任务失败,甚至数据丢失。 若单次同步任务中开启CDC的表数量大于1000,则预检查会失败。 若目标库的DDL写入失败,DTS任务会继续运行,您需要在任务日志中查看执行失败的DDL。查看任务日志的方法,请参见查询任务日志。 若您需要使用修改同步对象功能,则不支持新增或移除数据库的操作。 若实例运行失败,DTS技术支持人员将在8小时内尝试恢复该实例。在恢复失败实例的过程中,可能会对该实例进行重启、调整参数等操作。
说明 在调整参数时,仅会修改实例的参数,不会对数据库中的参数进行修改。可能修改的参数,包括但不限于修改实例参数中的参数。
|
特殊情况 | 源实例为RDS SQL Server时,DTS会在源RDS SQL Server实例中创建一个rdsdt_dtsacct 账号用于数据同步,请勿在任务运行过程中对该账号进行删除或密码修改操作,否则可能会导致任务失败。具体详情,请参见系统账号说明。 |
SQL Server同步至云原生数据仓库 AnalyticDB MySQL 版 3.0
类型 | 说明 |
源库限制 | 待同步的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据。 若同步对象为表级别,且需进行编辑(如表列名映射),单次同步任务的表数量超过5000或时,建议您拆分待同步的表,分批配置多个任务,或者配置整库的同步任务,否则任务提交后可能会显示请求报错。 单次同步任务仅支持同步至多10个数据库。当超出数量限制,会出现稳定性和性能问题的风险,此时建议您拆分待同步的表,分批配置任务。 DTS是用fn_log函数获取源库日志,而该函数有一定的性能瓶颈,请不要过早清理源库日志,否则可能会导致任务失败。 数据日志: 需开启,备份模式设置为Full,且已成功执行过全量物理备份。 如为增量同步任务,DTS要求源数据库的数据日志保存24小时以上,如为全量同步和增量同步任务,DTS要求源数据库的数据日志至少保留7天以上(您可在全量同步完成后将数据日志保存时间设置为24小时以上),否则DTS可能因无法获取数据日志而导致任务失败,极端情况下甚至可能会导致数据不一致或丢失。由于您所设置的数据日志保存时间低于DTS要求的时间进而导致的问题,不在DTS的SLA保障范围内。
若源库待同步的表需要开启CDC,则需满足以下条件,否则预检查将会失败。 sys.sysservers视图的srvname字段与SERVERPROPERTY函数返回值保持一致。 若源库是自建SQL Server,则数据库所有者需是sa;若源库是RDS SQL Server,则数据库所有者需是sqlsa。 若源库是企业版,则需为2008及以上版本。 若源库是标准版,则需为2016SP1及以上版本。 若源库为SQL Server 2017版(包括标准版和企业版),建议升级版本。
若源库为只读实例,则不支持同步DDL操作。 在混合式日志解析模式下,源库不支持连续执行(时间间隔小于10分钟)多个加减列操作。例如,连续执行如下SQL会导致任务报错。 ALTER TABLE test_table DROP COLUMN Flag;
ALTER TABLE test_table ADD Remark nvarchar(50) not null default('');
在库表结构同步和全量同步阶段,请勿执行库或表结构变更的DDL操作,否则会导致数据同步任务失败。 若源库为Web版的RDS SQL Server,则在配置任务时SQLServer增量同步模式需选择为解析源库日志做增量同步(不支持堆表)。
|
其他限制 | 同步对象的要求: 支持结构初始化的对象有Schema、Table、View、Function和Procedure。
警告 由于此场景属于异构数据库间的数据同步,数据类型无法一一对应,可能会导致任务失败或数据丢失,请谨慎评估数据类型的映射关系对业务的影响,详情请参见结构初始化涉及的数据类型映射关系。 不支持结构初始化的结构对象有:assemblies、service broker、全文索引、全文目录、分布式schema、分布式函数、CLR存储过程、CLR标量函数、CLR表值函数、内部表、系统、聚合函数。 不支持同步数据类型为CURSOR、ROWVERSION、SQL_VARIANT、HIERARCHYID、POLYGON、GEOMETRY和GEOGRAPHY的数据。 不支持同步含有计算列的表。
若在对象配置阶段将SQLServer增量同步模式选择为解析源库日志做增量同步(不支持堆表),则待同步的表需具备聚集索引,且聚集索引中需包含主键列;待同步的表不支持堆表、无主键表、压缩表、含计算列表。在混合式日志解析模式下,没有如上限制。 若在对象配置阶段将SQLServer增量同步模式选择为非堆表用日志解析增量同步,堆表用CDC增量同步(混合式日志解析),则DTS的增量同步依赖CDC组件,因此请确保源库CDC作业正常运行,否则会导致DTS任务失败。 若在对象配置阶段将SQLServer增量同步模式选择为轮询查询CDC实例做增量同步,则还有如下限制: DTS实例使用的源库账号需具备开启CDC的权限。开启库级别CDC需要使用sysadmin角色权限的账号,开启表级别CDC需要高权限账号。 DTS是通过轮询方式去源库查询每张表的CDC实例(CDC Instance)以获取增量数据,因此源库待同步表的数量不能超过1000张,否则可能会导致任务延迟或不稳定。 不支持连续执行加减列操作(一分钟内执行超过两次加列或减列的DDL),否则可能会导致任务失败。 不支持对源库CDC实例(CDC Instance)做变更操作,否则可能会导致任务失败或数据丢失。
为保障增量数据同步延迟的准确性,解析源端日志做增量同步模式,DTS会在源库中创建触发器dts_cdc_sync_ddl、心跳表dts_sync_progress、DDL存储表dts_cdc_ddl_history;混合式增量同步模式,DTS会在源库中创建触发器dts_cdc_sync_ddl、心跳表dts_sync_progress、DDL存储表dts_cdc_ddl_history以及会开启库级别CDC和部分表CDC,建议源端开启CDC的表数据变更量不超过1000 RPS。 由于云原生数据仓库AnalyticDB MySQL版(3.0)本身的使用限制,当云原生数据仓库AnalyticDB MySQL版(3.0)中的节点磁盘空间使用量超过80%,数据写入目标库的性能变慢,导致DTS任务延迟;当使用量超过90%,数据无法写入目标库,导致DTS任务异常。请提前根据待同步的对象预估所需空间,确保目标集群具备充足的存储空间。 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执行数据同步。否则全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。 全量初始化会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。 在DTS同步期间,不允许有除DTS外的数据写入目标库,否则会导致源库与目标库数据不一致。例如,有除DTS外的数据写入目标库时,使用DMS执行在线DDL变更,可能引起目标库数据丢失。 若同步任务包含增量数据同步,则不支持重建索引操作,否则可能造成任务失败,甚至数据丢失。 若单次同步任务中开启CDC的表数量大于1000,则预检查会失败。 若目标库的DDL写入失败,DTS任务会继续运行,您需要在任务日志中查看执行失败的DDL。查看任务日志的方法,请参见查询任务日志。 若您需要使用修改同步对象功能,则不支持新增或移除数据库的操作。 若DTS任务运行时目标AnalyticDB MySQL版 3.0集群处于备份中的状态,则会导致任务失败。 若实例运行失败,DTS技术支持人员将在8小时内尝试恢复该实例。在恢复失败实例的过程中,可能会对该实例进行重启、调整参数等操作。
说明 在调整参数时,仅会修改实例的参数,不会对数据库中的参数进行修改。可能修改的参数,包括但不限于修改实例参数中的参数。
|
特殊情况 | 源实例为RDS SQL Server时,DTS会在源RDS SQL Server实例中创建一个rdsdt_dtsacct 账号用于数据同步,请勿在任务运行过程中对该账号进行删除或密码修改操作,否则可能会导致任务失败。具体详情,请参见系统账号说明。 |
SQL Server同步至云原生数据仓库AnalyticDB PostgreSQL版
具体注意事项及限制如下:
类型 | 说明 |
源库限制 | 待同步的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据。 若同步对象为表级别,且需进行编辑(如表列名映射),单次同步任务的表数量超过5000或时,建议您拆分待同步的表,分批配置多个任务,或者配置整库的同步任务,否则任务提交后可能会显示请求报错。 单次同步任务仅支持同步至多10个数据库。当超出数量限制,会出现稳定性和性能问题的风险,此时建议您拆分待同步的表,分批配置任务。 DTS是用fn_log函数获取源库日志,而该函数有一定的性能瓶颈,请不要过早清理源库日志,否则可能会导致任务失败。 数据日志: 需开启,备份模式设置为Full,且已成功执行过全量物理备份。 如为增量同步任务,DTS要求源数据库的数据日志保存24小时以上,如为全量同步和增量同步任务,DTS要求源数据库的数据日志至少保留7天以上(您可在全量同步完成后将数据日志保存时间设置为24小时以上),否则DTS可能因无法获取数据日志而导致任务失败,极端情况下甚至可能会导致数据不一致或丢失。由于您所设置的数据日志保存时间低于DTS要求的时间进而导致的问题,不在DTS的SLA保障范围内。
若源库待同步的表需要开启CDC,则需满足以下条件,否则预检查将会失败。 sys.sysservers视图的srvname字段与SERVERPROPERTY函数返回值保持一致。 若源库是自建SQL Server,则数据库所有者需是sa;若源库是RDS SQL Server,则数据库所有者需是sqlsa。 若源库是企业版,则需为2008及以上版本。 若源库是标准版,则需为2016SP1及以上版本。 若源库为SQL Server 2017版(包括标准版和企业版),建议升级版本。
若源库为只读实例,则不支持同步DDL操作。 在混合式日志解析模式下,源库不支持连续执行(时间间隔小于10分钟)多个加减列操作。例如,连续执行如下SQL会导致任务报错。 ALTER TABLE test_table DROP COLUMN Flag;
ALTER TABLE test_table ADD Remark nvarchar(50) not null default('');
在库表结构同步和全量同步阶段,请勿执行库或表结构变更的DDL操作,否则会导致数据同步任务失败。 若源库为Web版的RDS SQL Server,则在配置任务时SQLServer增量同步模式需选择为解析源库日志做增量同步(不支持堆表)。
|
其他限制 | 同步对象的要求: 支持结构初始化的对象有Schema、Table、View、Function和Procedure。
警告 由于此场景属于异构数据库间的数据同步,数据类型无法一一对应,可能会导致任务失败或数据丢失,请谨慎评估数据类型的映射关系对业务的影响,详情请参见结构初始化涉及的数据类型映射关系。 不支持结构初始化的结构对象有:assemblies、service broker、全文索引、全文目录、分布式schema、分布式函数、CLR存储过程、CLR标量函数、CLR表值函数、内部表、系统、聚合函数。 不支持同步数据类型为CURSOR、ROWVERSION、SQL_VARIANT、HIERARCHYID、POLYGON、GEOMETRY和GEOGRAPHY的数据。 不支持同步含有计算列的表。
若在对象配置阶段将SQLServer增量同步模式选择为解析源库日志做增量同步(不支持堆表),则待同步的表需具备聚集索引,且聚集索引中需包含主键列;待同步的表不支持堆表、无主键表、压缩表、含计算列表。在混合式日志解析模式下,没有如上限制。 若在对象配置阶段将SQLServer增量同步模式选择为非堆表用日志解析增量同步,堆表用CDC增量同步(混合式日志解析),则DTS的增量同步依赖CDC组件,因此请确保源库CDC作业正常运行,否则会导致DTS任务失败。 若在对象配置阶段将SQLServer增量同步模式选择为轮询查询CDC实例做增量同步,则还有如下限制: DTS实例使用的源库账号需具备开启CDC的权限。开启库级别CDC需要使用sysadmin角色权限的账号,开启表级别CDC需要高权限账号。 DTS是通过轮询方式去源库查询每张表的CDC实例(CDC Instance)以获取增量数据,因此源库待同步表的数量不能超过1000张,否则可能会导致任务延迟或不稳定。 不支持连续执行加减列操作(一分钟内执行超过两次加列或减列的DDL),否则可能会导致任务失败。 不支持对源库CDC实例(CDC Instance)做变更操作,否则可能会导致任务失败或数据丢失。
为保障增量数据同步延迟的准确性,解析源端日志做增量同步模式,DTS会在源库中创建触发器dts_cdc_sync_ddl、心跳表dts_sync_progress、DDL存储表dts_cdc_ddl_history;混合式增量同步模式,DTS会在源库中创建触发器dts_cdc_sync_ddl、心跳表dts_sync_progress、DDL存储表dts_cdc_ddl_history以及会开启库级别CDC和部分表CDC,建议源端开启CDC的表数据变更量不超过1000 RPS。 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执行数据同步。否则全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。 全量初始化会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。 在DTS同步期间,不允许有除DTS外的数据写入目标库,否则会导致源库与目标库数据不一致。例如,有除DTS外的数据写入目标库时,使用DMS执行在线DDL变更,可能引起目标库数据丢失。 选择同步对象时支持的粒度为表,支持修改列的映射关系。若使用列映射时为非全表同步或者源与目标表结构不一致,则目标端比源端缺少的列的数据将会丢失。 若同步任务包含增量数据同步,则不支持重建索引操作,否则可能造成任务失败,甚至数据丢失。 若单次同步任务中开启CDC的表数量大于1000,则预检查会失败。 若您需要使用修改同步对象功能,则不支持新增或移除数据库的操作。 若实例运行失败,DTS技术支持人员将在8小时内尝试恢复该实例。在恢复失败实例的过程中,可能会对该实例进行重启、调整参数等操作。
说明 在调整参数时,仅会修改实例的参数,不会对数据库中的参数进行修改。可能修改的参数,包括但不限于修改实例参数中的参数。
|
特殊情况 | 源实例为RDS SQL Server时,DTS会在源RDS SQL Server实例中创建一个rdsdt_dtsacct 账号用于数据同步,请勿在任务运行过程中对该账号进行删除或密码修改操作,否则可能会导致任务失败。具体详情,请参见系统账号说明。 |
SQL Server同步至阿里云流式数据服务DataHub
具体注意事项及限制如下:
类型 | 说明 |
源库限制 | 待同步的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据。 若同步对象为表级别,且需进行编辑(如表列名映射),单次同步任务的表数量超过5000或时,建议您拆分待同步的表,分批配置多个任务,或者配置整库的同步任务,否则任务提交后可能会显示请求报错。 单次同步任务仅支持同步至多10个数据库。当超出数量限制,会出现稳定性和性能问题的风险,此时建议您拆分待同步的表,分批配置任务。 DTS是用fn_log函数获取源库日志,而该函数有一定的性能瓶颈,请不要过早清理源库日志,否则可能会导致任务失败。 数据日志: 需开启,备份模式设置为Full,且已成功执行过全量物理备份。 如为增量同步任务,DTS要求源数据库的数据日志保存24小时以上,如为全量同步和增量同步任务,DTS要求源数据库的数据日志至少保留7天以上(您可在全量同步完成后将数据日志保存时间设置为24小时以上),否则DTS可能因无法获取数据日志而导致任务失败,极端情况下甚至可能会导致数据不一致或丢失。由于您所设置的数据日志保存时间低于DTS要求的时间进而导致的问题,不在DTS的SLA保障范围内。
若源库待同步的表需要开启CDC,则需满足以下条件,否则预检查将会失败。 sys.sysservers视图的srvname字段与SERVERPROPERTY函数返回值保持一致。 若源库是自建SQL Server,则数据库所有者需是sa;若源库是RDS SQL Server,则数据库所有者需是sqlsa。 若源库是企业版,则需为2008及以上版本。 若源库是标准版,则需为2016SP1及以上版本。 若源库为SQL Server 2017版(包括标准版和企业版),建议升级版本。
在混合式日志解析模式下,源库不支持连续执行(时间间隔小于10分钟)多个加减列操作。例如,连续执行如下SQL会导致任务报错。 ALTER TABLE test_table DROP COLUMN Flag;
ALTER TABLE test_table ADD Remark nvarchar(50) not null default('');
在库表结构同步阶段,请勿执行库或表结构变更的DDL操作,否则会导致数据同步任务失败。
|
其他限制 | 仅支持增量同步和库表结构同步,不支持全量同步。 目标DataHub中单个String字段的长度最大支持2 MB。 同步对象的要求: 支持结构初始化的对象有Schema、Table、View、Function和Procedure。
警告 由于此场景属于异构数据库间的数据同步,数据类型无法一一对应,可能会导致任务失败或数据丢失,请谨慎评估数据类型的映射关系对业务的影响,详情请参见结构初始化涉及的数据类型映射关系。 不支持结构初始化的结构对象有:assemblies、service broker、全文索引、全文目录、分布式schema、分布式函数、CLR存储过程、CLR标量函数、CLR表值函数、内部表、系统、聚合函数。 不支持同步数据类型为CURSOR、ROWVERSION、SQL_VARIANT、HIERARCHYID、POLYGON、GEOMETRY和GEOGRAPHY的数据。 不支持同步含有计算列的表。
为保障增量数据同步延迟的准确性,解析源端日志做增量同步模式,DTS会在源库中创建触发器dts_cdc_sync_ddl、心跳表dts_sync_progress、DDL存储表dts_cdc_ddl_history;混合式增量同步模式,DTS会在源库中创建触发器dts_cdc_sync_ddl、心跳表dts_sync_progress、DDL存储表dts_cdc_ddl_history以及会开启库级别CDC和部分表CDC,建议源端开启CDC的表数据变更量不超过1000 RPS。 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执行数据同步。否则全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。 全量初始化会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。 在DTS同步期间,不允许有除DTS外的数据写入目标库,否则会导致源库与目标库数据不一致。例如,有除DTS外的数据写入目标库时,使用DMS执行在线DDL变更,可能引起目标库数据丢失。 若同步任务包含增量数据同步,则不支持重建索引操作,否则可能造成任务失败,甚至数据丢失。 若单次同步任务中开启CDC的表数量大于1000,则预检查会失败。 若您需要使用修改同步对象功能,则不支持新增或移除数据库的操作。 若实例运行失败,DTS技术支持人员将在8小时内尝试恢复该实例。在恢复失败实例的过程中,可能会对该实例进行重启、调整参数等操作。
说明 在调整参数时,仅会修改实例的参数,不会对数据库中的参数进行修改。可能修改的参数,包括但不限于修改实例参数中的参数。
|
特殊情况 | 源实例为RDS SQL Server时,DTS会在源RDS SQL Server实例中创建一个rdsdt_dtsacct 账号用于数据同步,请勿在任务运行过程中对该账号进行删除或密码修改操作,否则可能会导致任务失败。具体详情,请参见系统账号说明。 |