华为云用户手册

  • 支持的源和目标数据库 表1 支持的数据库 源数据库 目标数据库 本地自建MySQL数据库(MySQL 5.5、5.6、5.7、8.0版本) E CS 自建MySQL数据库(MySQL 5.5、5.6、5.7、8.0版本) 其他云上MySQL数据库(MySQL 5.5、5.6、5.7、8.0版本) RDS for MySQL(5.5、5.6、5.7、8.0版本) TaurusDB标准版(5.7、8.0版本) GaussDB 集中式版(B兼容模式、M兼容模式)(版本数据库内核版本为505.2及以下版本,内核版本与数据库引擎版本的关系请参考云数据库GaussDB的数据库引擎版本说明。)
  • 数据库用户权限要求 在使用DRS进行同步时,连接源库和目标库的数据库用户需要满足以下权限要求,才能启动实时同步任务。不同类型的同步任务,需要的用户权限也不同,详细可参考表3进行赋权。DRS会在“预检查”阶段对数据库用户权限进行自动检查,并给出处理建议。 建议创建单独用于DRS任务连接的数据库用户,避免因为数据库用户密码修改,导致的任务连接失败。 连接源或目标数据库的用户密码修改后,请尽快修改DRS任务中的连接信息,避免任务连接失败后自动重试,导致数据库用户被锁定影响使用。 由于 分布式数据库 为源链路需要检查每个DN的连通性,建议使用非root数据库用户进行同步,避免因为密码填写错误在连接DN过程中导致用户被锁定。 表3 数据库用户权限 类型名称 增量同步 源数据库连接用户 用户具备sysadmin角色或以下最小权限: 需要REPLICATION权限或继承了内置角色gs_role_replication的权限、DATABASE的CONNECT权限、SCHEMA的USAGE权限、表的SELECT权限。 需要具备远程连接权限,添加方法可参考GaussDB远程连接配置方法。 需要保证安全组和防火墙策略放开对应连接端口,详细说明可参考GaussDB为源链路增量同步连接及端口说明。
  • 数据库用户权限要求 在使用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工具参考》。
  • 支持的源和目标数据库 表1 支持的数据库 源数据库 目标数据库 GaussDB分布式(支持与目标端相同兼容模式同步,不支持M兼容模式同步。版本数据库内核版本为505.2及以下版本,内核版本与数据库引擎版本的关系请参考云数据库GaussDB的数据库引擎版本说明。) GaussDB分布式(版本数据库内核版本为505.2及以下版本,内核版本与数据库引擎版本的关系请参考云数据库GaussDB的数据库引擎版本说明。) 说明: 仅支持目标库版本等于或高于源库版本。
  • 数据库用户权限要求 在使用DRS进行同步时,连接源库和目标库的数据库用户需要满足以下权限要求,才能启动实时同步任务。不同类型的同步任务,需要的用户权限也不同,详细可参考表3进行赋权。DRS会在“预检查”阶段对数据库用户权限进行自动检查,并给出处理建议。 建议创建单独用于DRS任务连接的数据库用户,避免因为数据库用户密码修改,导致的任务连接失败。 连接源或目标数据库的用户密码修改后,请尽快修改DRS任务中的连接信息,避免任务连接失败后自动重试,导致数据库用户被锁定影响使用。 由于分布式数据库为源链路需要检查每个DN的连通性,建议使用非root数据库用户进行同步,避免因为密码填写错误在连接DN过程中导致用户被锁定。 表3 数据库用户权限 类型名称 全量同步 增量同步 全量+增量同步 源数据库连接用户 用户具备sysadmin角色或被授予以下权限: DATABASE的CONNECT权限、SCHEMA的USAGE权限、表的SELECT或UPDATE(仅无主键表需要)权限。 需要具备远程连接权限,添加方法可参考GaussDB远程连接配置方法。 用户具备sysadmin角色或者以下最小权限: 需要REPLICATION权限或继承了内置角色gs_role_replication的权限、DATABASE的CONNECT权限、SCHEMA的USAGE权限、表的SELECT权限。 需要具备远程连接权限,添加方法可参考GaussDB远程连接配置方法。 需要保证安全组和防火墙策略放开对应连接端口,详细说明可参考GaussDB为源链路增量同步连接及端口说明。 用户具备sysadmin角色或者以下最小权限: 需要REPLICATION权限或继承了内置角色gs_role_replication的权限、DATABASE的CONNECT权限、SCHEMA的USAGE权限、表的SELECT或UPDATE权限(无主键表锁表需要UPDATE权限)、SEQUENCE的SELECT权限。 需要具备远程连接权限,添加方法可参考GaussDB远程连接配置方法。 需要保证安全组和防火墙策略放开对应连接端口,详细说明可参考GaussDB为源链路增量同步连接及端口说明。 目标数据库连接用户 常需要具备sysadmin角色或以下基本权限: DATABASE上的权限:CONNECT、CREATE。 SCHEMA上的权限:USAGE。 表上的权限:INSERT、DELETE、 UPDATE、 SELECT。
  • 数据库用户权限要求 在使用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权限。 需要具备远程连接权限,添加方法可参考GaussDB远程连接配置方法。 需要保证安全组和防火墙策略放开对应连接端口,详细说明可参考GaussDB为源链路增量同步连接及端口说明。 用户具备sysadmin角色或以下最小权限: REPLICATION权限或继承了内置角色gs_role_replication的权限、DATABASE的CONNECT权限、SCHEMA的USAGE权限、表的SELECT或UPDATE权限(无主键表锁表需要UPDATE权限)、SEQUENCE的SELECT权限。 需要具备远程连接权限,添加方法可参考GaussDB远程连接配置方法。 需要保证安全组和防火墙策略放开对应连接端口,详细说明可参考GaussDB为源链路增量同步连接及端口说明。 目标数据库连接用户 用户需要具备DBA角色或者以下最小权限: CREATE SESSION权限,表的SELECT、INSERT权限,或者具备RESOURCE角色。 用户需要具备DBA角色或者以下最小权限: CREATE SESSION权限,表的SELECT、INSERT、UPDATE、DELETE权限,或者具备RESOURCE角色 用户需要具备DBA角色或者以下最小权限: CREATE SESSION权限,表的SELECT、INSERT、UPDATE、DELETE权限,或者具备RESOURCE角色。
  • 数据库用户权限要求 在使用DRS进行同步时,连接源库和目标库的数据库用户需要满足以下权限要求,才能启动实时同步任务。不同类型的同步任务,需要的用户权限也不同,详细可参考表3进行赋权。DRS会在“预检查”阶段对数据库用户权限进行自动检查,并给出处理建议。 建议创建单独用于DRS任务连接的数据库账号,避免因为数据库账号密码修改,导致的任务连接失败。 连接源和目标数据库的账号密码修改后,请参考修改连接信息章节修改DRS任务的连接信息,避免任务连接失败后自动重试,导致数据库账号被锁定影响使用。 表3 数据库用户权限 类型名称 全量同步 增量同步 全量+增量同步 源数据库连接用户 用户具备sysadmin角色或以下最小权限: DATABASE的CONNECT权限、SCHEMA的USAGE权限、表的SELECT或UPDATE权限(无主键表锁表需要UPDATE权限)、SEQUENCE的SELECT权限。 需要具备远程连接权限,添加方法可参考GaussDB远程连接配置方法。 用户具备sysadmin角色或以下最小权限: REPLICATION权限或继承了内置角色gs_role_replication的权限、DATABASE的CONNECT权限、SCHEMA的USAGE权限、表的SELECT权限。 需要具备远程连接权限,添加方法可参考GaussDB远程连接配置方法。 需要保证安全组和防火墙策略放开对应连接端口,详细说明可参考GaussDB为源链路增量同步连接及端口说明。 用户具备sysadmin角色或以下最小权限: REPLICATION权限或继承了内置角色gs_role_replication的权限、DATABASE的CONNECT权限、SCHEMA的USAGE权限、表的SELECT或UPDATE权限(无主键表锁表需要UPDATE权限)、SEQUENCE的SELECT权限。 需要具备远程连接权限,添加方法可参考GaussDB远程连接配置方法。 需要保证安全组和防火墙策略放开对应连接端口,详细说明可参考GaussDB为源链路增量同步连接及端口说明。 目标数据库连接用户 用户需要具备DBA角色或者以下最小权限: CREATE SESSION权限,表的SELECT、INSERT权限,或者具备RESOURCE角色。 用户需要具备DBA角色或者以下最小权限: CREATE SESSION权限,表的SELECT、INSERT、UPDATE、DELETE权限,或者具备RESOURCE角色 用户需要具备DBA角色或者以下最小权限: CREATE SESSION权限,表的SELECT、INSERT、UPDATE、DELETE权限,或者具备RESOURCE角色。
  • 操作步骤 在“实时同步管理”界面,选择指定的同步任务。 单击任务名称,页面跳转至“基本信息”页面。 单击左侧“参数管理”,在“参数”页签可对当前同步任务的参数信息根据名称进行查询并且进行修改。 图1 查看参数信息 修改完成后,可选择“保存”或者“取消”设置。 单击“保存”,在弹出框中单击“是”,保存修改。 单击“取消”,在弹出框中单击“是”,放弃本次设置。 部分参数完成修改后,需要重启任务后才生效,可单击右上角“重启”按钮使之生效,也可参考重启同步任务内容进行重启。 除此以外,重置、续传、任务重建、主备倒换、全量阶段修改限速操作也会重启任务进程使设置生效。
  • 操作步骤 在“实时同步管理”页面,单击左上角“批量导入任务”。 在“批量导入任务”对话框中,单击“下载模板”。 图1 批量导入任务 编辑下载的Excel模板,按照要求填写任务信息。 填写完成后,单击“添加文件”,完成模板上传。 待上传并校验成功后,单击“确定”提交创建任务。 DRS不会保存上传的Excel文件,只针对内容进行解析。 任务创建后,数据库的IP地址或 域名 、数据库用户名和密码,会被系统加密暂存,直至删除该任务后自动清除。
  • 操作说明 在“实时同步管理”页面,单击“创建同步任务”。 在“同步实例”页面,填选任务名称、描述、同步实例等信息,其中DRS任务类型选择“双AZ”,完成后单击“下一步”。 返回“实时同步管理”页面可以可以看到,DRS会同时创建一主一备两个子任务。 图1 主备任务 配置并启动同步任务后,DRS会启动主AZ任务进行同步,此时备AZ任务处于暂停状态。 图2 主备倒换前 当主AZ任务发生异常,DRS会自动启动备AZ任务继续进行同步。 图3 主备倒换后
  • 约束限制 限速模式指的是限制秒级的流量上限,可能因为网络波动原因导致统计值的降低,实际统计的值可能会低于限速值大小。 限速模式只对全量同步阶段生效,增量同步阶段不生效。 增量阶段修改限速后,待任务再次进入全量阶段会生效。如增量中的任务修改限速,编辑任务新加同步对象后,限速会在同步任务的全量阶段生效。 修改限速后会出现短暂的没有流量情况,是因为DRS后台进程会重启续传,并不影响任务进度和数据一致性。
  • 约束限制 所有链路均支持修改连接密码。 目前仅MySQL和TaurusDB为源且连接方式为输入IP地址的任务,在增量阶段支持修改IP、端口、用户名信息。当源库进行某些操作导致IP地址、端口、用户名变化时,可通过此功能更新为正确的信息。 修改IP功能适用于源库IP地址变化场景,修改前后的IP必须属于同一个 数据实例 ,否则可能导致任务失败或者数据不一致。 连接信息修改后,将实时生效,不会清空目标数据库的数据。 存在再编辑子任务时,不支持修改连接信息。
  • 多对一同步 实时同步过程中,可以使用对象名映射功能修改库、schema、表名称,实现多对一的同步。 以库级多对一为例,schema、表级多对一场景可参考如下步骤: 在“设定同步”页面,同步对象右侧已选对象框中,选择需要进行多对一同步的数据库,分别单击“编辑”按钮。 在“编辑库名”的弹出框中,统一填写新的数据库名,修改后的名称即为保存在目标数据库中的库名。 例如,将源库中的库test_16和库auto_nprocess_001,修改为同样的库test_16_new。 图6 修改结果 库名修改成功后,您会看到修改前的库名和修改后的新数据库名,至此,表示已完成多对一库映射的配置。 配置完成后,等待任务启动并完成同步后,即可实现库test_16、库auto_nprocess_001到库test_16_new的同步。
  • 对象名修改 实时同步过程中,如果待同步的库、schema、表对象在源数据库和目标数据库中存储名称不同,可以使用实时同步提供的映射功能进行映射。例如:将源数据库中的A库同步到目标数据库,变成目标数据库中的B库,此时就可以使用库映射功能来实现。 在“设定同步”页面,同步对象右侧已选对象框中,选择需要进行映射的数据库,单击“编辑”按钮。 图1 库映射 修改名称。 在弹出的编辑框中,填写新的数据对象名称,修改后的名称即为保存在目标数据库中的名称。 图2 修改库名 图3 修改schema名 图4 修改表名 查看修改结果。 修改成功后,您会看到修改前和修改后的名称,至此,表示完成对象名映射的配置。 图5 查看修改结果
  • 操作步骤 在“实时同步管理”页面的任务列表中,选择要结束的任务,单击“结束”。 在弹出框中单击“是”,提交结束任务。 当任务状态异常时(例如任务失败、网络异常),DRS会勾选“强制结束任务”优先结束任务,减少等待时间。 “强制结束任务”会直接释放DRS资源,请检查是否存在影响,确认同步情况。 如果需要正常结束任务,请先修复DRS任务,待任务状态正常后,再单击“结束”,正常结束任务。 当任务状态为增量中并且当前链路是以MySQL为源的DRS链路,勾选“结束时展示断点信息”后,在任务结束后同步进度页面会显示源库的GTID和binlog位点信息。
  • 数据修复(公测中) 当静态内容对比结果中存在不一致数据时,可在对比报表的明细页中选取不一致的表进行数据修复。数据修复结果为可在目标库执行的修复SQL。修复完成后可在对比报表的修复进度明细页查看不一致行的修复SQL生成详情,也可导出和下载针对本次对比所有已生成的不一致SQL,并结合实际情况在目标库手动执行修复SQL。数据修复具有如下约束。 数据修复功能仅支持白名单用户使用,当前支持MYSQL-MYSQL链路、GaussDB分布式版-GaussDB(DWS)链路。 对于修复SQL为INSERT或UPDATE语句的场景,修复SQL中将展示不一致行的所有列内容,列值为对应列在源库的当前值。 历史的比对任务可能由于缺少修复信息而修复失败,需要重新比对后再进行修复。 每个同步任务仅保留最新一次数据修复的修复进度明细信息页面。 单个不一致行的数据大小最大支持4M,超过时对应的修复SQL将生成失败。 DRS生成的修复SQL中,时间类型字段的内容是基于UTC时间的,如果表中存在时间字段,目标库执行修复SQL前需先将会话时区设置为0时区。各数据库类型对应的会话时区设置SQL示例如下表。 请谨慎执行修复SQL中的DELETE语句。 表2 各数据库类型设置会话时区为0时区的SQL示例 数据库类型 时区设置SQL MYSQL SET session time_zone='+00:00';
  • 对数据库影响 对象对比:会查询源库及目标库的系统表,占用10个左右的session的连接数,正常情况不会对数据库产生影响。但是如果对象数量巨大(比如几十万张表),可能会对数据库产生一定的查询压力。 行数对比:会查询源库及目标库的表行数,占用10个左右的session的连接数,正常的select count语句基本不会对数据库产生影响。但是如果表数据量巨大(亿级)会对数据库产生一定的查询压力,返回查询结果会比较慢。 内容对比:会查询源库及目标库的全部数据,涉及每个字段都会对比,所以会对数据库产生一定的查询压力,主要体现在IO上,查询速度受限于源库和目标库的IO和网络带宽。占用1-2个CPU,占用10个左右的session的连接数。 用户对比:会查询源库及目标库的账户和权限,基本不会对数据库产生影响。
  • 方式一 在“实时同步管理”页面的任务列表中,选择要修改的任务,单击操作列“编辑”按钮。 进入“源库及目标库”页面,填写源库和目标库信息,单击“下一步”。 在“设定同步”页面,选择编辑同步对象,单击“下一步”。 在“预检查”页面,进行同步任务预校验,校验是否可进行实时同步。 在“任务确认”页面,设置同步任务的启动时间,并确认同步任务信息无误后,勾选协议,单击“启动任务”,提交同步任务。 同步任务提交后,您可在“实时同步管理”页面,查看并管理自己的任务。
  • 方法一 在“实时同步管理”页面,选择需要修改同步对象的任务,单击操作列的“编辑”按钮。 图1 编辑实时同步对象 进入“设置同步”页面,修改需要同步的对象,单击“下一步”。 选择对象时可对展开的库进行搜索,搜索支持正则表达式。 当对象名称包含空格时,名称前后的空格不显示,中间如有多个空格只显示一个空格。 选择的同步对象名称中不能包含空格。 在“数据加工”页面,可参考数据加工章节,为新增加表设置相关规则。 任务再编辑时,已经同步的表不支持修改加工规则。 在“预检查”页面,进行同步任务预校验,校验是否可进行。 查看检查结果,如有不通过的检查项,需要修复不通过项后,单击“重新校验”按钮重新进行任务预校验。 预检查不通过项处理建议请参见《 数据复制服务 用户指南》中的“预检查不通过项修复方法”。 预检查完成后,且所有检查项结果均通过时,单击“下一步”。 所有检查项结果均通过时,若存在请确认项,需要阅读并确认详情后才可以继续执行下一步操作。 在“任务确认”页面,确认同步任务信息无误后,单击“启动任务”,提交同步任务。 返回“实时同步管理”,在同步任务列表中,当前任务状态显示为“增量同步”,并生成任务状态为“任务变更中”的子任务,全量+增量任务的子任务可以单击子任务名称,然后单击“同步进度”页签,查看同步过程中各同步对象的同步进度,DRS通过流式进度展示,可以帮助您实时了解同步完成的情况。 待子任务变更完成后,开始对编辑后的同步对象进行增量同步。
  • 操作步骤 在“实时同步管理”界面,选择指定的同步任务,单击任务名称。 在“同步日志”页签选择“运行日志”,查看当前同步任务的运行日志。 您可查看到日志对应的时间,级别和描述。 图1 同步日志 除此以外,DRS支持对接 云日志 服务(Log Tank Service,简称LTS),进行LTS日志配置后,DRS实例新生成的所有日志记录会上传到云日志服务进行管理,详情可参考日志配置管理。 在“同步日志”页签选择“操作日志”,查看当前同步任务的操作日志。 图2 操作日志
  • 支持的同步对象范围 在使用DRS进行同步时,不同类型的同步任务,支持的同步对象范围不同,详细情况可参考表3。DRS会根据用户选择,在“预检查”阶段对同步对象进行自动检查。 表3 支持的同步对象 类型名称 使用须知 同步对象范围 支持表、主键索引、唯一索引、普通索引、存储过程、视图、函数的同步。 仅支持MyISAM和InnoDB表的同步。 不支持事件(EVENT)和触发器(TRIGGER)的同步。 全量和增量同步不支持隐藏列(INVISIBLE),隐藏列是MySQL 8.0.23开始支持的特性,例如: CREATE TABLE `test11` ( `id` int NOT NULL, `c1` int DEFAULT NULL /*!80023 INVISIBLE */, PRIMARY KEY (`id`));
  • 数据库账号权限要求 在使用DRS进行同步时,连接源库和目标库的数据库账号需要满足以下权限要求,才能启动实时同步任务。不同类型的同步任务,需要的账号权限也不同,详细可参考表2进行赋权。DRS会在“预检查”阶段对数据库账号权限进行自动检查,并给出处理建议。 表2 数据库账号权限 类型名称 正向任务 反向任务 源数据库连接账号 需要具备如下最小权限: SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。当源数据库为8.0.2及以上版本时,还需要授予XA_RECOVER_ADMIN权限,以防启动或编辑时未提交的XA事务导致数据有损。 需要具备如下最小权限: REPLICATION SLAVE、REPLICATION CLIENT。 目标数据库连接账号 需要具备如下最小权限: SELECT、CREATE、DROP、DELETE、INSERT、UPDATE、ALTER、CREATE VIEW、CREATE ROUTINE、REFEREN CES 。 RDS for MySQ L实例 的root账户默认已具备上述权限。当目标库为8.0.14-8.0.18版本时,还需要有SESSION_VARIABLES_ADMIN权限。 建议创建单独用于DRS任务连接的数据库账号,避免因为数据库账号密码修改,导致的任务连接失败。 连接源和目标数据库的账号密码修改后,请尽快修改DRS任务中的连接信息,避免任务连接失败后自动重试,导致数据库账号被锁定影响使用。
  • 注意事项 为保证任务的正常运行,DRS提供了自动化的检查方法,在您启动DRS任务前,会针对源数据库和目标数据库的相关配置、条件进行检查。主要的检查项和对应的处理建议请参考预检查项。除了预检查项目之外,您还需要注意的事情参见表4。 表4 注意事项 类型名称 使用和操作限制 源数据库限制 不支持reset master或reset master to命令,可能会导致DRS任务失败或者数据不一致。 源数据库不允许存在与目标库同名的无主键表。 如果源数据库MySQL不支持TLS1.2协议,或者为版本较低的自建库(低于5.6.46或在5.7.0-5.7.28之间),需提交运维申请才能使用SSL测试连接。 使用限制 通用: 不建议修改、删除连接源和目标数据库的用户的用户名、密码、权限,或修改源和目标数据库的端口号。 不允许对正在同步中的目标数据库进行修改操作(包括但不限于DDL、DML操作)。 不允许源库和目标库执行清除Binlog的操作。 需要DRS任务同步索引的情况下,目标库对应表上不能存在同名但不同列信息的索引。全量阶段DRS会忽略对应表上已存在的同名索引,增量阶段DDL根据索引名操作索引时会触发错位问题。 数据同步过程中,不允许源数据库MySQL跨大版本升级,否则可能导致数据不一致或者同步任务失败(跨版本升级后数据、表结构、关键字等信息均可能会产生兼容性改变),建议在该场景下重建同步任务。 全量同步阶段: 任务启动和全量数据同步阶段,请不要在源数据库执行DDL操作,否则可能导致任务异常。 对MyISAM表执行修改操作时,可能造成数据不一致。 增量同步阶段: 如果设置session变量character_set_client为binary,可能导致乱码。 正向任务的增量同步支持任务再编辑追加同步对象。 支持断点续传功能,在主机系统崩溃的情况下,对于非事务性的无主键的表可能会出现重复插入数据的情况。 双向同步任务不支持任务重置功能。 正向任务的增量同步过程中支持部分DDL语句。 一对一的场景下,默认同步的DDL类型有CREATE_TABLE,RENAME_TABLE,ADD_COLUMN,MODIFY_COLUMN,CHANGE_COLUMN,DROP_COLUMN,DROP_INDEX,ADD_INDEX,CREATE_INDEX,RENAME_INDEX,DROP_TABLE,TRUNCATE_TABLE,DROP_PARTITION,RENAME_COLUMN,DROP_PRIMARY_KEY,ADD_PRIMARY_KEY,客户可以根据自身需求,在对象选择页面选择需要同步的DDL类型。 增量同步支持表的重命名,源表和目标表必须都在对象选择里。 反向任务的增量同步中不支持同步DDL。 不支持源数据库进行恢复到某个备份点的操作(PITR)。 不支持目标数据库恢复到全量同步时间段范围内的操作(PITR)。 增量同步中,不支持无主键表分布式事务。 结束任务: 任务正常结束: 请确保任务结束前,不要断开源和目标数据库的网络连通性,并在结束任务时关注同步日志上报的状态,达到数据库完整同步效果。 任务强制结束: 强制结束将直接释放DRS资源。 常见故障排查: 在任务创建、启动、全量同步、增量同步、结束等过程中,如有遇到问题,可先参考“故障排查”章节进行排查。 其他限制 若专属计算集群不支持4vCPU/8G或以上规格实例,则无法创建同步任务。 表名映射时,不支持同步视图、存储过程、函数依赖的表,不支持同步表的外键约束。 对于表中的物理生成列,如果列是根据一个时间类型生成的,会存在此列数据不一致的可能性。 进行表级多对一同步时,源库不允许存在无主键表。 源库和目标库是相同的RDS实例时,不支持没有库映射的实时同步。 使用非字母、非数字、非下划线等字符作为库表名称,或库表映射后名称包含中划线、井号时,名称的长度请不要超过42个字符。 源数据库中的库名、表名如果存在非成对的{},可能导致表结构同步失败。进行数据映射后,映射到目标库中的库名、表名如果存在非成对{},可能导致表结构同步失败。 不支持分区表的分区字段进行列映射。 源库如果存在非标浮点类型,且非标浮点类型存在宽松模式可以写入但严格模式下无法写入的数据,同步过程可能会有数据不一致的风险。 若源库表开启了TDE透明 数据加密 ,目标库也需要开启TDE特性,否则会导致表结构创建失败,任务异常。 在创建DRS任务之前,如果源或者目标数据库实例开启并设置了SQL限流规则,可能会导致DRS任务失败。 创建任务时,正向任务和反向任务对象选择的维度(表级、库级、对象文件导入)需要保持一致。 同步任务创建后,源和目标数据库不能设置为“只读”。 支持目标数据库中的表比源数据库多列场景,但是需要避免以下场景可能导致的任务失败。 目标数据库多的列要求非空且没有默认值,源库insert数据,同步到目标数据库后多的列为null,不符合目标数据库要求。 目标数据库多的列设置固定默认值,且有唯一约束。源库insert多条数据后,同步到目标数据库后多的列为固定默认值,不符合目标数据库要求。 如果涉及表级汇集的多对一同步任务,则不支持DDL,否则会导致同步全部失败。 已选择的表与未选择的表之间互相rename的DDL操作,在任务同步中会被过滤掉,可能会导致任务失败或数据不一致。 对于一个DDL中存在一个rename的情况(例如:rename A TO B),只支持rename前后库表都在已选择库表中的rename操作(A和B都在已选择库表中),其他情况的rename DDL会被过滤。 对于一个DDL中存在多个rename的情况(例如:rename A TO B, B TO C),只支持rename前后库表都在已选择库表中的部分rename操作 ,其他情况的rename DDL会被过滤(A和B在已选择库表中,C不在,仅执行rename A TO B)。 不建议在多对一同步场景下的进行rename操作,可能会导致任务失败或数据不一致。 请不要在同一时间在正向任务的源库和反向任务的源库对同一张表中的同一条数据进行业务操作,这样可能会造成数据不一致。
  • 任务状态说明 实时同步任务的状态和说明,请参见表1。 表1 实时同步任务状态和说明 状态 说明 创建中 正在创建数据复制服务需要用到的同步实例。 创建任务失败 创建实时同步实例失败。 配置 同步实例创建成功,但还没有启动任务,可以继续配置任务。 冻结 账户余额小于或等于0元,系统对该用户下的实例进行冻结。 等待启动 已经下发了定时启动同步任务到同步实例上,等待同步实例启动任务。 启动中 正在启动实时同步任务。 启动失败 实时同步任务启动失败。 全量同步 正在进行源数据库到目标数据库的全量同步任务。 全量同步失败 实时同步任务全量同步失败。 增量同步 持续进行从源数据库到目标数据库的增量实时同步。 增量同步失败 实时同步任务增量同步失败。 任务变更中 编辑同步对象后,正在进行同步任务变更。 任务变更失败 编辑同步对象后,同步任务变更失败。 故障恢复 同步实例发生故障,系统自动恢复同步任务。 已暂停 实时同步任务已暂停。 克隆中 正在进行同步任务克隆。 克隆失败 克隆同步任务失败。 规格变更中 正在进行同步实例规格变更,变更结束任务自动恢复任务。 规格变更失败 同步实例规格变更失败。 AZ倒换失败 实时同步任务进行AZ倒换失败。 结束任务 释放执行同步任务所使用的同步实例和资源。 结束任务中 正在释放同步任务所使用的同步实例和资源。 结束任务失败 释放同步任务所使用的同步实例和资源失败。 已结束 释放同步任务所占同步实例成功。 全量停止 全量同步已停止,在同步进度页面可以进行再次启动。 增量停止 增量同步已停止,在同步进度页面可以进行再次启动。 对于创建失败的任务,DRS默认保留3天,超过3天将会自动结束任务。 对于未启动、状态为配置中的任务,DRS默认保留3天,超过3天DRS会自动删除后台资源,当前任务状态不变。当用户再次配置时,DRS会重新申请资源。 已删除的同步任务在状态列表中不显示。 已结束的任务,无法进行具有状态转移的操作,比如暂停,重启,重置等。 父主题: 任务生命周期
  • SSL认证 使用SSL加密方式连接Kafka,需要设置SSL相关配置。 图3 SSL 表2 参数信息 参数 描述 Truststore证书 后缀名为jks的SSL证书,证书文件生成可参考SSL证书。 Truststore证书密码 证书对应的秘钥。 主机名端点识别算法 指定通过服务端证书验证服务端主机名的端点识别算法,选填,不填表示禁用主机名验证。 SSL双向认证 是否开启SSL双向认证。 Keystore证书 SSL双向认证开启可见,需要上传后缀名为jks的双向认证证书。 Keystore证书密码 SSL双向认证开启可见,SSL双向认证证书对应的秘钥。 Keystore私钥密码 选填,Keystore证书中私钥的密码。
  • SASL_PLAINTEXT认证 使用SASL机制连接Kafka,需要设置SASL相关配置。 图2 SASL_PLAINTEXT 表1 参数信息 参数 描述 SASL机制 用于客户端连接的SASL机制,支持以下四项,Kafka server默认是 GSSAPI 机制,更多说明可参考SASL机制。 GSSAPI PLAIN SC RAM -SHA-256 SCRAM-SHA-512 令牌委托 是否为委托令牌鉴权,SASL机制选择“SCRAM-SHA-256”或者“SCRAM-SHA-512”时可见。 用户名 登录使用的用户名。 密码 登录使用的密码
  • 支持的源和目标数据库 表1 支持的数据库 源数据库 目标数据库 GaussDB分布式(支持与目标端相同兼容模式同步,不支持M兼容模式同步。版本数据库内核版本为505.2及以下版本,内核版本与数据库引擎版本的关系请参考云数据库GaussDB的数据库引擎版本说明。) GaussDB集中式版(版本数据库内核版本为505.2及以下版本,内核版本与数据库引擎版本的关系请参考云数据库GaussDB的数据库引擎版本说明。) 说明: 仅支持目标库版本等于或高于源库版本。
  • 数据库用户权限要求 在使用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权限。 需要具备远程连接权限,添加方法可参考GaussDB远程连接配置方法。 需要保证安全组和防火墙策略放开对应连接端口,详细说明可参考GaussDB为源链路增量同步连接及端口说明。 具备sysadmin角色或者以下最小权限: 需要REPLICATION权限或继承了内置角色gs_role_replication的权限、DATABASE的CONNECT权限、SCHEMA的USAGE权限、表的SELECT或UPDATE权限(无主键表锁表需要UPDATE权限)、SEQUENCE的SELECT权限。 需要具备远程连接权限,添加方法可参考GaussDB远程连接配置方法。 需要保证安全组和防火墙策略放开对应连接端口,详细说明可参考GaussDB为源链路增量同步连接及端口说明。 目标数据库连接用户 具备sysadmin角色或者以下最小权限: 需要DATABASE的CONNECT和CREATE权限、SCHEMA的USAGE和CREATE权限、表的INSERT、UPDATE、DELETE、SELECT、ALTER、INDEX、COMMENT权限。 目标库使用gsloader等工具创建相关系统表(如 public.pgxc_copy_error_log,public.gs_copy_summary)时,DRS访问相关系统表需要有系统表的all privilege权限,详细信息可参考《GaussDB工具参考》。
  • 实例监控指标 数据复制服务性能监控指标,如表1所示。 表1 数据复制服务支持的监控指标 指标ID 指标名称 指标含义 取值范围 单位 进制 测量对象 监控周期(原始指标) cpu_util CPU使用率 该指标用于统计测量对象的CPU使用率,以比率为单位。 0-100 % 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 mem_util 内存使用率 该指标用于统计测量对象的内存使用率。 0-100 % 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 network_incoming_bytes_rate 网络输入吞吐量 该指标用于统计平均每秒从测量对象的所有网络适配器输入的流量。 ≥ 0 byte/s 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 network_outgoing_bytes_rate 网络输出吞吐量 该指标用于统计平均每秒从测量对象的所有网络适配器输出的流量。 ≥ 0 byte/s 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 disk_read_bytes_rate 磁盘读吞吐量 该指标用于统计每秒从磁盘读取的字节数。 ≥ 0 byte/s 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 disk_write_bytes_rate 磁盘写吞吐量 该指标用于统计每秒写入磁盘的字节数。 ≥ byte/s 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 disk_util 磁盘利用率 该指标用于统计测量对象的磁盘利用率。 0-100 % 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 extract_bytes_rate 读源库吞吐量 该指标用于统计每秒从源库读取表数据或者WAL的字节数。 ≥ 0 byte/s 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 extract_rows_rate 读源库频率 该指标用于统计每秒从源库读取表数据或者WAL的行数。 ≥ 0 row/s 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 extract_latency 源库WAL抽取延迟 该指标用于统计当前从源库抽取WAL的延迟。 ≥ 0 ms 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 apply_bytes_rate 写目标库吞吐量 该指标用于统计每秒向目标库写入数据的字节数。 ≥ 0 byte/s 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 apply_rows_rate 写目标库频率 该指标用于统计每秒向目标库写入数据的行数。 ≥ 0 row/s 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 apply_transactions_rate DML TPS 该指标用于统计每秒向目标库写入的DML事务数。 ≥ 0 transaction/s 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 apply_ddls_number或apply_ddls_rate 说明: apply_ddls_rate在2022年12月之后替换为apply_ddls_number。 DDL TPS 该指标用于统计向目标库写入的DDL事务总数。 ≥ 0 transaction 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 apply_latency 数据同步延迟 该指标用于统计当前数据向目标库回放延迟。 ≥ 0 ms 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 apply_average_execute_time 事务平均执行时间 该指标用于统计当前一个事务在目标库的平均执行时间(一个事务的RT=执行时间+提交时间)。 ≥ 0 ms 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 apply_average_commit_time 事务平均提交时间 该指标用于统计当前一个事务在目标库的平均提交时间(一个事务的RT=执行时间+提交时间)。 ≥ 0 ms 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 apply_current_state 同步状态 该指标用于表示当前内核数据的同步状态(10:异常,1:空闲,2:执行DML,3:执行DDL),不代表任务状态。 10:异常 1:空闲 2:执行DML 3:执行DDL 不涉及 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 apply_thread_workers 同步线程数量 该指标用于表示当前数据同步的工作线程数量。 ≥ 0 Counts 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 apply_job_status 任务状态 该指标用于表示当前任务所处的状态(0:正常,1:异常,2:暂停)。 0:正常 1:异常 2:暂停 不涉及 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟
  • 支持审计操作的关键列表 云审计 服务是安全解决方案中专业的日志审计服务,记录了数据复制服务的相关操作事件,方便您日后的查询、审计和回溯。 表1 云审计服务支持的数据复制服务操作列表 操作名称 资源类型 事件名称 创建任务 job createJob 编辑任务 job modifyJob 删除任务 job deleteJob 启动任务 job startJob 续传任务 job retryJob 父主题: 对接云审计服务
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全