将SQL Server同步到SQL Server 前置网络协议与安全环境限制 协议与认证强制要求 :不支持 Windows 身份认证方式,仅支持 SQL Server 身份认证。不支持 TLS 1.0 和 TLS 1.1 协议的同步,必须将源库升级到 TLS 1.2 及以上版本。 TDE透明数据加密 :不支持迁移源数据库中开启了 TDE(透明数据加密)的数据库,若需迁移,必须在配置迁移任务前将其彻底关闭。同时,也不支持列加密。 操作须知 DTS同步过程一般包含四个阶段:预检查阶段、结构同步阶段、全量阶段、增量阶段。为了确保数据同步各个阶段的平顺,在创建同步任务前,请务必阅读以下使用须知。 如同步对象为表级别,则单次同步任务仅支持同步最多3000张表。当超出数量限制,任务会在提交后会请求报错。如果遇到这种情形,建议您拆分待同步的表,分批配置成多个任务,或者配置为整库同步。 目标库关联RDS数据库的字符集必须与源数据库一致。 目标库若已存在行数据,DTS在增量同步过程中源库相同主键的数据将覆盖目标库已存在的数据,因此在同步前需要用户自行判断数据是否需要清除,建议用户在同步前自行清空目标库。 目标实例及关联RDS实例的运行状态必须正常,若关联RDS实例是主备实例,复制状态也必须正常。 目标库关联RDS实例必须有足够的磁盘空间,建议至少为待同步数据量的2.5倍。(全量数据同步会并发执行 INSERT 操作,导致目标数据库的表产生碎片,因此全量同步完成后目标数据库的表存储空间会比源实例的表存储空间大)。 SQL Server的TIMESTAMP类型字段不能显式赋值,只能自动生成,所以目标库库的TIMESTAMP值自动生成,跟源库的字段值存在差异。 增量同步时,CDC机制会在源库的cdc这个schema下产生一些数据库对象,请勿操作,否则影响增量同步。 在任务启动、任务全量同步阶段,不建议对源数据库做删除类型的DDL操作,这样可能会引起任务同步失败。 同步过程中,不允许修改、删除连接源和目标数据库的用户的用户名、密码、权限,或修改源和目标数据库的端口号。 同步过程中,不允许对源库需要同步的表结构进行修改。 选择表级对象同步时,增量同步过程中不建议对表进行重命名操作。 增量同步场景下,不支持源数据库进行恢复操作。 增量同步场景下,不支持无主键表的数据增量同步,因为无主键表的增量同步性能远低于有主键的表,而且不能保证数据的一致性。 如果开启 CDC 的表需要写入的单字段数据长度超过 64KB,由于 CDC 作业默认最大处理长度限制,必须提前在源库执行 exec spconfigure 'max text repl size', 1; 命令进行配置调整,否则会导致同步失败或截断。 CDC 组件默认仅保留 3 天数据,若源库单表日均变更超千万条,建议使用 spcdcchangejob 命令将保留时间调整为 1440 分钟(24小时)或更长。 极端场景下,开启 CDC 的表数量不建议超过 1000 张,否则极易导致任务延迟或运行不稳定。聚集列存储索引表不支持开启 CDC。 待同步的表不仅需要有主键,还需要具备聚集索引且包含主键列;已经开启 CDC 的表不支持进行任何主键相关的变更,增量同步期间不支持重建索引操作,否则会造成数据丢失。 切勿使用 sprename 命令修改对象名称,应直接使用 ALTER 命令,否则会导致任务运行失败。 全量数据同步运行期间,建议将源库的事务处理模式启用 READCOMMITTEDSNAPSHOT(已提交读隔离),防止产生的共享锁影响业务正常写入。 在业务正式切换到目标实例前,务必手动结束该数据同步任务,或者回收 DTS 账号在目标库的写权限。避免任务意外自动恢复后用旧数据覆盖目标端新业务数据。 sys.sysservers视图的srvname字段与SERVERPROPERTY函数返回值保持一致。 若单次同步任务中开启CDC的表数量大于1000,则预检查会失败。 日志备份模式与全量物理备份前提:为保证增量同步正常进行,源库的数据日志必须开启,且备份模式必须设置为 Full。