注意事项
为保证任务的正常运行,DRS提供了自动化的检查方法,在您启动DRS任务前,会针对源数据库和目标数据库的相关配置、条件进行检查。主要的检查项和对应的处理建议请参考预检查项。除了预检查项目之外,您还需要注意的事情参见表4。
表4 注意事项
类型名称 |
使用和操作限制 |
源数据库限制 |
源数据库如果开启客户端配置中的“强制协议加密(Force Protocol Encrypton)”,必须同时开启“信任服务器证书(trust server certificate)”,如下 图1所示:
图1 查看客户端属性
|
使用限制 |
通用:
- 请勿修改源库和目标库的端口号,请勿修改、删除源库和目标库连接用户的密码、权限,否则可能导致任务失败。
- 请勿在目标库做写入操作,否则可能导致数据不一致。
- 为保证同步任务正常和数据的一致性,如有以上诉求,建议在业务低峰期时重新创建DRS任务。
全量同步阶段:
请勿在源库执行任何DDL,否则可能导致数据不一致或任务失败。
增量同步阶段:
- 支持DML(Data Manipulation Language):包括INSERT、UPDATE、DELETE。
- 不支持DDL操作,源数据库进行的DDL操作不会同步到目标数据库。
- 不支持大数据类型IMAGE、TEXT、NTEXT的删除操作。
- 支持任务再编辑追加同步对象。
同步对比阶段:
- 建议在源库的业务低峰期进行数据比对,防止误报不一致数据,以及减少对源库和DRS任务的冲击。
- 在增量同步过程中做对比时,源库如果存在写入,则对比结果可能不一致。
- 不支持在全量同步过程中做对比。
- 不支持数据对比过程中做限速。
常见故障排查:
- 在任务创建、启动、全量同步、增量同步、结束等过程中,如有遇到问题,可先参考“故障排查”章节进行排查。
|
其他限制 |
- 同步表结构时支持以下函数作为默认值:now、newid、getutcdate、getdate。将这些函数作为default值时,需要目标数据库也有相同功能的函数。对于目标数据库不存在对应函数的情况,可能会出现以下结果:
- 默认值函数可能会被置空。
- 创建表失败,导致对象对比不一致或者任务失败。
- 支持目标数据库中的表比源数据库多列场景,但是需要避免以下场景可能导致的任务失败。
- 目标数据库多的列要求非空且没有默认值,源库insert数据,同步到目标数据库后多的列为null,不符合目标数据库要求。
- 目标数据库多的列设置固定默认值,且有唯一约束。源库insert多条数据后,同步到目标数据库后多的列为固定默认值,不符合目标数据库要求。
- 不支持源数据库主备切换,源数据库主备切换会导致同步任务失败。
- 不支持源数据库Microsoft SQL Server为TLS 1.0、TLS 1.1协议的同步,如果需要同步,建议源库升级到TLS 1.2及以上版本。
- 因为部分SQL Server(例如Azure SQL)不支持use语法,不支持同步多库,所以如果需要同步多库时请创建多个同步任务。
- 因为 GaussDB (DWS)中的B-Tree最多可在32个字段上创建索引,源数据库联合索引超过32字段时在目标数据库会创建索引失败。
|