数据复制服务 DRS-将Microsoft SQL Server同步到GaussDB主备版:使用须知

时间:2024-05-20 18:33:43

使用须知

DRS全量+增量同步过程一般包含四个阶段:任务启动阶段、全量阶段、增量阶段、结束任务阶段。为了确保同步各个阶段的平顺,在创建同步任务前,请务必阅读以下使用须知。

表4 使用须知

类型名称

使用和操作约定

任务启动前须知

  • 源数据库参数要求
    • 源数据库模式必须设置为FULL模式。
    • 源数据库必须开启SQL Server Agent代理服务。
    • 源数据库若开启客户端配置中的“强制协议加密(Force Protocol Encrypton)”,必须同时开启“信任服务器证书(trust server certificate)”,如下图1所示:
      图1 查看客户端属性
  • 源数据库对象要求:
    • 源库中不允许存在被禁用的表的聚簇索引,否则会导致同步失败。
    • 源库中不允许存在名称为cdc的用户名或schema。
    • 源库待同步对象的库名、schema名、表名只能包含如下字符:字母、数字、下划线和中划线,库名长度不能超过64个字符。
    • 源库待同步对象的表中列名不能包含如下字符:[]?。
  • 目标数据库对象要求
    • 目标数据库实例必须有足够的磁盘空间。
    • 除了SQL Server系统数据库之外,目标数据库不能包含与源数据库同名的数据库。
  • 其他使用须知
    • 不支持源数据库主备切换,源数据库主备切换会导致同步任务失败。
    • 不支持源数据库Microsoft SQL Server为TLS 1.0、TLS 1.1协议的同步,如果需要同步,建议源库升级到TLS 1.2及以上版本。
    • 不建议在数据库中使用日期类型做主键,因存在精度损失,该特性影响DRS增量场景下对 UPDATE、DELETE语句的同步。
    • SQL Server为源的增量同步基于SQL Server提供的CDC能力,如果SQL Server源库的CDC功能出现异常(如被关闭、事务日志满等情况),则增量同步就会受到影响。
    • 目标数据库为Oracle兼容模式时,会将写入的空字符串作为NULL处理,源数据库存在空字符串且具有非空约束时,会导致写入失败。
    • DRS全量同步表结构时,目标库存在与某用户名称同名的schema,用其他用户进行同步表结构到schema时,需要使用grant [role] to [role]的方式为此用户赋权,否则可能因为无法创建表结构而导致同步失败。
    • 对象名同步到目标库后会转换成小写,因此选择的源库表中不能存在表名称字母相同但大小写不同的表,否则会导致同步失败。

全量同步过程须知

  • 请勿修改源库和目标库的端口号,请勿修改、删除源库和目标库连接用户的密码、权限,否则可能导致任务失败。
  • 请勿在源库执行任何DDL,否则可能导致数据不一致或任务失败。
  • 请勿在目标库做写入操作,否则可能导致数据不一致。

增量同步过程须知

  • 请勿修改源库和目标库的端口号,请勿修改、删除源库和目标库连接用户的密码、权限,否则可能导致任务失败。
  • 请勿在目标库做写入操作,否则可能导致数据不一致。
  • 不支持DDL操作,源数据库进行的DDL操作不会同步到目标数据库。
  • 不支持大数据类型image、text、ntext的删除操作。
  • 不支持delete和update目标端主键类型为blob、text、clob、nclob、bytea的表。
  • 单增量任务再编辑增加同步对象时,在子任务变更结束前,不建议对新增同步的表进行DML操作,否则可能导致部分数据无法同步到目标数据库。

同步对比须知

  • 建议在源库的业务低峰期进行数据比对,防止误报不一致数据,以及减少对源库和DRS任务的冲击。
  • 在增量同步过程中做对比时,源库若存在写入,则对比结果可能不一致。
  • 不支持在全量同步过程中做对比。
  • 不支持数据对比过程中做限速。
support.huaweicloud.com/realtimesyn-drs/drs_04_0487.html