华为云用户手册

  • 支持的源和目标数据库 表1 支持的数据库 备份文件版本 目标数据库版本 RDS for SQL Server全量备份文件版本: Microsoft SQL Server 2008 Microsoft SQL Server 2012 Microsoft SQL Server 2014 Microsoft SQL Server 2016 Microsoft SQL Server 2017 Microsoft SQL Server 2019 RDS for SQL Server Microsoft SQL Server 2008(存量版本) Microsoft SQL Server 2012 Microsoft SQL Server 2014 Microsoft SQL Server 2016 Microsoft SQL Server 2017 Microsoft SQL Server 2019 说明: 仅支持目标库大版本等于或高于源库大版本。 仅支持目标库功能性版本等于或高于源库功能性版本,如web版到标准版、标准版到企业版、企业版到企业版
  • 操作场景 标签管理服务(Tag Management Service,TMS)用于用户在云平台,通过统一的tag标签管理各种资源。TMS服务与各服务共同实现标签管理能力,TMS提供全局标签管理能力,各服务维护自身标签管理 。当用户资源较多时,可通过不同的标签标识和查找任务。 建议您先在TMS系统中设置预定义标签。 标签由“键”和“值”组成,每个标签中的一个“键”只能对应一个“值”。 每个实例最多支持20个标签配额。
  • 添加标签 在“备份迁移管理”页面,选择指定的备份迁移任务,单击任务名称进入“基本信息”页签。 在左侧导航栏,单击“标签”。 在“标签”页签单击“添加/编辑标签”,在“添加/编辑标签”弹出框中,输入标签的键和值,单击“添加”,然后单击“确定”。 输入标签的键和值时,系统会自动联想当前用户的所有实例(除当前实例外)的所有关联的预定义标签。 标签的键不能为空且必须唯一,长度为1~128个字符,可以包含任意语种字母、数字、空格和_.:=+-@字符,但首尾不能含有空格,不能以_sys_开头。 标签的值可以为空字符串,长度为0~255个字符,可以包含任意语种字母、数字、空格和_.:/=+-@字符,但首尾不能含有空格。 添加成功后,您可在当前任务的所有关联的标签集合中,查询并管理自己的标签。
  • 处理建议 如果确认未使用相关的加解密函数去操作业务,可以选择跳过该检查项。 如果需要修改数据库block_encryption_mode参数,可参考以下操作。 源数据库为本地自建MySQL库 方法一:执行以下命令,然后重启数据库使设置生效。 SET GLOBAL block_encryption_mode = '对应的加密模式' 方法二:在my.cnf或my.ini配置文件添加一行,然后重启数据库使设置生效。 block_encryption_mode = '对应的加密模式' 源数据库为云上RDS for MySQL实例,可参考修改实例参数修改数据库block_encryption_mode参数。
  • Oracle为源同步场景 表1 源库表字段类型检查 预检查项 源库表字段类型检查。 描述 对源数据库待同步表字段进行检查。 不通过提示及处理建议 不通过原因:源数据库表含有不支持的表字段类型。支持的表字段类型有: VARCHAR,VARCHAR2,NVARCHAR2,NUMBER,FLOAT,LONG,DATE,BINARY_FLOAT,BINARY_DOUBLE,RAW,LONG RAW,CHAR,NCHAR,CLOB,NCLOB,BLOB,ROWID,TIMESTAMP,TIMESTAMP WITH TIME ZONE,TIMESTAMP WITH LOCAL TIME ZONE。 处理建议:请选择其他可同步的表。
  • 可能原因 报错信息中包含detail:Read timed out:DRS启动任务后,DRS增量抓取在源端数据库创建逻辑复制槽时由于长事务阻塞,或者创建逻辑复制槽的过程中数据库未找到一致性位点,等待创建超时。 报错信息中包含slot [***] is active: DRS启动任务后,DRS增量抓取在源端数据库创建逻辑复制槽时由于长事务阻塞,复制槽未创建成功,此时状态会显示被占用(active),DRS自动重试时会出现此类报错。
  • 可能原因 报错信息中包含detail:Read timed out:DRS启动任务后,DRS增量抓取在源端数据库创建逻辑复制槽时由于长事务阻塞,或者创建逻辑复制槽的过程中数据库未找到一致性位点,等待创建超时。 报错信息中包含slot [***] is active: DRS启动任务后,DRS增量抓取在源端数据库创建逻辑复制槽时由于长事务阻塞,复制槽未创建成功,此时状态会显示被占用(active),DRS自动重试时会出现此类报错。
  • 场景描述 全量迁移或同步期间DRS任务报错,日志提示信息:An error occurred in the process DATAMOVE, caused by: apply event=[type=table_data, shard_id=0, batch_index_in_shard=1, table_name=%s, record_num=1] occur error, msg=apply data of table=%s failed: Data truncation: Invalid GIS data provided to function st_geometryfromtext.
  • 操作步骤 在“实时迁移管理”页面,单击左上角“批量导入任务”。 在“批量导入任务”对话框中,单击“下载模板”。 图1 批量导入任务 编辑下载的Excel模板,按照要求填写任务信息。 填写完成后,单击“添加文件”,完成模板上传。 待上传并校验成功后,单击“确定”提交创建任务。 DRS不会保存上传的Excel文件,只针对内容进行解析。 任务创建后,数据库的IP地址或域名、数据库用户名和密码,会被系统加密暂存,直至删除该任务后自动清除。
  • 操作场景 标签管理服务(Tag Management Service,TMS)用于用户在云平台,通过统一的tag标签管理各种资源。TMS服务与各服务共同实现标签管理能力,TMS提供全局标签管理能力,各服务维护自身标签管理 。当用户资源较多时,可通过不同的标签标识和查找任务。 建议您先在TMS系统中设置预定义标签。 标签由“键”和“值”组成,每个标签中的一个“键”只能对应一个“值”。 每个实例最多支持20个标签配额。
  • 添加标签 在“实时迁移管理”页面,选择指定的实时迁移任务,单击任务名称进入“基本信息”页签。 在左侧导航栏,单击“标签”。 在“标签”页签单击“添加/编辑标签”,在“添加/编辑标签”弹出框中,输入标签的键和值,单击“添加”,然后单击“确定”。 输入标签的键和值时,系统会自动联想当前用户的所有实例(除当前实例外)的所有关联的预定义标签。 标签的键不能为空且必须唯一,长度为1~128个字符,可以包含任意语种字母、数字、空格和_.:=+-@字符,但首尾不能含有空格,不能以_sys_开头。 标签的值可以为空字符串,长度为0~255个字符,可以包含任意语种字母、数字、空格和_.:/=+-@字符,但首尾不能含有空格。 添加成功后,您可在当前任务的所有关联的标签集合中,查询并管理自己的标签。
  • 对比约束限制 对比需要在任务处于增量阶段才能手动创建。 对比是大小写敏感的,如果源数据库或目标数据库一端为非大小写敏感,一端为大小写敏感,对比结果可能出现不一致的情况。 对于单全量,在任务结束的时候,DRS会自动创建对象对比和行对比。对比时如果源库有数据操作,可能会导致对比结果不一致。 如果在对比时源库进行DDL操作,为保证对比结果的准确性,需重新进行内容对比。 如果单独对目标库进行数据修改操作,可能会导致对比结果不一致。 如果源数据库字符类型存在编码异常的情况,通过DRS迁移或对比时会因数据库驱动转码转换为异常码点,最终可能导致内容对比一致,实际字节不一致。 内容对比功能目前只支持带有主键的表,对于不支持内容对比的表可以使用行数对比功能。所以数据级对比功能需要结合业务场景,选用行数对比或者内容对比。 DRS进行内容比对期间不能暂停DRS任务,否则可能导致比对任务失败。 部分数据类型不支持内容对比,详情参考内容对比不支持哪些数据类型。 为避免占用资源,DRS限制对比任务的时长,超过限制时长,对比任务自动停止。 对于单全量任务结束时自动创建的对比任务,超时限制时长30分钟,超过后行对比和对象对比任务自动停止,DRS单全量任务结束。 对于增量阶段用户手动创建的行对比任务,当源库是关系型数据库时,行对比限制时长为60分钟;源库为非关系数据库,比如MongoDB,行对比限制时长为30分钟。 为避免占用资源,DRS任务的对比结果限制保留60天,60天后自动清除。 MySQL为源链路,源数据库中的虚拟列不支持内容对比,对比时会过滤虚拟列。
  • 对数据库影响 对象对比:会查询源库及目标库的系统表,占用10个左右的session的连接数,正常情况不会对数据库产生影响。但是如果对象数量巨大(比如几十万张表),可能会对数据库产生一定的查询压力。 行数对比:会查询源库及目标库的表行数,占用10个左右的session的连接数,正常的select count语句基本不会对数据库产生影响。但是如果表数据量巨大(亿级)会对数据库产生一定的查询压力,返回查询结果会比较慢。 内容对比:会查询源库及目标库的全部数据,涉及每个字段都会对比,所以会对数据库产生一定的查询压力,主要体现在IO上,查询速度受限于源库和目标库的IO和网络带宽。占用1-2个CPU,占用10个左右的session的连接数。 用户对比:会查询源库及目标库的账户和权限,基本不会对数据库产生影响。
  • 操作步骤 在“实时迁移管理”界面,选中指定迁移任务,单击任务名称,进入“基本信息”页面。 单击“迁移进度”页签,查看迁移进度。 查看结构、数据、索引的迁移的百分比进度。 “全量迁移”模式:当全量迁移完成时,显示全量迁移各项指标完成进度100%。 “全量+增量”迁移模式:全量迁移完成后,开始进行增量迁移可,在“迁移进度”页签下,查看增量迁移同步时延。 图1 迁移进度总览 增量迁移时延也可在“实时迁移管理”界面查看,当增量时延超过用户设置或系统默认的时延阈值时,任务管理界面增量时延显示为红色。 时延 = 源库当前系统时间 - 成功同步到目标库的最新一个事务在源库的提交成功时间。 一个事务同步的完整过程如下: 源端数据库的抽取; 经过网络的传输; 由DRS进行日志解析; 最终在目标数据库上的执行完成。 这样完成了事务从源到目标的同步,时延为该事务最后在目标数据库上执行完成时的源库当前系统时间(current_time)与该事务在源库的提交成功时间(committed_time)的时间差,时延为0代表源和目标瞬时一致,无新的事务需要同步。 长时间未提交事务和频繁DDL操作均可以造成高时延。 查看迁移对象的进度。在“进度明细”下,单击目标迁移对象“详细信息”列的“查看详情”,查看对象的迁移进度。 目前MySQL为源迁移链路在增量阶段会展示迁移进度明细,该明细只是全量阶段迁移数据和跳过结构的展示,不支持更新。其他链路在进入增量迁移后,进度明细数据将不再显示,您可以使用“迁移对比”页签,进行一致性对比。 图2 迁移进度明细 跳过迁移对象。在迁移对象“详细信息”列的“查看详情”中,可以单击对象操作列的“跳过并重启”跳过迁移对象。 目前实时迁移支持MySQL为源链路在全量迁移阶段跳过迁移对象。 支持跳过类型包含database、function、procedure、table_indexs、table_structure、view、trigger、event、account。 跳过操作会使任务重启续传,如果任务处于暂停或异常状态,确认跳过后,任务将被会重新启动。 如果任务处于全量迁移状态,可能出现跳过前已完成对象迁移的情况,此时的跳过操作将会失效。 跳过对象成功后,如果后续迁移过程中仍有关联该对象的操作,可能出现对象不存在导致任务失败情况。例如跳过table_structure后,在迁移该表的索引和数据时,会出现对象不存在导致任务失败情况。 跳过对象成功后,会导致对比结果不一致。 跳过无主键表的table_structure会导致数据不一致,还可能出现表不存在导致任务失败的情况,请确认后再进行操作。 查看读写数据性能。单击“监控图表”查看读写数据性能,该图表展示了实时读取源库和写入目标库数据的速率,其单位为MB/s。 图3 性能监控
  • 方式一 在“实时迁移管理”页面的迁移列表中,选择要修改的任务,单击“编辑”。 在“源库及目标库”页面,填写源库和目标库信息,单击“下一步”。 在“迁移设置”页面,设置迁移用户和迁移对象,单击“下一步”。 图1 迁移模式 表1 迁移模式和迁移对象 参数 描述 流速模式 流速模式支持限速和不限速,默认为不限速。限速模式只对全量阶段生效,增量阶段不生效。 限速 自定义的最大迁移速度,迁移过程中每个任务(多任务时为每个子任务)的迁移速度将不会超过该速度。 当流速模式选择了“限速”时,你需要通过流速设置来定时控制迁移速度。流速设置通常包括限速时间段和流速大小的设置。默认的限速时间段为“全天限流”,您也可以根据业务需求选择“时段限流”。自定义的时段限流支持最多设置3个定时任务,每个定时任务之间不能存在交叉的时间段,未设定在限速时间段的时间默认为不限速。 流速的大小需要根据业务场景来设置,不能超过9999MB/s。 图2 设置流速模式 不限速 对迁移速度不进行限制,通常会最大化使用源数据库的出口带宽。该流速模式同时会对源数据库造成读消耗,消耗取决于源数据库的出口带宽。比如源数据库的出口带宽为100MB/s,假设高速模式使用了80%带宽,则迁移对源数据库将造成80MB/s的读操作IO消耗。 说明: 限速模式只对全量迁移阶段生效,增量迁移阶段不生效。 您也可以在创建任务后修改流速模式。具体方法请参见修改流速模式。 迁移增量账号及权限 选择数据库迁移过程中,是否迁移增量账号。 是 DRS迁移全部增量账号以及权限。因为源和目标数据库版本、账号加密方式等不同,DRS无法保证增量账号迁移全部成功。 否 DRS会过滤全部增量账号以及权限。 迁移用户 数据库的迁移过程中,迁移用户需要进行单独处理。 常见的迁移用户一般分为三类:可完整迁移的用户、需要降权的用户和不可迁移的用户。您可以根据业务需求选择迁移或者不迁移,选择“是”后,可根据需要选择迁移用户。 是 当您选择迁移用户时,请参见迁移用户章节进行数据库用户、权限及密码的处理。 否 迁移过程中,将不进行数据库用户、权限和密码的迁移。 过滤DROP DATABASE 实时迁移过程中,为了降低迁移数据的风险,数据复制服务提供了过滤删除数据库操作的功能。 是,表示实时迁移过程中不会迁移用户在源数据库端执行的删除数据库的操作。 否,则表示实时迁移过程中将相关操作迁移到目标库。 迁移对象 左侧框是源数据库对象,右侧框是已经选择的对象,您可以根据业务需求,选择全部对象迁移、表级迁移或者库级迁移。 全部迁移:将源数据库中的所有对象全部迁移至目标数据库,对象迁移到目标数据库实例后,对象名将会保持与源数据库实例对象名一致且无法修改。 表级迁移:将选择的表级对象迁移至目标数据库。 库级迁移:将选择的库级对象迁移至目标数据库。 如果有切换源数据库的操作或源库迁移对象变化的情况,请务必在选择迁移对象前单击右上角的,以确保待选择的对象为最新源数据库对象。 说明: 若选择部分数据库进行迁移时,由于存储过程、视图等对象可能与其他数据库的表存在依赖关系,若所依赖的表未迁移,则会导致迁移失败。建议您在迁移之前进行确认,或选择全部数据库进行迁移。 当对象名称包含空格时,名称前后的空格不显示,中间如有多个空格只显示一个空格。 选择的迁移对象名称中不能包含空格。 选择对象的时候支持对展开的库进行搜索,以便您快速选择需要的数据库对象。 在“预检查”页面,进行迁移任务预校验,校验是否可进行迁移。 查看检查结果,如有不通过的检查项,需要修复不通过项后,单击“重新校验”按钮重新进行迁移任务预校验。 预检查不通过项处理建议请参见《数据复制服务用户指南》中的“预检查不通过项修复方法”。 预检查完成后,且预检查通过率为100%时,单击“下一步”。 所有检查项结果均通过时,若存在待确认项,需要阅读并确认详情后才可以继续执行下一步操作。 在“任务确认”页面,设置迁移任务的启动时间,并确认迁移任务信息无误后,单击“启动任务”,提交迁移任务。 迁移任务的启动时间可以根据业务需求,设置为“立即启动”或“稍后启动”。 预计迁移任务启动后,会对源数据库和目标数据库的性能产生影响,建议选择业务低峰期,合理设置迁移任务的启动时间。 特定条件下,启动任务过程中目标数据库将被重启一次,可能会中断数据库业务的使用。 迁移任务提交后,您可在“实时迁移管理”页面,查看并管理自己的任务。 您可查看任务提交后的状态,状态请参见任务状态说明。 在任务列表的右上角,单击刷新列表,可查看到最新的任务状态。
  • 结束任务 在“实时迁移管理”页面的迁移列表中,选择要结束的迁移任务,单击操作列“结束”。 在弹出框中单击“确定”,提交结束任务。 一般情况下,结束任务功能可以确保特殊对象迁移的完整性(触发器、事件会在结束任务阶段迁移)。 当任务状态异常时(例如任务失败、网络异常),DRS会勾选“强制结束任务”优先结束任务,减少等待时间。 “强制结束任务”会直接释放DRS资源,不会进行触发器、事件的迁移,请手工迁移触发器、事件。 如果需要DRS进行触发器、事件迁移,请先修复DRS任务,待任务状态正常后,再单击“结束”,正常结束任务。
  • MongoDB数据库操作 在MongoDB数据库迁移过程中,常见的迁移用户一般分为两类:可迁移的用户和不可迁移的用户。 您可以根据业务需求选择“迁移”或者“不迁移”这些用户,当您选择迁移数据库用户时,需要按照如下操作步骤进行数据库用户及角色的处理。 迁移用户模块主要由账号名称、账号角色两部分构成。 对于可支持迁移的用户或者角色,您可以根据业务需求选择需要迁移的账号及角色。 如果所选迁移的账号依赖于某些角色,需要同时迁移该账号和所依赖的角色,否则会导致迁移失败。 图6 选择迁移用户 对于不支持迁移的用户或者角色,在备注列的查看详情中会提示具体的原因,您需要单击对应用户备注列的“查看”,确认详情后才可进行下一步操作。如果存在多个需要查看备注详情的用户,您也可以单击“确认所有备注”按钮,一键查看备注信息。 图7 查看备注信息
  • MySQL数据库操作 在MySQL迁移过程中,常见的迁移用户一般分为三类:可完整迁移的用户、需要降权的用户和不可迁移的用户。 可完整迁移的用户:可完整迁移的用户指满足目标数据库权限要求的用户,该类用户在进行迁移时不需要做任何处理,系统默认会将对应的数据库用户权限迁移至目标数据库。 需要降权处理的用户:需要降权的用户指具有不满足目标数据库权限要求的部分高权限的用户,比如具有:super、file、shutdown等高权限的用户。该类用户在进行迁移时需要进行降权处理,否则会导致迁移失败。 对于该类账号不支持的高权限,将会由DRS自动进行降权处理,您可以通过单击备注列的“查看”按钮查看具体的降权处理信息,依据该信息,可以帮助您评估降权是否对其业务程序造成相关影响。 不可迁移的用户:不可迁移的用户指由于某些原因,DRS不支持该类数据库用户的迁移。该类账号将在目标数据库中缺失,请先确保业务不受该类账号影响。同时,任务启动后,所有针对该类账号进行的权限密码操作,将会导致增量迁移失败。 您可以根据业务需求选择“迁移”或者“不迁移”这些用户,当您选择“迁移”数据库用户时,可以选择部分迁移,也可以选择全部迁移。可按照如下操作步骤进行数据库用户、权限和密码的处理,此处以勾选所有可以迁移的数据库用户为例。 迁移用户模块主要由账号名称、账号权限和账号密码三部分构成。 一般账号名称的组成格式为:'账号名'+@+'host',其中host表示具体允许访问源端数据库的目标库IP地址,您可以根据具体的业务场景选择是否需要修改账号的host地址,对目标库IP进行重规划。 host地址可在如下图所示的输入框中进行修改即可。源库为MySQL 8.0时,不建议修改host地址。 图1 修改host地址 账号权限一般默认不可修改,对于支持迁移的账号(可完整迁移的用户和需要降权的用户),系统也将默认支持对应用户权限的迁移。 迁移成功后,存储在目标数据库中的对应用户(需要降权的用户)是经过降权处理的用户。 图2 账号权限 DRS支持数据库用户密码的迁移。 数据库用户密码的迁移可通过如下两种方式来处理。 由于DRS在迁移时不会分析您的密码数据和强度,源系统密码复杂度过弱则存在安全风险,为了确保迁移过程中数据的安全性,您可以根据业务需求,选择是否需要重新设置数据库用户密码,通过设置较高的密码复杂度来持续保护数据库。 方式一:密码迁移。 图3 密码迁移 您可以选择在迁移的过程中,直接迁移源数据库系统当前的密码,此时不需要通过勾选“重置密码”来设置新密码。数据库用户密码迁移至目标库后,您如果担心用户密码强度较弱,为了确保数据库的安全性,此时也可以选择在目标库端重新设置强度较高的源系统密码。 方式二:重置密码。 图4 重置密码 如上图所示,您可以通过勾选“重置密码”选择立即重新设置源系统密码后再继续进行用户密码迁移。 您可以选择某个指定支持迁移的用户,在“输入密码”列直接设置新密码或者选择所有支持迁移的用户,勾选右下角“统一输入密码”,批量将所选用户密码设置为相同的密码,以便快速完成迁移。使用批量方法设置的密码,待迁移成功后,可以在目标数据库端通过执行DDL语句,进行密码重置。 对于需要降权处理的用户和不支持迁移的用户,在备注列的查看详情中会提示具体的原因,您需要单击对应用户备注列的“查看”,确认详情后才可进行下一步操作。如果存在多个需要查看备注详情的用户,您也可以单击“确认所有备注”按钮,一键查看备注信息。 图5 查看备注信息 数据库用户已存在是不支持迁移到目标数据库的常见情形,此时您可以根据实际情况,决定是否需要删除目标端已存在的数据库用户,并单击“刷新”按钮,刷新当前数据库迁移用户的分类。 以上重新设置的密码强度必须满足目标数据库的密码复杂度要求。
  • 添加标签 在“实时灾备管理”页面,选择指定的灾备任务,单击任务名称进入“基本信息”页签。 在左侧导航栏,单击“标签”。 在“标签”页签单击“添加/编辑标签”,在“添加/编辑标签”弹出框中,输入标签的键和值,单击“添加”,然后单击“确定”。 输入标签的键和值时,系统会自动联想当前用户的所有实例(除当前实例外)的所有关联的预定义标签。 标签的键不能为空且必须唯一,长度为1~128个字符,可以包含任意语种字母、数字、空格和_.:=+-@字符,但首尾不能含有空格,不能以_sys_开头。 标签的值可以为空字符串,长度为0~255个字符,可以包含任意语种字母、数字、空格和_.:/=+-@字符,但首尾不能含有空格。 添加成功后,您可在当前任务的所有关联的标签集合中,查询并管理自己的标签。
  • 操作场景 标签管理服务(Tag Management Service,TMS)用于用户在云平台,通过统一的tag标签管理各种资源。TMS服务与各服务共同实现标签管理能力,TMS提供全局标签管理能力,各服务维护自身标签管理 。当用户资源较多时,可通过不同的标签标识和查找任务。 建议您先在TMS系统中设置预定义标签。 标签由“键”和“值”组成,每个标签中的一个“键”只能对应一个“值”。 每个实例最多支持20个标签配额。
  • 暂停任务 在“实时灾备管理”页面的灾备列表中,选择要暂停的灾备任务,单击“操作”列的“暂停”。 在弹出的“暂停任务”对话框中,选择“暂停日志抓取”后,单击“是”。 暂停任务时,仅暂停增量数据的回放、或者拉取加回放,在进行数据库割接前,请先结束任务。 勾选“暂停日志抓取”后,该功能会停止一切DRS和源库、目标库的连接,请注意暂停过长可能会因为源端所需日志过期而导致任务无法恢复续传。建议暂停时间不超过24小时,具体时间请排查相应日志配置。 暂停成功后,状态栏显示为“已暂停”。 需要继续灾备时,可以使用续传功能。
  • 操作步骤 在“实时灾备管理”页面,选择已暂停的双主灾备任务。 此时可看到,子任务1为正向任务。 图1 方向转换前 查看子任务1灾备监控,主2显示禁止执行DDL状态。 图2 转换前灾备监控 单击任务“操作”列的“方向转换”。 在弹出对话框中单击“是”确认转换。 转换后,子任务灾备关系发生改变,子任务1成为反向任务。 图3 反向转换后 查看子任务1灾备监控,此时主1显示禁止执行DDL状态。 图4 转换后灾备监控 转换完成后,单击子任务“操作”列的“续传”,继续灾备任务。
  • 约束限制 对比是大小写敏感的,如果业务数据库或灾备数据库一端为非大小写敏感,一端为大小写敏感,对比结果可能出现不一致的情况。 如果在对比时业务数据库进行DDL操作,为保证对比结果的准确性,需重新进行内容对比。 如果单独对灾备数据库进行数据修改操作,可能会导致对比结果不一致。 如果业务数据库字符类型存在编码异常的情况,通过DRS灾备或对比时会因数据库驱动转码转换为异常码点,最终可能导致内容对比一致,实际字节不一致。 内容对比功能目前只支持带有主键的表,对于不支持内容对比的表可以使用行数对比功能。所以数据级对比功能需要结合业务场景,选用行数对比或者内容对比。 DRS进行内容比对期间不能暂停DRS任务,否则可能导致比对任务失败。 部分数据类型不支持内容对比,详情参考内容对比不支持哪些数据类型。 为避免占用资源,DRS对行对比的时长进行限制,超过限制时长,行对比任务自动停止。业务数据库是关系型数据库时,行对比限制时长为60分钟;业务数据库为非关系数据库,行对比限制时长为30分钟。 为避免占用资源,DRS任务的对比结果限制保留60天,60天后自动清除。 对于支持内容对比的灾备链路,如果创建任务时可以选择实例规格,那么仅支持大规格及以上规格进行内容对比。 MySQL、GaussDB(for MySQL)为源链路,源数据库中的虚拟列不支持内容对比,对比时会过滤虚拟列。
  • 对数据库影响 对象对比:会查询源库及目标库的系统表,占用10个左右的session的连接数,正常情况不会对数据库产生影响。但是如果对象数量巨大(比如几十万张表),可能会对数据库产生一定的查询压力。 行数对比:会查询源库及目标库的表行数,占用10个左右的session的连接数,正常的select count语句基本不会对数据库产生影响。但是如果表数据量巨大(亿级)会对数据库产生一定的查询压力,返回查询结果会比较慢。 内容对比:会查询源库及目标库的全部数据,涉及每个字段都会对比,所以会对数据库产生一定的查询压力,主要体现在IO上,查询速度受限于源库和目标库的IO和网络带宽。占用1-2个CPU,占用10个左右的session的连接数。 用户对比:会查询源库及目标库的账户和权限,基本不会对数据库产生影响。
  • 操作说明 在“实时同步管理”页面,单击“创建同步任务”。 在“同步实例”页面,填选任务名称、描述、同步实例等信息,其中DRS任务类型选择“双AZ”,完成后单击“下一步”。 返回“实时同步管理”页面可以可以看到,DRS会同时创建一主一备两个子任务。 图1 主备任务 配置并启动同步任务后,DRS会启动主AZ任务进行同步,此时备AZ任务处于暂停状态。 图2 主备倒换前 当主AZ任务发生异常,DRS会自动启动备AZ任务继续进行同步。 图3 主备倒换后
  • 操作步骤 在“实时同步管理”页面,单击左上角“批量导入任务”。 在“批量导入任务”对话框中,单击“下载模板”。 图1 批量导入任务 编辑下载的Excel模板,按照要求填写任务信息。 填写完成后,单击“添加文件”,完成模板上传。 待上传并校验成功后,单击“确定”提交创建任务。 DRS不会保存上传的Excel文件,只针对内容进行解析。 任务创建后,数据库的IP地址或域名、数据库用户名和密码,会被系统加密暂存,直至删除该任务后自动清除。
  • SASL_PLAINTEXT认证 使用SASL机制连接Kafka,需要设置SASL相关配置。 图2 SASL_PLAINTEXT 表1 参数信息 参数 描述 SASL机制 用于客户端连接的SASL机制,支持以下四项,Kafka server默认是 GSSAPI 机制,更多说明可参考SASL机制。 GSSAPI PLAIN SCRAM-SHA-256 SCRAM-SHA-512 令牌委托 是否为委托令牌鉴权,SASL机制选择“SCRAM-SHA-256”或者“SCRAM-SHA-512”时可见。 用户名 登录使用的用户名。 密码 登录使用的密码
  • SSL认证 使用SSL加密方式连接Kafka,需要设置SSL相关配置。 图3 SSL 表2 参数信息 参数 描述 Truststore证书 后缀名为jks的SSL证书,证书文件生成可参考SSL证书。 Truststore证书密码 证书对应的秘钥。 主机名端点识别算法 指定通过服务端证书验证服务端主机名的端点识别算法,选填,不填表示禁用主机名验证。 SSL双向认证 是否开启SSL双向认证。 Keystore证书 SSL双向认证开启可见,需要上传后缀名为jks的双向认证证书。 Keystore证书密码 SSL双向认证开启可见,SSL双向认证证书对应的秘钥。 Keystore私钥密码 选填,Keystore证书中私钥的密码。
  • 支持的同步对象范围 在使用DRS进行同步时,不同类型的同步任务,支持的同步对象范围不同,详细情况可参考表3。DRS会根据用户选择,在“预检查”阶段对同步对象进行自动检查。 表3 支持的同步对象 类型名称 使用须知 同步对象范围 仅支持同步表结构、表数据、索引信息。 仅支持同步MyISAM和InnoDB表。 虚拟列会被同步为普通列,且不写入任何数据,也不做增量同步。 不支持同步存储过程等其他数据库对象。 不支持同步MySQL含虚拟列的表。 全量和增量同步不支持隐藏列(INVISIBLE),隐藏列是MySQL 8.0.23开始支持的特性,例如: CREATE TABLE `test11` ( `id` int NOT NULL, `c1` int DEFAULT NULL /*!80023 INVISIBLE */, PRIMARY KEY (`id`));
  • 支持的源和目标数据库 表1 支持的数据库 源数据库 目标数据库 本地自建MySQL数据库(MySQL 5.5、5.6、5.7、8.0版本) ECS自建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版本) GaussDB主备版(B兼容模式、M兼容模式)(1.0.0及以上版本)
共100000条