华为云用户手册

  • 使用须知 DRS增量同步任务一般包含三个阶段:任务启动阶段、增量阶段、结束任务阶段。为了确保同步各个阶段的平顺,在创建同步任务前,请务必阅读以下使用须知。 表4 使用须知 类型名称 使用和操作约定 任务启动前须知 源数据库要求: 源数据库参数wal_level必须配置为logical; 源数据库需提前安装test_decoding插件; 源数据库中无主键表的replica identity属性必须为full; 源数据库的max_replication_slots参数值必须大于当前已使用的复制槽数量; 源数据库的max_wal_senders参数值必须等于或大于max_replication_slots参数值。 源数据库中表的主键列toast属性为main、external、extended时,其replica identity属性必须为full。 目标数据库要求: 目标库为社区Kafka。 Kafka的auto.create.topics.enable参数建议为false。 其他使用须知: 若专属计算集群不支持4vCPU/8G或以上规格实例,则无法创建同步任务。 库级同步时,增量同步中的任务,不支持“编辑”操作。 表级同步时,增量同步中的任务,支持“编辑”操作,但是不支持更换数据库。 在启动任务前,请确保源库中未启动长事务,源库启动长事务会阻塞逻辑复制槽的创建,进而引发任务失败。 在任务启动后,仅支持以下版本的源库发生主备倒换:源库为RDS for PostgreSQL 12.6及以上的小版本、RDS for PostgreSQL 13及以上版本的所有小版本。 由于长事务导致的创建逻辑复制槽失败或逻辑复制槽不存在的问题,需要通过重置任务来重新启动。 增量同步过程须知 请勿修改源库和目标库的端口号,请勿修改、删除源库和目标库连接用户的密码、权限,否则可能导致任务失败。 请勿删除源数据库表的主键,否则可能导致增量数据缺失或任务失败。 请勿修改源数据库中表的replica identity属性,否则可能导致增量数据缺失或任务失败。 请勿在Kafka上删除接收DRS数据的topic,否则可能导致任务失败。 库级同步时,源库新增无主键表时,请务必同时将该无主键表的replica identity属性设置为full,然后再写入数据,否则可能导致增量数据缺失或任务失败。 库级同步时,源库新增主键表时,如果主键列toast属性为main、external、extended时,请务必同时将该表的replica identity属性设置为full,然后再写入数据,否则可能导致数据不一致或任务失败。 增量同步过程中暂停、任务异常续传,目标Kafka中可能会出现重复数据,请使用Kafka数据中的id字段进行去重。 结束任务须知 正常结束任务: 全量+增量实时同步任务正常结束时,将自动删除任务在源库创建的流复制槽。 强制结束任务: 强制结束全量+增量实时同步任务,需要手动删除源库可能残留的复制槽,可参考PostgreSQL为源强制结束任务章节的指导进行操作。 逻辑复制槽命名规则为“drs_唯一性标识”,其中唯一性标识需要将任务node id中的“-”替换为“_”获取。node id可在DRS任务同步日志页面查看task node id is ***日志找到。
  • 使用建议 DRS任务启动和全量数据同步阶段,请不要在源数据库执行DDL操作,否则可能导致任务异常。 为保证同步前后数据一致性,确保同步期间目标数据库无业务写入。 数据库同步与环境多样性和人为操作均有密切关系,为了确保同步的平顺,建议您在进行正式的数据库同步之前进行一次演练,可以帮助您提前发现问题并解决问题。 基于以下原因,建议您在启动任务时选择“稍后启动”功能,将启动时间设置在业务低峰期,相对静止的数据可以有效提升一次性同步成功率,避免同步对业务造成性能影响。 在网络无瓶颈的情况下,全量同步会对源数据库增加约50MB/s的查询压力,以及占用2~4个CPU。 正在同步的数据被其他事务长时间锁死,可能导致读数据超时。 由于MySQL固有特点限制,CPU资源紧张时,存储引擎为Tokudb的表,读取速度可能下降至10%。 DRS并发读取数据库,会占用大约6-10个session连接数,需要考虑该连接数对业务的影响。 全量阶段读取表数据时,特别是大表的读取,可能会阻塞业务上对大表的独占锁操作。 更多DRS对数据库的影响,可参考DRS对源数据库和目标数据库有什么影响。 数据对比 建议您结合数据对比的“稍后启动”功能,选择业务低峰期进行数据对比,以便得到更为具有参考性的对比结果。由于同步具有轻微的时差,在数据持续操作过程中进行对比任务,可能会出现少量数据不一致对比结果,从而失去参考意义。
  • DRS灾备的RPO、RTO是什么 RPO(Recovery Point Objective)指当前业务数据库一个事务的提交时间,与该事务送达DRS的时间差(该事务通常也是DRS收到的最新的一个事务)。是主实例与DRS实例数据差的一种度量方式,RPO=0时,意味着业务数据库的最新数据已经全部到达DRS实例。 RTO(Recovery Time Objective)指当前DRS实例上事务,传输至灾备实例且执行成功的时间差(该事务通常也是DRS收到的最新的一个事务)。RTO是处在传输中数据量的一种度量方式,RTO=0时,意味着DRS实例上的事务已经全部在灾备数据库上执行完毕。 图1 RPO和RTO 父主题: 实时灾备
  • 本地数据库实时迁移 网络准备: 源数据库的网络设置: 本地MySQL数据库迁移至本云云数据库 RDS for MySQL的场景,一般可以使用VPN网络和公网网络两种方式进行迁移,您可以根据实际情况为本地MySQL数据库开放公网访问或建立VPN访问。一般推荐使用公网网络进行迁移,该方式下的数据迁移过程较为方便和经济。 目标数据库的网络设置: 若通过VPN访问,请先开通VPN服务,确保源数据库MySQL和目标端本云云数据库 RDS for MySQL的网络互通。 若通过公网网络访问,本云云数据库 RDS for MySQL实例不需要进行任何设置。 安全规则准备: 源数据库的安全规则设置: 若通过公网网络进行迁移,源数据库MySQL需要将DRS迁移实例的弹性公网IP添加到其网络白名单内,使源数据库与本云的网络互通。在设置网络白名单之前,需要获取DRS迁移实例的弹性公网IP,具体方法如下: DRS迁移实例创建成功后,可在“源库及目标库”页面获取DRS迁移实例的弹性公网IP。 若通过VPN网络进行迁移,源数据库MySQL需要将DRS迁移实例的私有IP添加到其网络白名单内,使源数据库与本云的网络互通。DRS迁移实例创建成功后,可在“源库及目标库”页面获取DRS迁移实例的私有IP。 以上白名单是为了进行迁移针对性设置的,迁移结束后可以删除。 目标数据库安全规则设置: 目标数据库默认与DRS迁移实例处在同一个VPC,网络是互通的,DRS可以直接写入数据到目标数据库。 设置目标数据库所在VPC的安全组,确保DRS实例IP的出方向到本地数据数据库的IP、监听端口放通。具体设置如下图所示: 图2 出口规则
  • ECS自建数据库实时迁移 网络准备: 源数据库所在的region要和目标端本云云数据库 RDS for MySQL实例所在的region保持一致。 源数据库可以与目标端本云云数据库 RDS for MySQL实例在同一个VPC,也可以不在同一个VPC。 当源库和目标库处于同一个VPC时,网络默认是互通的。 当不在同一个VPC的时候,要求源数据库实例和目标端本云云数据库 RDS for MySQL实例所处的子网处于不同网段,此时需要通过建立对等连接实现网络互通。具体建立VPC对等连接的方法,可参考《虚拟私有云用户指南》。 安全规则准备: 同一VPC场景下,默认网络是连通的,不需要单独设置安全组。 不同VPC场景下,通过建立对等连接就可以实现网络互通,不需要单独设置安全组。
  • 跨云数据库实时迁移 网络准备。 源数据库需要开放公网访问。 源数据库的网络设置: 源数据库MySQL实例需要开放外网域名的访问。 以阿里云云数据库RDS MySQL迁移到本云云数据库 RDS for MySQL为例,一般情况下,阿里云RDS MySQL不提供外网地址,需要通过申请外网地址来允许外部的应用对接,具体的操作及注意事项可以参考源数据库所在云提供的相关指导。 目标数据库的网络设置: 目标数据库默认与DRS迁移实例处在同一个VPC内,网络是互通的,不需要进行任何设置。 安全规则准备。 源数据库的安全规则设置: 源数据库MySQL实例需要将DRS迁移实例的弹性公网IP添加到其网络白名单中,确保源数据库MySQL实例可以与上述弹性公网IP连通。 以上讲述的是精细配置白名单的方法,还有一种简单设置白名单的方法,在安全允许的情况下,可以将源数据库MySQL实例的网络白名单设置为0.0.0.0/0,代表允许任何IP地址访问该实例。 上述的网络白名单是为了进行数据迁移设置的,迁移结束后可以删除。 目标数据库安全规则设置: 目标数据库默认与DRS迁移实例处在同一个VPC,网络是互通的,DRS可以直接写入数据到目标数据库。 设置目标数据库所在VPC的安全组,确保DRS实例IP的出方向到本地数据数据库的IP、监听端口放通。具体设置如下图所示: 图1 出口规则
  • 排查iptables设置 以源数据库为本云ECS自建数据库为例,如果在上述的操作后,仍无法连通,此时需要额外排查iptables设置,因为HOSTGUARD服务在DRS发起频繁连接请求失败时,会将请求IP加入黑名单中。 登录弹性云服务器。 执行以下命令,排查是否有DENY相关的项目包含DRS实例的IP,一般项目名称为IN_HIDS_MYSQLD_DENY_DROP 。 iptables --list 如果存在,执行以下命令,查询iptables入方向规则列表,获取具体规则编号(line-numbers)。 iptables -L INPUT --line-numbers 执行以下命令,删除DRS实例的IP相关的入方向规则(注意:必须从后往前删,不然line-numbers会更新,需要重新查询)。 iptables -D 规则项目名 具体规则编号 删除相关iptables规则后重新进行测试连接即可。
  • 为什么DRS不支持部分他云只读实例的备库做源库 对于DRS的增量或者全量+增量任务,不支持部分他云只读实例的备库做源库进行数据迁移。DRS增量迁移是通过读取源数据库的原始增量日志数据(例如MySQL的Binlog)后解析转换进行 。 以MySQL的Binlog为例,部分他云只读MySQL备库的Binlog并不完整,会导致DRS无法进行增量数据同步。用户可使用mysqlbinlog下载并确认Binlog内容完整性。 下载命令:注意,该命令会把 $binlogLogName文件后的所有日志下载下来,如果只是确认Binlog内容完整性,可以选择一个Binlog下载。 mysqlbinlog --no-defaults -h$sourceHost -u$sourceUsername -P$sourcePort -p$sourcePassword --raw --read-from-remote-server $binlogLogName --to-last-log 查看Binlog内容: mysqlbinlog --base64-output=decode-rows -v $binlogLogName 正常Binlog 父主题: 产品咨询
  • 实时迁移、实时同步和实时灾备有什么区别 对比项 实时迁移 实时同步 实时灾备 适用场景 跨云平台数据库迁移、云下数据库迁移上云或云上跨区域的数据库迁移等多种业务场景迁移。 实时分析,报表系统,数仓环境等。 实现云下数据库到云上的灾备、跨云平台的数据库灾备。 特点 同构数据库间以整体数据库搬迁为目的。 支持包括:表、数据、索引、视图、存储过程、函数、数据库账号、数据库参数等。 可选择表级、库级或全部迁移维度。 支持同构、异构数据库间的数据同步,维持不同业务之间的数据持续性流动。 聚焦于表和数据,并满足多种灵活性的需求。 可选择表级、库级同步维度。 支持同构数据库间的数据灾备。 实现异地数据库主备倒换的效果。 实例级灾备,不支持表级、库级对象选择。 支持的数据库 详情请参见迁移方案概览。 详情请参见同步方案概览。 详情请参见灾备方案概览。 功能特性 支持迁移用户。 不支持迁移用户。 默认迁移所有用户,不支持选择。 支持参数对比。 不支持参数对比。 支持参数对比。 不支持增量阶段编辑迁移对象。 支持增量阶段编辑同步对象,动态增减同步对象。 不支持增量阶段编辑灾备对象。 不支持对象名映射。 支持对象名映射,使同步的库表在源数据库和目标数据库中存储名称不同。 不支持对象名映射。 不支持数据加工能力。 支持数据加工能力,可对选择的对象添加规则,如数据过滤、列加工等。 不支持数据加工能力。 不支持主备倒换。 不支持主备倒换。 支持主备倒换。 计费方式 仅支持按需计费。 支持按需计费和包年/包月。 支持按需计费和包年/包月。 更多特性 不同链路支持的功能特性也不相同,详情请参见对应链路使用须知。 不同链路支持的功能特性也不相同,详情请参见对应链路使用须知。 不同链路支持的功能特性也不相同,详情请参见对应链路使用须知。 父主题: 产品咨询
  • 修订记录 发布日期 修改说明 2024-02-28 第四十五次正式发布,新增如下内容: MySQL或MariaDB不同版本之间的语法差异 GaussDB远程连接配置方法 GaussDB为源链路增量同步连接及端口说明 2023-10-30 第四十四次正式发布,新增如下内容: 为什么迁移前后数据库磁盘空间使用量不一致 2023-09-30 第四十三次正式发布,新增如下内容: DRS支持caching_sha2_password加密用户迁移吗 2023-08-30 第四十二次正式发布,新增如下内容: DRS任务创建后支持修改源或目标数据库吗 2023-07-30 第四十一次正式发布,新增如下内容: DRS任务表数量太多导致任务超时怎么办 DRS增量同步怎样填启动位点 2023-05-30 第四十次正式发布,新增如下内容: MySQL账号迁移后权限显示多了反斜杠“\” 创建DRS任务提示用户权限不足或没有操作权限 2023-04-30 第三十九次正式发布,新增如下内容: 为什么DRS不支持部分他云只读实例的备库做源库 2023-02-28 第三十八次正式发布,新增如下内容: 设置SMN主题策略,允许DRS发送消息通知 2023-01-30 第三十七次正式发布,新增如下内容: 源或者目标数据库哪些操作,会影响DRS任务状态 订阅SDK获取不到数据,且程序异常 为什么实时灾备任务不支持触发器(TRIGGER)和事件(EVENT) DRS全量阶段迁移过慢或者进度不更新可能原因 DRS增量阶段时延增高可能原因 2022-11-30 第三十六次正式发布,新增如下内容: DRS是否支持只迁移表结构不迁移数据 MySQL迁移、同步、灾备任务怎么迁移账号,是否支持修改密码 影响DRS任务速度的因素有哪些以及如何进行耗时预估 DRS任务支持修改对象吗 DRS是否支持同一实例不同库之间的同步 一对多的场景约束及操作建议 DDM为源链路源库分片数量和信息怎么填写 源端MySQL发生主备倒换,DRS任务会丢数据吗 DRS对象选择时的全部迁移、表级迁移、库级迁移有什么区别 源库或目标库修改密码后如何操作 2022-08-30 第三十五次正式发布,新增如下内容: DRS是否支持双向实时同步 Oracle到GaussDB字符集兼容性说明 2022-07-30 第三十四次正式发布,新增如下内容: DRS任务的双AZ和单AZ有什么区别 同步到GaussDB(DWS)的方案选型 同步到GaussDB(DWS)的使用建议 DRS对比任务对数据库有什么影响 资源冻结/释放/删除/退订 2022-05-30 第三十三次正式发布,新增如下内容: 目标库读写设置是实例级还是库级 未启动任务计费说明 什么是SMN主题 已经创建的SMN主题为什么选择不了 任务创建成功后是否支持修改SMN主题 2022-04-30 第三十二次正式发布,新增如下内容: 源库Oracle补全日志检查方法 MongoDB链路时延增高可能原因 包年包月到期说明 DRS支持跨账号云数据库迁移吗 2022-03-30 第三十一次正式发布,新增如下内容: DRS支持一键反向功能吗 DRS需要源数据库停止业务吗 2022-02-28 第三十次正式发布,新增如下内容: 源库Oracle为RAC集群时,为什么建议使用SCAN IP连接 双主灾备子任务的正向和反向怎么理解 2021-12-31 第二十八次正式发布,新增如下内容: DRS对源数据库和目标数据库有什么影响 灾备任务时延增高常见原因 2021-10-30 第二十七次正式发布,新增如下内容: 重置任务和重新创建任务有什么区别 2021-09-30 第二十六次正式发布,新增如下内容: 已结束的任务还能重新启动吗 DRS公网网络的EIP带宽是多少 2021-08-30 第二十五次正式发布,新增如下内容: MySQL迁移出现数据膨胀怎么办 分片集群MongoDB迁移前清除孤儿文档 2021-08-03 第二十四次正式发布,新增如下内容: 内容对比不支持哪些数据类型 任务结束后不删除还会计费吗 2021-07-05 第二十三次正式发布,新增如下内容: 灾备任务的主备倒换是自动触发,还是手动触发 实时灾备是否支持指定库进行灾备 失败任务计费说明 暂停任务计费说明 2021-05-31 第二十二次正式发布,新增如下内容: DRS实时同步支持使用Online DDL工具吗 2021-04-30 第二十一次正式发布,新增如下内容: DRS导出任务列表 2021-03-30 第二十次正式发布,新增如下内容: 什么是配额 创建DRS任务后执行自动功能失败 2021-01-30 第十九次正式发布,新增如下内容: 数据复制服务是否采用了并发技术 数据复制服务是否采用了压缩技术 2020-11-30 第十八次正式发布,新增如下内容: 为什么DRS发送提示信息的语言和页面不符 为什么DRS任务自动结束了 2020-07-31 第十七次正式发布,新增如下内容: 如何处理迁移实例和数据库网络连接异常 2020-04-30 第十六次正式发布,新增如下内容: 实时迁移、实时同步和实时灾备有什么区别 2020-03-31 第十五次正式发布,新增如下内容: 实时灾备常见异常场景示例 2020-02-29 第十四次正式发布,新增如下内容: DRS要求的MySQL权限有哪些 什么是单主/双主灾备 双主灾备的主1、主2如何选择 2020-01-30 第十三次正式发布,新增如下内容: 低版本迁移至MySQL 8.0,应该注意哪些问题 DRS支持断点续传吗 RDS for MySQL不支持MyISAM引擎表,迁移时MyISAM如何处理 DRS灾备的RPO、RTO是什么 Oracle等异构数据库迁移到MySQL后的数据库排序规则为什么是utf8mb4_bin 2019-11-30 第十二次正式发布,新增如下内容: Oracle到MySQL迁移时,索引超长如何处理 2019-10-30 第十一次正式发布,新增如下内容: 数据复制服务是否支持某个时间段的数据复制 如何确保业务数据库的全部业务已经停止 2019-09-30 第十次正式发布,新增如下内容: 为什么MariaDB和SysDB下的数据不迁移或同步 迁移日志提示can not get agency token 2019-08-30 第九次正式发布,新增如下内容: MySQL迁移中Definer强制转化后如何维持原业务用户权限体系 扩大带宽是否会对DRS正在进行中的任务产生影响 DRS支持将DB2 for LUW迁移到PostgreSQL吗 Microsoft SQL Server数据库能与本地数据库的数据实时同步吗 2019-6-30 第八次正式发布,新增如下内容: 如何关闭集合均衡器Balancer MySQL源库设置了global binlog_format = ROW没有立即生效 DRS是否支持公有云和专属云间的数据库迁移 DRS支持直接同步不同schema的表到同一个schema吗 2019-05-30 第七次正式发布,新增如下内容: 修改数据库后,到SDK的用户端消费一般有多长时间的延迟 DRS界面信息重叠是什么原因 MongoDB数据库迁移过程中,源数据库出现内存溢出(OOM)是什么原因 2019-04-30 第六次正式发布,新增如下内容: 如何批量导出、导入事件(event)和触发器(trigger) 2018-12-30 第五次正式发布,新增以下内容: 源库参数lower_case_table_names=1时,为什么不允许迁移包含大写字母的库或者表 如何设置MongoDB数据库分片集群的分片键 设置的密码不符合目标库的密码复杂度要求时,如何修改密码强度 2018-11-30 第四次正式发布,新增以下内容: 新增常见问题:哪些情况下会出现目标数据库重启(已不存在该问题) 2018-08-31 第三次正式发布,新增以下内容: 在线迁移 支持PostgreSQL引擎任务迁移。 常见问题:如何将源数据库的用户与权限导出,再导入到目标数据库 2018-07-14 第二次正式发布,新增以下内容: 在线迁移 新增MongoDB数据库引擎任务迁移。 2018-06-30 第一次正式发布。
  • 为什么实时灾备任务不支持触发器(TRIGGER)和事件(EVENT) 数据库的触发器(TRIGGER)和事件(EVENT)操作会记录binlog,DRS通过解析binlog同步数据,如果业务侧写入与触发器、事件存在同样对象,就会发生重复执行导致数据不一致或者任务失败,所以在灾备场景下,触发器和事件是不支持的。 假如源库表user存在这样触发器,当表user写入数据时,触发器会同步往另一个log表中写入一条日志数据。 当源库业务侧写入了一条数据到user表。 触发器同步了这条数据到log表,此时binlog中会有两条数据,如下图,第一条就是业务插入user表的数据,第二条是触发器被触发,写入到log中的数据。 DRS同步数据的时候可能会出现以下情况: 如果先同步了插入的数据到目标库user表,这时候目标数据库的触发器被触发,目标库log表会自动写入,当同步第二条log表数据时,就无法将这条log表数据写到目标库了,数据冲突任务报错。 如果先同步log表中的数据,再同步user表的数据时,这时候目标数据库的触发器被触发,会导致log表多一条数据,发生数据不一致问题。 同理,事件(EVENT)也会记录binlog并在目标库再次执行,这也会导致上述问题。 DRS实时迁移支持触发器和事件,是因为DRS会在结束任务的时候去迁移触发器和事件,在结束任务成功的时候保证目标库和源库的对象一致。 父主题: 实时灾备
  • DRS增量同步怎样填启动位点 MySQL的单增量同步任务,在“设置同步”页面需要填写启动位点,任务源库日志从位点后开始获取(不含当前启动位点)。 图1 启动位点 当数据库的gtid_mode参数是on的情况下,位点信息由三部分构成:文件名(File)、位置(Position)和已执行的Global Transaction Identifiers Set(Executed_Gtid_Set),这些值可通过show master status命令获取(如果源库为MySQL 5.5版本,则不支持)。填写Executed_Gtid_Set的时候,需要删换其中的换行符再进行填入。 例如,社区版MySQL获取信息如下: 根据获取信息,任务的启动位点设置为如下,其中需要填入的Executed_Gtid_Set应为c8cd8ff7-da6f-11ec-a945-00d861ef1161:1-3,f4f9537f-0c8b-11ec-a284-00d861ef116a:1-10820402。 图2 设置启动位点 父主题: 实时同步
  • 录制回放 录制回放是指将源数据库发生的真实业务流量,在目标数据库模拟执行,从而观察和检验目标数据库的功能和性能表现。 录制回放主要分为录制、回放两个阶段,录制过程是从源数据库上将所需时间段内的全部SQL原语句(包括增、删、改、查)通过binlog下载、录制工具等进行采集,以文件形式缓存起来,并往目标数据库注入模拟数据,等待用户执行回放;用户可以在DRS任务上手工触发回放,观察目标数据库的性能表现。 常用场景: 数据库搬迁前,通过录制回放可以提前得知源业务在目标数据库的运行效果。 通过控制录制回放的线程及回放速度,来模拟源业务流量放大的效果,从而分析目标数据库对于未来业务激增时的稳定性表现。 图6 录制回放
  • 实时迁移 实时迁移是指在数据复制服务能够同时连通源数据库和目标数据库的情况下,只需要配置迁移的源、目标数据库实例及迁移对象即可完成整个数据迁移过程,再通过多项指标和数据的对比分析,帮助确定合适的业务割接时机,实现最小化业务中断的数据库迁移。 实时迁移支持多种网络迁移方式,如:公网网络、VPC网络、VPN网络和专线网络。通过多种网络链路,可快速实现跨云平台数据库迁移、云下数据库迁移上云或云上跨区域的数据库迁移等多种业务场景迁移。 特点:通过增量迁移技术,能够最大限度允许迁移过程中业务继续对外提供使用,有效的将业务系统中断时间和业务影响最小化,实现数据库平滑迁移上云,支持全部数据库对象的迁移。 图1 实时迁移
  • 实时同步 实时同步是指在不同的系统之间,将数据通过同步技术从一个数据源拷贝到其他数据库,并保持一致,实现关键业务的数据实时流动。 实时同步不同于迁移,迁移是以整体数据库搬迁为目的,而实时同步是维持不同业务之间的数据持续性流动。 常用场景:实时分析,报表系统,数仓环境。 特点:实时同步功能聚焦于表和数据,并满足多种灵活性的需求,例如多对一、一对多,动态增减同步表,不同表名之间同步数据等。 图3 多对一实时同步
  • 解决方案 方法一:使用主账号重新创建一次任务,主账号默认有Security Administrator权限,可在创建任务后将委托创建出来。 方法二:使用主账号在子账号所在的用户组添加Security Administrator权限后,重新创建任务。添加权限的具体操作请参见:创建用户并授权使用DRS。 方法三:手动添加“账户委托”,添加步骤如下: 使用主账号登录华为云,在右上角单击“控制台”。 在控制台页面,鼠标移动至右上方的账号名,在下拉列表中选择“统一身份认证”。 在统一身份认证页面,单击左侧导航窗格中“委托”,进入“委托”页面。 在“委托”页面,单击右上方的“+创建委托”进行委托创建。 填写委托名称为“DRS_AGENTCY” ,委托类型为 “普通账号”时, 委托的账号为 “op_svc_rds”;委托类型为“云服务”时,选择“关系型数据库MySQL”;持续时间为“永久”,完成后单击“下一步”。 图1 创建委托 在“选择策略”页面,选择DRS_AGENTCY的授权策略,委托权限需配置全局的 Tenant Administrator,完成后单击右下角的“下一步”。 图2 选择策略 在“设置最小授权范围”页面,先选择全局服务资源授权后,再基于指定区域设置最小授权范围,完成后单击右下角的“确定”。 图3 全局服务资源授权 图4 指定区域项目授权 授权完成后,单击委托名称,在“授权记录”中可看到全局服务和指定区域两条授权记录。 图5 授权记录 权限生效时间提醒,您选中的OBS权限由于系统设计的原因,授权后需等待15-30分钟才可生效,权限生效后重新创建即可。
  • 操作步骤 以下操作适用于目标数据库为RDS实例的情况。 登录关系型数据库服务控制台。 选择指定目标数据库实例。 单击实例名称。 页面跳转至“基本信息”页签,切换至“参数修改”页面。 在页面右上角搜索框,输入关键字“password”,查看搜索结果。 图1 修改密码 在5的搜索结果中,对于表1 密码参数列举的参数,需要根据密码复杂度要求进行修改,确保各参数在密码复杂度允许的范围内。 表1 密码参数 参数 允许值 说明 validate_password_length 0~2,147,483,647 validate_password插件校验的密码的最小字符数。 validate_password_mixed_case_count 0~2,147,483,647 指定当密码策略为MEDIUM(中)或更高时,为通过validate_password校验,密码至少需包含多少个大小写字符。 validate_password_number_count 0~2,147,483,647 指定当密码策略为MEDIUM(中)或更高时,为通过validate_password校验,密码至少需包含多少个数字。 validate_password_policy LOW, MEDIUM, STRONG validate_password插件执行的密码策略。 validate_password_special_char_count 0~2,147,483,647 指定当密码策略为MEDIUM(中)或更高时,为通过validate_password校验,密码至少需包含多少个非字母数字字符。 密码复杂度修改完成后,保存修改结果。 图2 保存修改结果 返回数据复制服务的“迁移模式”页面,继续执行下一步操作即可。
  • 关闭Balancer的步骤 通过Mongo Shell 登录数据库。 在mongos节点命令窗口中,使用如下命令,切换至config数据库。 use config 执行如下命令,判断是否可以关闭Balancer。 while( sh.isBalancerRunning() ) { print("waiting..."); sleep(1000); } 如果返回结果是waiting,则表示当前Balancer正在执行块(chunk)迁移,此时不能执行关闭Balancer的命令,否则可能引起数据不一致。 图1 查看输出结果 如果返回结果是空,则表示当前Balancer没有在进行块(chunk)迁移,此时可以执行下一步的关闭Balancer的命令。 关闭Balancer。 如果是整个实例的迁移,则执行如下命令,可以关闭整个实例的Balancer。 sh.stopBalancer() 如果要关闭待迁移且已经开启了分片的集合的Balancer,则执行如下命令: sh.disableBalancing("database.collection") 其中database.collection表示要关闭的集合的namespace。
  • MySQL账号迁移后权限显示多了反斜杠“\” 其他云MySQL使用DRS进行入云迁移后,迁移后的账号在RDS的控制台上显示带有反斜杠“\”。 迁移前在其他控制台查看,显示如下: 迁移后在RDS控制台查看,显示如下: 是因为MySQL GRANT语法支持通配符,详细可参考MySQL官网文档。DRS迁移逻辑是按照SQL查询结果进行权限迁移,实际目标端与源端账号权限是一致的,只是其他云控制台单独对“\_”做了处理,在界面上不显示转义字符“\”而已。 父主题: 实时迁移
  • 策略一 在测试连接页面的目标库信息中填写数据库用户名user1,所有Definer迁移到该用户下选“是”。 图1 策略一 这种策略下,源库所有存储过程和方法的Definer迁移到目标库后账号都会自动修改为user1,host改为% 。若在目标库上出现调用存储过程失败的情况,可执行如下操作: 使用uesr1账号登录到目标库RDS for MySQL实例。 如果需要使用其他账号调用存储过程,则该账号需要具有execute权限。 通过如下语句,使用user1授予其他账号执行存储过程的权限。 其中user表示需要调用存储过程的其他账号: GRANT EXECUTE ON db.* TO user; 如果需要通过Java调用存储过程,则需要通过如下语句,使用user1授予其他账号查询mysql.proc表的权限。 授权语句可参考如下语句,user表示需要调用存储过程的账号: GRANT SELECT ON mysql.proc TO 'user'@'%';
  • 策略二 在测试连接页面的目标库信息中填写数据库用户名user1,所有Definer迁移到该用户下选“否”。 图2 策略二 这种策略下,源库所有存储过程和方法的Definer迁移到目标库后账号和host保持不变,选择此选项,需要配合用户权限迁移功能,将源数据库的用户全部迁移,这样才能保持源数据库的权限体系完全不变。 如果您未选择用户权限迁移或者用户权限迁移时存在不支持迁移的账号,建议选择策略一来处理。
  • DRS支持跨账号云数据库迁移吗 图1 DRS产品架构 目前,DRS支持的网络类型有公网网络、VPC网络、VPN网络和专线网络,不同场景下,用户可根据情况进行选择。 原理上DRS采用JDBC连接,无需在用户的源数据库、目标数据库节点部署程序,只需用户的源数据库和目标数据库允许DRS实例节点通过所选择的网络访问和连接即可。 例如,用户需要将A账号的RDS-A实例迁移到B账号的RDS-B,可选择为RDS-A实例申请弹性公网IP并绑定,在B账号创建入云的DRS任务,选择通过公网网络进行迁移。 父主题: 网络及安全
  • MySQL 为了确保用户数据库成功迁移到本云关系型数据库MySQL实例,创建迁移任务时,数据复制服务自动为目标数据库实例创建drsFull和drsIncremental临时账户,任务结束后,数据复制服务会自动删除这两个账户。 禁止使用用户自建的drsFull和drsIncrementa账号作为DRS任务连接数据库的账号。 删除、重命名和修改这些账户的密码和权限,会导致任务出错。 表1 MySQL实例创建的数据库账户 账户 使用场景 Host 说明 drsFull 全量迁移 关系型数据库MySQL实例 用户启动全量迁移任务时,系统会在目标数据库中添加该账户,用于迁移数据。 drsIncremental 增量迁移 关系型数据库MySQL实例 用户启动增量迁移任务时,系统会在目标数据库中添加该账户,用于迁移数据。
  • 双主灾备子任务的正向和反向怎么理解 为了明确本云(本区)RDS在灾备中所扮演的角色,在创建双主灾备任务时,DRS使用主1、主2来区分角色。主1表示选择的本云RDS具有初始数据,主2则表示选择本云RDS为空库,等待接收数据。 如图1, 选择主2,表示创建任务时选择的本云数据库实例为空库,待接收数据,创建成功后,需先配置表示入云的正向任务,待正向任务进入“灾备中”状态时,再配置并启动反向任务。 选择主1,表示创建任务时选择的本云数据库实例具有初始数据,待同步数据,创建成功后,需先配置表示出云的反向任务,待反向任务进入“灾备中”状态时,配置并启动正向任务。 图1 双主灾备实例信息 父主题: 实时灾备
  • 如何确保业务数据库的全部业务已经停止 业务切换时可通过如下方法确保业务数据库的全部业务已经停止: 在源数据库端执行如下语句,查看当前是否还存在有业务连接 。 show processlist; 图1 查看是否存在业务连接 可选:如果源数据库有业务连接,则通过结果中Host列的值来查找对应的业务进程并将其停止。 在源库执行如下语句,查看binlog位置并记录该值(file列取值:position列取值 ),此处将该值记为ckpt1。 show master status; 图2 查看binlog位置 等待30s以上,在源库执行如下语句,查看binlog位置并记录该值(file列取值:position列取值 ),此处将该值记为ckpt2。ckpt1=ckpt2时,表示源数据库业务已基本停写。 show master status; 父主题: 实时迁移
  • 场景二:双主灾备,同时操作双边数据库,导致数据不一致 初始数据如下图所示(seqno为主键,column1为非主键)。 图3 初始数据 双方数据库同时分别执行如下操作: dr1库:insert into dr1 values(101,100); dr2库:insert into dr2 values(101,102); 执行操作后,双方数据库数据如下图所示。 图4 dr1库数据 图5 dr2库数据
  • 场景一:双主灾备,双边同时操作同一行操作,导致多数据 初始数据如下图所示(seqno为主键,column1为非主键)。 图1 dr1、dr2库初始数据 双方数据库同时分别执行如下操作: dr1库:update dr1 set seqno=5 where column1=8; dr2库:update dr2 set seqno=6 where column1=8; 执行操作后,双方数据库数据一致,并且多数据。 图2 dr1、dr2库数据
  • 如何选择区域? 选择区域时,您需要考虑以下几个因素: 地理位置 一般情况下,建议就近选择靠近您或者您的目标用户的区域,这样可以减少网络时延,提高访问速度。不过,在基础设施、BGP网络品质、资源的操作与配置等方面,中国大陆各个区域间区别不大,如果您或者您的目标用户在中国大陆,可以不用考虑不同区域造成的网络时延问题。 在除中国大陆以外的亚太地区有业务的用户,可以选择“亚太-曼谷”或“亚太-新加坡”区域。 在非洲地区有业务的用户,可以选择“南非-约翰内斯堡”区域。 在欧洲地区有业务的用户,可以选择“欧洲-巴黎”区域。 在拉丁美洲地区有业务的用户,可以选择“拉美-圣地亚哥”区域。 “拉美-圣地亚哥”区域位于智利。 资源的价格 不同区域的资源价格可能有差异,请参见华为云服务价格详情。
  • 什么是区域、可用区? 我们用区域和可用区来描述数据中心的位置,您可以在特定的区域、可用区创建资源。 区域(Region):从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 可用区(AZ,Availability Zone):一个AZ是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 图1阐明了区域和可用区之间的关系。 图1 区域和可用区 目前,华为云已在全球多个地域开放云服务,您可以根据需求选择适合自己的区域和可用区。更多信息请参见华为云全球站点。
  • 同步到GaussDB(DWS)的方案选型 同步性能是搭建同步链路时重点关注因素之一,同步性能涉及数据模型、源库负载、目标库负载、带宽延迟、DRS能力上限等,各局点的情况无法统一。 表1是DRS常见规格的性能上限参考,创建链路时需要结合客户数据模型和场景选择合适的DRS规格。 表1 规格性能上限 规格名称 性能上限(行/秒)参考 极小 300 小 3000 中 7500 大 10000 超大 20000 GaussDB(DWS)的规格说明可参考这里。 父主题: 实时同步
共100000条