文档首页/ 数据复制服务 DRS/ 实时同步/ 出云/ 将GaussDB分布式版同步到GaussDB分布式版
更新时间:2025-07-24 GMT+08:00

GaussDB分布式版同步到GaussDB分布式版

支持的源和目标数据库

表1 支持的数据库

源数据库

目标数据库

GaussDB分布式(支持与目标端相同兼容模式同步,不支持M兼容模式同步。版本数据库内核版本为505.2及以下版本,内核版本与数据库引擎版本的关系请参考云数据库GaussDB的数据库引擎版本说明。)

GaussDB分布式(版本数据库内核版本为505.2及以下版本,内核版本与数据库引擎版本的关系请参考云数据库GaussDB的数据库引擎版本说明。)
说明:

仅支持目标库版本等于或高于源库版本。

支持的同步对象范围

在使用DRS进行同步时,不同类型的同步任务,支持的同步对象范围不同,详细情况可参考表2DRS会根据用户选择,在“预检查”阶段对同步对象进行自动检查

表2 支持的同步对象

类型名称

使用和操作约定

同步范围须知

  • 不支持实例级同步:不支持实例级别同步,每次至多同步一个库(database),同步多个库需要使用多个DRS任务。
  • 支持场景:支持全量同步、增量同步、全量+增量同步。
  • 支持的字段:INTEGER,TINYINT,SMALLINT,BIGINT,TINYINT UNSIGNED,SMALLINT UNSIGNED,INTEGER UNSIGNED,BIGINT UNSIGNED,NUMBER,NUMERIC,REAL,DOUBLE PRECISION,CHARACTER,CHARACTER VARYING,NVARCHAR2,BIT,BIT VARYING,BLOB,BYTEA,CLOB,RAW,TEXT,JSON,JSONB,BOOLEAN,DATE,SMALLDATETIME,TIME WITH TIME ZONE,TIME WITHOUT TIME ZONE,TIMESTAMP WITH TIME ZONE,TIMESTAMP WITHOUT TIME ZONE,INTERVAL,BOX,CIDR,CIRCLE,INET,LSEG,MACADDR,MONEY,PATH,POINT,POLYGON,TSQUERY,TSVECTOR,REFCURSOR,UUID,ARRAY。
  • 支持表级同步、库级同步或导入对象文件
    • 全量同步过程仅支持同步选中表的表结构、数据、约束和索引。
    • 增量同步过程仅支持同步选中表的DML。
    • 不支持选择没有schema的database。
    • 不支持选择没有表的schema。
    • 不支持列存表、压缩表、延迟表、临时表、二级分区表、无主键复制表、含生成列的表,多任务模式全量不支持使用TO GROUP或TO NODE方式创建的表,增量不建议同步非日志表。
    • 不支持表字段为生成列的默认值。
    • 不支持同步既是无主键表,又是分区表的自建表,可能会导致数据不一致或者任务失败。
    • 不支持GaussDB的无主键复制表,如果需要同步的表在GaussDB为无主键复制表,会导致任务失败。
    • 不支持同步系统schema(pg_toast、cstore、snapshot、sys、dbms_job、dbms_perf、pg_catalog、information_schema、utl_file、dbms_output、dbms_random、utl_raw、dbms_sql、dbms_lob、dbe_perf、pkg_service、pkg_util、dbe_file、dbe_random、dbe_output、dbe_raw、dbe_sql、dbe_lob、dbe_task、blockchain、db4ai、dbe_pldebugger、sqladvisor、dbe_application_info、dbe_match、dbe_pldeveloper、dbe_scheduler、dbe_session、dbe_utility、dbe_sql_util、dbe_xml、dbe_xmldom、dbe_xmlparser、dbe_compression、dbe_heat_map、dbe_ilm、dbe_ilm_admin、prvt_ilm、dbe_profiler、dbe_stats、rdsBackup、rdsMetric、rdsRepl)。
    • 不支持同步系统表(public schema下的redis_progress_detail、redis_status、pgxc_redsitb、redis_progress)。
    • 暂不支持同步序列值,如果同步的表中存在关联的序列,可以在任务结束后按照GaussDB分布式版为源任务序列值同步中内容,手动同步序列值。
    • 目前支持HASH分布表和复制表的同步,暂不支持LIST、RANGE、MODULO、ROUND ROBIN、MURMURHASH等分布表的同步。
    • 不支持以box,json,circle,lseg,path,point,polygon,refcursor等类型为主键或者其数组类型为主键的表的数据同步。
    • 库名、schema名和表名不可以包含/<.>\\'`|\?和!。列名不可以包含"'和.。
    • 使用导入对象文件选表的方式时,要保证导入的表在源库存在或对同步用户可见。
    • 在事务中执行DDL语句后,该DDL语句与之后的语句不会被同步。
    • 单任务模式不支持增量DDL同步和库级同步。
    • 增量同步过程中支持DDL操作。
      • 表级同步支持的DDL:ALTER TABLE、CREATE INDEX、TRUNCATE TABLE。
      • 库级同步支持的DDL:CREATE TABLE、ALTER TABLE、DROP TABLE、CREATE SCHEMA、ALTER SCHEMA、DROP SCHEMA、CREATE INDEX、ALTER INDEX、DROP INDEX、TRUNCATE TABLE。
      • 对于ALTER_TABLE, DRS支持ADD_COLUMN,RENAME_COLUMN,MODIFY_COLUMN,CHANGE_COLUMN,ALTER_COLUMN等基本语法。
      • 对于CREATE_INDEX和ALTER_INDEX, DRS支持创建和修改基于基本字段类型的普通索引。
    • 增量同步DDL时,需要在目标库创建DDL状态表来避免DDL重复执行等问题,状态表的schema为drs_ddl_<父任务jobid>,状态表名为drs_ddl_status_table,请确保任务启动前目标库不存在同名的schema和同名的表。
    • 不支持以下类型的DDL同步 :ALTER TABLE MERGE PARTITIONS/SUBPARTITION和CREATE INDEX CONCURRENTLY。
    • 同步DDL语句,需要源和目标库兼容模式一致。
    • 涉及操作表空间的DDL语句,需要目标库迁移用户具备操作表空间的权限。
    • 不支持以下场景的DDL同步:
      • 执行的DDL在各dn有区别包括部分缺失或不一致,包括但不限于分布表、复制表等指定nodegroup的场景。
      • Online DDL。
      • ALTER SCHEMA schema_name WITHOUT/WITH BLOCKCHAIN语法。
      • 不支持账本数据库功能,创建账本数据库的DDL语句解码结果中会包含hash列导致无法回放。

数据库用户权限要求

在使用DRS进行同步时,连接源库和目标库的数据库用户需要满足以下权限要求,才能启动实时同步任务。不同类型的同步任务,需要的用户权限也不同,详细可参考表3进行赋权。DRS会在“预检查”阶段对数据库用户权限进行自动检查,并给出处理建议。

  • 建议创建单独用于DRS任务连接的数据库用户,避免因为数据库用户密码修改,导致的任务连接失败。
  • 连接源或目标数据库的用户密码修改后,请尽快修改DRS任务中的连接信息,避免任务连接失败后自动重试,导致数据库用户被锁定影响使用。
  • 由于分布式数据库为源链路需要检查每个DN的连通性,建议使用非root数据库用户进行同步,避免因为密码填写错误在连接DN过程中导致用户被锁定。
表3 数据库用户权限

类型名称

全量同步

增量同步

全量+增量同步

源数据库连接用户

具备sysadmin角色或者以下最小权限:

  • 需要DATABASE的CONNECT权限、SCHEMA的USAGE权限、表的SELECT或UPDATE权限(无主键表锁表需要UPDATE权限)、SEQUENCE的SELECT权限。
  • 需要具备远程连接权限,添加方法可参考GaussDB远程连接配置方法

具备sysadmin角色或者以下最小权限:

  • 需要REPLICATION权限或继承了内置角色gs_role_replication的权限、DATABASE的CONNECT权限、SCHEMA的USAGE权限、表的SELECT权限,如果需要使用内容对比,需要拥有用户的MONADMIN权限。
  • 需要具备远程连接权限,添加方法可参考GaussDB远程连接配置方法
  • 需要保证安全组和防火墙策略放开对应连接端口,详细说明可参考GaussDB为源链路增量同步连接及端口说明

具备sysadmin角色或者以下最小权限:

  • 需要REPLICATION权限或继承了内置角色gs_role_replication的权限、DATABASE的CONNECT权限、SCHEMA的USAGE权限、表的SELECT或UPDATE权限(无主键表锁表需要UPDATE权限)、SEQUENCE的SELECT权限,如果需要使用内容对比,需要拥有用户的MONADMIN权限。
  • 需要具备远程连接权限,添加方法可参考GaussDB远程连接配置方法
  • 需要保证安全组和防火墙策略放开对应连接端口,详细说明可参考GaussDB为源链路增量同步连接及端口说明

目标数据库连接用户

具备sysadmin角色或者以下最小权限:

  • 需要DATABASE的CONNECT和CREATE权限、SCHEMA的USAGE和CREATE权限、表的INSERT、UPDATE、DELETE、SELECT、ALTER、INDEX、COMMENT权限。
  • 如果需要使用内容对比,需要拥有用户的MONADMIN权限。
  • 目标库使用gsloader等工具创建相关系统表(如 public.pgxc_copy_error_log,public.gs_copy_summary)时,DRS访问相关系统表需要有系统表的all privilege权限,详细信息可参考《GaussDB工具参考》

使用须知

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

表4 使用须知

类型名称

使用和操作约定

任务启动前须知

  • 源数据库参数要求

    若选择增量或全量+增量同步:

    • 源库的wal_level参数设置为logical。
    • 源库的enable_slot_log参数设置为on。
    • 源库的max_replication_slots参数值必须大于当前已使用的复制槽数量。
    • 建议对无主键表追加主键,或将无主键表的REPLICA IDENTITY属性设置为FULL。
  • 源数据库对象要求:
    • 源库必须是GaussDB分布式版实例。
    • 源库要同步的库名、schema名和表名不可以包含/<.>\\'`|\?和!。
  • 目标数据库参数要求:
    • 目标库database的字符集与源库要保持一致。
    • 建议目标库database兼容的数据库的类型与源库保持一致。
  • 目标数据库对象要求
    • 同步前保证目标库已创建好对应的database。
    • 选择增量同步,同步前保证目标库表结构已经建好,且与源端一致;如果进行了列加工,请保证跟列加工后的表结构保持一致。
    • 选择全量或全量+增量同步,如果目标库已经存在表结构,需要保证与源端一致;如果进行了列加工,请保证跟列加工后的表结构保持一致。
    • 目标库已启用的触发器不可以与同步表关联。
    • 支持目标数据库中的表比源数据库多列场景,但是需要避免以下场景可能导致的任务失败。

      目标端多的列要求非空且没有默认值,源端insert数据,同步到目标端后多的列为null,不符合目标端要求。

      目标端多的列设置固定默认值,且有唯一约束。源端insert多条数据后,同步到目标端后多的列为固定默认值,不符合目标端要求。

  • 其他使用须知
    • 该链路不支持SSL安全连接。
    • GaussDB->GaussDB同步任务默认允许回环拓扑,不允许级联拓扑(即不支持从实例A同步到实例B,再从实例B同步到实例C)。
    • 实时同步过程中,不保证分布式事务的一致性。
    • 实时同步过程中,不支持对源库添加协调节点或数据节点,否则会导致任务失败或数据不一致。
    • 表名映射时,同步后表上的原索引名称变化为如下格式,其中哈希值由“原模式名_原表名_映射后模式名_映射后表名_原索引名”计算得到:i_+哈希值+原索引名(可能被截断)+_key。
    • 表名映射时,同步后表上的原约束名称变化为如下格式,其中哈希值由“原模式名_原表名_映射后模式名_映射后表名_原索引名”计算得到:c_+哈希值+原约束名(可能被截断)+_key。
    • 如果表结构中存在通过默认值等形式依赖其他对象(包括但不限于列的默认值引用序列、使用函数间接引用其他对象等场景),不支持对表进行schema或表名映射,且同步前要保证被依赖对象在目标库存在。
    • 由于GaussDB分布式版仅支持范围分区表,所以,除范围分区外的其他类型分区表作为普通表同步到目标库。
    • 受GaussDB逻辑复制能力约束,同一实例上,最多支持同时开启20个逻辑复制槽进行解码。
    • DRS全量同步表结构时,目标库存在与某用户名称同名的schema,用其他用户进行同步表结构到schema时,需要使用grant [role] to [role]的方式为此用户赋权,否则可能因为无法创建表结构而导致同步失败。
    • 目标数据库开启B兼容模式时,同步interval类型可能会导致任务失败,不建议同步包含interval类型的表。
    • 对于涉及表多对一的场景,必须保证多表合一的内容唯一键不冲突,建议在对比时设置过滤条件进行行对比和内容对比。
    • 源数据库版本小于94563并且为B或者MySQL兼容模式时,如果开启了b_format参数(例如:set b_format_version='s1'、set b_format_dev_version='s1'或者set b_format_dev_version='s2'),则不支持timestamp with time zone类型的同步。源数据库版本查询可参考如下SQL:
      select working_version_num();

全量同步过程须知

  • 勿修改源库和目标库的端口号,请勿修改、删除源库和目标库连接用户的密码、权限,否则可能导致任务失败。
  • 请勿在源库执行任何DDL,受限于GaussDB逻辑复制功能,不支持DDL语句的同步。否则可能导致数据不一致或任务失败。
  • 请勿在目标库做写入操作,否则可能导致数据不一致。
  • 为保证同步任务正常和数据的一致性,如有以上诉求,建议在业务低峰期时重新创建DRS任务。

增量同步过程须知

  • 请勿修改源库和目标库的端口号,请勿修改、删除源库和目标库连接用户的密码、权限,否则可能导致任务失败。
  • 在启动任务后,进入增量同步阶段前,请确保在源库中长事务未启动,启动长事务会阻塞逻辑复制槽的创建,进而引发任务失败。
  • 请勿修改源库中表的REPLICA IDENTITY值,否则可能导致增量数据不一致或任务失败。
  • 请勿在目标库做写入操作,否则可能导致数据不一致。
  • 为保证同步任务正常和数据的一致性,如有以上诉求,建议在业务低峰期时重新创建DRS任务。
  • 不支持interval partition表复制。
  • 逻辑日志解码受限于GaussDB内核的解码能力,存在一些使用约束,具体约束请参考对应版本GaussDB逻辑解码章节的注意事项说明。
  • 由于无主键表缺乏行的唯一性标志,网络不稳定时涉及少量重试,表数据存在少量不一致的可能性。

数据加工须知

  • 列加工时,主键、唯一键和分布列不可以被过滤。
  • 表上存在列名映射或列过滤时,索引定义中的部分索引条件表达式将被忽略,普通索引中的表达式列将被排除,包含表达式列的唯一索引将被排除。
  • 表上存在列过滤时,普通索引和外键中对应的列也将被过滤。
  • 表上存在列名映射或列过滤时,不建议对表做DDL操作,否则可能导致任务失败或数据不一致。

同步对比须知

  • 建议在源库的业务低峰期进行数据比对,防止误报不一致数据,以及减少对源库和DRS任务的冲击。
  • 在增量同步过程中做对比时,源库若存在写入,则对比结果可能不一致。
  • 不支持在全量同步过程中做对比。
  • 不支持数据对比过程中做限速。
  • 动态内容对比不支持DDL变更主键等唯一约束类的场景。

结束任务须知

任务正常结束

  • 结束时将自动删除任务在源库创建的流复制槽。
  • 结束时将自动删除目标库中存在的DDL状态表和状态表的schema。

任务强制结束

  • 强制结束同步任务,需要手动删除源库可能残留的复制槽,可参考GaussDB分布式版为源强制结束任务章节的指导进行操作。
  • 强制结束同步任务,目标数据库中可能存在以drs_为前缀命名的无主键临时表,需要用户手动删除。
  • 复制槽命名规则取决于数据库内核版本(可通过select working_version_num();命令查看),版本号低于92556默认使用串行解码,复制槽名命名规则为“replication_slot_唯一性标识”;版本号大于等于92556默认使用并行解码,复制槽名命名规则为“drs_唯一性标识”。其中唯一性标识需要将任务node id中的“-”替换为“_”获取,node id可在DRS任务同步日志页面查看“task node id is ***”日志找到。
  • 强制结束同步任务,目标数据库中可能存在残留的DDL状态表和状态表的schema,需要用户在任务结束后检查并手动删除。

前提条件

  • 已登录数据复制服务控制台。
  • 账户余额大于等于0美元。
  • 满足实时同步支持的数据库类型和版本,详情请参见支持的数据库
  • 当用户创建DRS任务使用的是子账号时,请先确认已添加过委托。创建委托方法,可参考委托管理

操作步骤

  1. 在“实时同步管理”页面,单击“创建同步任务”。
  2. 在“同步实例”页面,填选区域、项目、任务名称、描述、同步实例信息,单击“开始创建”

    • 任务信息
      图1 同步任务信息
      表5 任务和描述

      参数

      描述

      区域

      当前所在区域,可进行切换。

      项目

      当前区域对应的项目,可进行切换。

      任务名称

      任务名称在4到50位之间,必须以字母开头,可以包含字母、数字、中划线或下划线,不能包含其他的特殊字符。

      描述

      描述不能超过256位,且不能包含! = < > & ' " \ 特殊字符。

    • 同步实例信息
      图2 同步实例信息
      表6 同步实例信息

      参数

      描述

      数据流动方向

      选择“出云”

      源数据库引擎

      选择“GaussDB分布式版”。

      目标数据库引擎

      选择“GaussDB分布式版”。

      网络类型

      此处以“公网网络”为示例。目前支持可选“公网网络”“VPC网络”、和“VPN、专线网络”

      • VPC网络:适合云上同账号同Region同VPC场景下数据库之间的同步。
      • 公网网络:适合通过公网网络把其他云下或其他平台的数据库同步到目标数据库,该类型要求数据库绑定弹性公网IP(EIP)。
      • VPN、专线网络:适合VPN、专线、CC、VPCEP、或者用户已打通VPC对等连接的网络场景,实现其他云下自建数据库与云上数据库同步、云上同Region跨账号、或云上跨Region的数据库之间的同步。

      源数据库实例

      用户所创建的GaussDB分布式版实例。

      同步实例所在子网

      请选择同步实例所在的子网。也可以单击“查看子网”,跳转至“网络控制台”查看实例所在子网帮助选择。

      默认值为当前所选数据库实例所在子网,请选择有可用IP地址的子网。为确保同步实例创建成功,仅显示已经开启DHCP的子网。

      网络类型选择“VPC网络”“VPN、专线网络”时,支持输入指定IP。需要注意,同时创建多个任务时,不能指定同一组未使用IP,否则会导致任务创建失败。

      任务模式

      可选“单任务”“多任务”模式。

      单任务模式的数据同步全部从CN抽取,多任务模式的数据从DN抽取,每个数据节点对应一个子任务。

      同步模式

      全量+增量、全量、增量三种选择类型,此处以“全量+增量”为示例。

      • “全量+增量”

        该模式为数据持续性实时同步,通过全量过程完成目标端数据库的初始化后,增量同步阶段通过解析日志等技术,将源端和目标端数据保持数据持续一致。

        说明:

        选择“全量+增量”同步模式,增量同步可以在全量同步完成的基础上实现数据的持续同步,无需中断业务,实现同步过程中源业务和数据库继续对外提供访问。

      • “全量”

        该模式为数据库一次性同步,全量同步将源库数据一次性同步至目标端数据库。

      • “增量”

        增量同步通过解析日志等技术,将源端产生的增量数据同步至目标端。

      源端DN数量

      需要和分布式源库DN(Data Node)节点数量保持一致。

      指定公网IP

      网络类型选择“公网网络”时可见,选择为DRS实例绑定的弹性公网IP。任务创建时,DRS将会自动绑定该弹性公网IP,等待任务结束后将自动解绑该弹性公网IP。指定公网IP数量需要与实例数量匹配。

      公网网络迁移产生的数据传输费用收取标准请参见:弹性公网IP价格计算器

    • 任务类型
      图3 任务类型
      表7 任务类型信息

      参数

      描述

      规格类型

      选择DRS实例的规格类型,不同规格类型对应不同性能的性能上限,详细可参考实时同步链路规格说明

      说明:

      目前,DRS同步仅支持任务类型为单AZ的同步任务升级实例规格,不支持降低规格,具体操作及约束限制可参考同步规格变更

      可用区

      DRS任务创建的可用区,选择跟源或目标库相同的可用区性能更优。

    • 企业项目和标签
      图4 企业项目和标签

      表8 企业项目和标签

      参数

      描述

      企业项目

      企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理。请在下拉框中选择所在的企业项目,其中,default为默认项目。

      更多关于企业项目的信息,请参见《企业管理用户指南》

      如果需要自定义企业项目,请在控制台右上角单击“企业”,进入“企业项目管理”页面创建,具体请参见《企业管理用户指南》中“创建企业项目”的内容。

      标签

      • 可选配置,对同步任务的标识。使用标签可方便管理您的任务。每个任务最多支持20个标签配额。
      • 如果您的组织已经设定DRS的相关标签策略,则需按照标签策略规则为任务添加标签。标签如果不符合标签策略的规则,则可能会导致任务创建失败,请联系组织管理员了解标签策略详情。
      • 任务创建成功后,您可以单击任务名称,在“标签”页签下查看对应标签。关于标签的详细操作,请参见标签管理

    对于创建失败的任务,DRS默认保留3天,超过3天将会自动结束任务。

  3. 在“源库及目标库”页面,待同步实例创建成功后,填选源库信息和目标库信息,单击“源库和目标库”处的“测试连接”,分别测试并确定与源库和目标库连通后,单击“下一步”

    测试连接时需要确保DRS任务与源库、目标库的连通性。

    • 网络连通性:确保源库和目标库允许DRS访问,通常至少需要放通DRS的IP。公网网络的DRS任务放通DRS的公网IP,VPC网络、VPN、专线网络的DRS任务放通DRS的内网IP,可参考网络准备章节进行网络打通。
    • 账号连通性:确保源库和目标库允许DRS通过用户名和密码访问。
    图5 源库信息
    表9 源库信息

    参数

    描述

    数据库实例名称

    默认为创建同步任务时选择的GaussDB分布式版实例,不可进行修改。

    数据库用户名

    源数据库的用户名。

    数据库密码

    源数据库的用户名所对应的密码。

    源数据库的用户名和密码将在同步过程中被加密暂存到数据库和同步实例主机上,待该任务删除后会永久清除。

    图6 目标库信息
    表10 目标库信息

    参数

    描述

    数据库实例名称

    目标数据库的实例名称。

    数据库用户名

    目标数据库对应的数据库用户名。

    数据库密码

    目标数据库的用户名所对应的密码

    目标数据库的用户名和密码将在同步过程中被加密暂存到数据库和同步实例主机上,待该任务删除后会永久清除。

  4. “设置同步”页面,选择同步策略和同步对象,完成后单击“下一步”

    图7 设置同步

    表11 同步对象

    参数

    描述

    流速模式

    流速模式支持限速和不限速,默认为不限速。限速模式只对全量阶段生效,增量阶段不生效。

    • 限速

      自定义的最大同步速度,具体速度受网络等多种因素的影响,同步过程中每个任务(多任务时为每个子任务)的同步速度将不会超过该速度。

      当流速模式选择了“限速”时,您需要通过流速设置来定时控制同步速度。流速设置通常包括限速时间段和流速大小的设置。默认的限速时间段为“全天限流”,您也可以根据业务需求选择“时段限流”。自定义的时段限流支持最多设置10个定时任务,每个定时任务之间不能存在交叉的时间段,未设定在限速时间段的时间默认为不限速。

      流速的大小需要根据业务场景来设置,不能超过9999MB/s。

      图8 设置流速模式
    • 不限速
      对同步速度不进行限制,通常会最大化使用源数据库的出口带宽。该流速模式同时会对源数据库造成读消耗,消耗取决于源数据库的出口带宽。比如源数据库的出口带宽为100MB/s,假设高速模式使用了80%带宽,则同步对源数据库将造成80MB/s的读操作IO消耗。
      说明:
      • 限速模式只对全量阶段生效,增量阶段不生效。
      • 您也可以在创建任务后修改流速模式。具体方法请参见修改流速模式

    增量阶段冲突策略

    该冲突策略特指增量同步中的冲突处理策略,全量阶段的冲突默认忽略。

    目前支持的冲突策略有:

    • 忽略

      当同步数据与目标数据库已有数据冲突时(主键/唯一键存在重复等),以目标数据为准,DRS将跳过冲突数据,继续进行后续同步。

    • 覆盖

      当同步数据与目标数据库已有数据冲突时(主键/唯一键存在重复等),以源数据为准,DRS将覆盖原来的冲突数据。

    • 报错

      当同步数据与目标数据库已有数据冲突时(主键/唯一键存在重复等),同步任务将失败并立即中止。

    当同步数据与目标库已有数据冲突时,选择“忽略”无法保证最终一致性,如需保证数据一致性,可选择“覆盖”策略。

    备机读

    打开此开关,表示数据将从备机读取,关闭此开关,表示数据将从主机读取

    级联链路

    DRS可支持级联同步。

    • 打开开关,表示同步源库写入的所有数据(DRS链路写入源库的数据、用户业务写入源库的数据)。
    • 关闭开关,表示不同步DRS链路写入源库的数据。

    对象同步范围

    选择增量阶段是否同步DDL。

    说明:

    多任务时增量阶段才可选择是否同步DDL。

    DML同步

    选择需要同步的DML操作,默认都勾选。

    不勾选Delete则不会同步源库增量数据中的Delete语句,可能会导致数据不一致,因此存在数据冲突或任务失败的风险。

    增量支持DDL

    对象同步范围选择“增量DDL”时可见,用户可根据需求选择“默认值”“自定义”

    • “默认值”:已选定同步对象的DDL将会同步至目标,不支持的DDL将不同步。
      • 表级支持的DDL:ALTER TABLE、CREATE INDEX、TRUNCATE TABLE。
      • 库级支持的DDL:CREATE TABLE、ALTER TABLE、DROP TABLE、CREATE SCHEMA、ALTER SCHEMA、DROP SCHEMA、CREATE INDEX、ALTER INDEX、DROP INDEX、TRUNCATE TABLE。
    • “自定义”:用户根据需求,选择需要同步的DDL类型,不同链路支持的DDL类型以界面显示为准,未选定的DDL类型(含选项外的DDL)将不会同步。
    说明:

    多任务时增量阶段才可选择是否同步DDL。

    同步对象

    左侧框是源数据库对象,右侧框是已经选择的对象,支持表级同步和文件导入对象,您可以根据业务场景选择对应的数据进行同步。

    • 在同步对象右侧已选对象框中,可以使用对象名映射功能进行源数据库和目标数据库中的同步对象映射,具体操作可参考对象名修改(对象名映射)

      对象名映射时,对schema名或者表名进行映射后,为防止索引/约束名称冲突,被映射表上的索引和约束名称将按照“前缀+基于全名称的哈希值+原索引/约束名+_key”的规则进行映射,其中索引的前缀为“i_”,约束的前缀为“c_”,全名称为“模式名_表名_索引/约束名”,原索引/约束名可能由于长度限制而发生截断。

    • 选择导入对象文件也支持对象名映射,具体步骤和说明可参考导入同步对象
      说明:
      • 选择对象的时候支持对展开的库进行搜索,以便您快速选择需要的数据库对象。
      • 如果有切换源数据库的操作或源库同步对象变化的情况,请在选择同步对象前单击右上角的,以确保待选择的对象为最新源数据库对象。
      • 当对象名称包含空格时,名称前后的空格不显示,中间如有多个空格只显示一个空格。
      • 选择的同步对象名称中不能包含空格。
      • 多任务支持库级同步。

  5. “高级设置”页,可查看之前2选择“全量+增量”同步的运行参数,单击“下一步”

    图9 参数设置
    表12 全量同步参数说明

    参数名

    功能描述

    默认值

    全量同步对象类型

    全量同步对象类型,根据实际需求进行选择是否同步索引,其中同步表结构和同步数据为必选项。

    三项全选。

    导出并发数

    控制数据导出的线程数,范围在1-16,并发数越大对源库压力越大。

    8

    导入并发数

    控制数据导入的线程数,范围在1-16,并发数越大对目标库压力越大。

    8

    分片记录数

    当对表分片同步时,控制每个分片的条数,取值范围为520000-1000000000或0。

    • 值为0

      对所有表不分片,每张表作为一个整体进行同步。

    • 值为其他数值

      按照指定数值对表进行分片(根据主键列),当表的记录数小于该值时,不分片。

    520000

    表13 增量同步参数说明

    参数名

    功能描述

    默认值

    回放任务并发数

    数据回放的并发线程数,并行向目标库写入增量数据,范围在1-64,并发数越大对目标库压力越大。

    64

  6. 在“数据加工”页面,选择需要加工的数据,进行列加工或者数据过滤。

    • 如果不需要数据加工,单击“下一步”。
    • 如果需要列加工或者数据过滤,可参考数据加工,设置相关规则。

  7. “预检查”页面,进行同步任务预校验,校验是否可进行实时同步。

    • 查看检查结果,如有不通过的检查项,需要修复不通过项后,单击“重新校验”按钮重新进行任务预校验。

      预检查不通过项处理建议请参见《数据复制服务用户指南》中的“预检查不通过项修复方法”。

    • 预检查完成后,且所有检查项结果均通过时,单击“下一步”

      所有检查项结果均通过时,若存在请确认项,需要阅读并确认详情后才可以继续执行下一步操作。

  8. “任务确认”页面,设置同步任务的启动时间、任务异常通知设置、SMN主题、时延阈值、任务异常自动结束时间,并确认同步任务信息无误后,勾选协议,单击“启动任务”,提交同步任务。

    图10 任务启动设置

    表14 任务启动设置

    参数

    描述

    启动时间

    同步任务的启动时间可以根据业务需求,设置为“立即启动”或“稍后启动”。

    说明:

    预计同步任务启动后,会对源数据库和目标数据库的性能产生影响,建议选择业务低峰期,合理设置同步任务的启动时间。

    任务异常通知设置

    该项为可选参数,开启之后,选择对应的SMN主题。当同步任务状态、时延指标或数据异常时,系统将发送通知。

    SMN主题

    “任务异常通知设置”项开启后可见,需提前在SMN上申请主题并添加订阅。

    SMN主题申请和订阅可参考《消息通知服务用户指南》

    时延阈值

    在增量同步阶段,源数据库和目标数据库之间的同步有时会存在一个时间差,称为时延,单位为秒。

    时延阈值设置是指时延超过一定的值后(时延阈值范围为0到3600s),DRS可以发送告警通知。告警通知将在时延稳定超过设定的阈值6min后发送,避免出现由于时延波动反复发送告警通知的情况。

    说明:
    • 当时延阈值设置为0时,不会发送通知给收件人。
    • 首次进入增量同步阶段,会有较多数据等待同步,存在较大的时延,属于正常情况,不在此功能的监控范围之内。
    • 设置时延阈值之前,需要设置任务异常通知。

    数据异常通知

    该项为可选参数,开启之后,当同步任务数据异常时,系统将发送通知。

    任务异常自动结束时间(天)

    设置任务异常自动结束天数,输入值必须在14到100之间,默认值14。

    说明:
    • 仅按需计费任务支持设置任务异常自动结束时间,包年/包月任务不支持。
    • 异常状态下的任务仍然会计费,而长时间异常的任务无法续传和恢复。设置任务异常自动结束天数后,异常且超时的任务将会自动结束,以免产生不必要的费用。

  9. 同步任务提交后,您可在“实时同步管理”页面,查看并管理自己的任务

    • 您可查看任务提交后的状态,状态请参见任务状态说明
    • 在任务列表的右上角,单击刷新列表,可查看到最新的任务状态。
    • 对于未启动、状态为配置中的任务,DRS默认保留3天,超过3天DRS会自动删除后台资源,当前任务状态不变。当用户再次配置时,DRS会重新申请资源,此时DRS任务IP会发生改变。
    • 对于公网网络类型的任务,由于DRS需要在任务结束后删除后台资源,所以该任务绑定的弹性公网IP需要等待一段时间,才能恢复为解绑状态。