华为云用户手册

  • Oracle等异构数据库迁移到MySQL后的数据库排序规则为什么是utf8mb4_bin 由于不同的数据库支持的字符集有差异,Oracle等数据库迁移到MySQL后,会转换成支持字符相对全面的UTF8MB4字符集。此字符集对应的默认排序字符集为utf8_general_ci,是大小写不敏感的,即认为"abc"和"ABC"是相同数据。为了避免Oracle等大小写敏感的数据库到MySQL迁移失败(主键冲突等),或者迁移后对业务有影响(查询结果和Oracle有区别),请参考以下建议。 1. 使用DRS做目标端为MySQL的异构迁移/同步时,DRS自动将数据库(仅涉及迁移的库)字符集排序为utf8mb4_bin默认字符集,可以后续确保同库内新增表、列与迁移表、列的排序规格一致,从而避免因表、列的排序规则不一致时进行关联查询,执行计划中因索引数据排序不同而无法利用索引的情况。 2. 可在实例级设置参数collation_server = utf8mb4_bin,该设定可以确保全实例默认字符集(有别于建议1,建议1是仅迁移的库,这里是全局)一致,均为utf8mb4_bin,需要用户根据业务情况决策是否应用于全实例。 父主题: 实时迁移
  • 什么是 SMN 主题 什么是SMN 消息通知 服务(Simple Message Notification,SMN)是可靠的、可扩展的、海量的消息处理服务。它可以依据用户的需求主动推送通知消息,最终用户可以通过短信、电子邮件、应用等方式接收。 对DRS而言 SMN为其他服务均可使用的通用服务,仅需在SMN界面统一配置,如果在其他服务使用时已完成创建和订阅,DRS可以直接选择相应的订阅主题。 如果用户未创建和订阅SMN主题,需要先创建主题,作为发送消息和订阅通知的信道,为发布者和订阅者提供一个可以相互交流的通道。然后添加订阅并请求订阅,这样,订阅用户的华为账号冻结时才能够将告警信息通过主题发送给订阅这个主题的订阅者。完成创建和添加订阅后,后续的告警通知即可通过SMN服务发送到用户配置的订阅终端。 父主题: 产品咨询
  • 解决方案 方法一:使用主账号重新创建一次任务,主账号默认有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。
  • 源或者目标数据库哪些操作,会影响DRS任务状态 以华为云RDS for MySQL为例,以下操作可能会影响DRS任务状态。 实例备份:一般情况下,实例备份对DRS任务无影响。 单机转主备:正常情况下对DRS任务无影响。 实例重启:重启数据库实例将导致短暂中断,在此期间,实例将不可用,DRS连接短暂中断。这种情况下,DRS会进行自动重试。若重试仍无法恢复,待实例状态正常后,可手动单击任务“操作”列上的“续传”继续任务。 主备倒换:实例主备切换期间,可能会造成几秒或几分钟的服务闪断,这种情况下,DRS会进行自动重试。若重试仍无法恢复,待实例状态正常后,可手动单击任务“操作”列上的“续传”继续任务。 规格变更:规格变更后,将会重启数据库,重启数据库实例将导致短暂中断,在此期间,实例将不可用,DRS连接短暂中断。这种情况下,DRS会进行自动重试。若重试仍无法恢复,待实例状态正常后,可手动单击任务“操作”列上的“续传”继续任务。 实例升级:升级数据库内核小版本会重启实例,重启数据库实例将导致短暂中断,在此期间,实例将不可用,DRS连接短暂中断。这种情况下,DRS会进行自动重试。若重试仍无法恢复,待实例状态正常后,可手动单击任务“操作”列上的“续传”继续任务。 实例异常:这种情况下,DRS会进行自动重试。若重试仍无法恢复,待实例状态正常后,可手动单击任务“操作”列上的“续传”继续任务。 限制连接会话数:DRS任务连接源和目标端需要一定数量的会话数,详细可参考MySQL数据同步对源数据库和目标数据库有什么影响。当连接数不足时,会导致DRS任务失败,用户可在调整数据库连接数后,单击任务“操作”列上的“续传”继续任务。 网络抖动:针对网络抖动造成的连接失败,DRS会自动进行重试,若重试仍无法恢复,待网络正常后,可手动单击任务“操作”列上的“续传”继续任务。 账号密码修改:修改数据库账号密码可能会导致DRS连接失败,详细可参考源库或目标库修改密码后如何操作。 账号权限修改:修改数据库账号权限可能会导致DRS权限不足,迁移数据失败。用户可重新为迁移账号赋权后,单击任务“操作”列上的“续传”继续任务。 源库日志清理:当源库日志(例如MySQL的binlog)被清理时,DRS无法从源库获取到和当前同步位点接续的日志,可能导致任务失败(例如全量或增量阶段失败报错,关键词“binlog is not existed”)。用户可参考重置同步任务内容进行重置,或重新创建任务开始同步。 数据库参数修改:DRS在启动任务前会对源数据库和目标数据库参数进行预检查,在预检查完成后到任务结束前,一般情况下不建议对数据库参数进行修改,避免因参数修改导致的任务失败。如果参数修改导致任务失败,用户可尝试在恢复参数后,单击任务“操作”列上的“续传”继续任务。 父主题: 产品咨询
  • DRS任务支持修改对象吗 实时迁移任务:已创建成功但是未确认启动的编辑状态时,可以修改迁移对象,任务启动后,不支持进行修改。 备份迁移任务:仅支持在创建时编辑备份迁移任务。对于已经启动的备份迁移任务,不支持修改。 实时同步任务:已创建成功但是未确认启动的编辑状态时,可以修改同步对象。同步任务在增量阶段,且为表级同步时,可以进行再次编辑对象的操作,库级同步或其他同步阶段不可以进行再编辑,详细操作可参考编辑同步对象。 数据订阅任务:已创建成功但是未确认启动的编辑状态时,可以修改选择对象,任务启动后,不支持进行修改。 实时灾备任务:为实例级灾备,不支持对象选择。 父主题: 产品咨询
  • Oracle到 GaussDB 字符集兼容性说明 Oracle到GaussDB同步时,当源库和目标库字符集不兼容时,可能会导致数据乱码或者同步失败的场景,可参考表1进行设置。 表1 字符集兼容性 源库/目标库 UTF8 GBK GB2312 GB18030 US7ASCII √ √ √ √ UTF8 √ × × × AL32UTF8 √ × × × ZHS16GBK √ √ × √ WE8ISO8859P1 √ × × × WE8ISO8859P2 √ × × × WE8ISO8859P4 √ × × × WE8ISO8859P5 √ × × × WE8ISO8859P7 √ × × × WE8ISO8859P9 √ × × × WE8ISO8859P13 √ × × × WE8ISO8859P15 √ × × × WE8MSWIN1252 √ × × × 父主题: 实时同步
  • 表级补全日志ALL检查 针对用户选择的待同步的表级对象,检查补全日志是否满足要求。 在源库中执行以下sql语句。 select * from ALL_ LOG _GROUPS where LOG_GROUP_TYPE='ALL COLUMN LOGGING' and OWNER='大写SCHEMA名' and TABLE_NAME='大写表名'; 该表名在查询结果中有记录,即可满足DRS增量同步要求。 如果不满足要求,可执行以下sql语句开启表级ALL级别补全日志。 alter database add supplemental log data; alter table SCHEMA名.表名 add supplemental log data(all) columns; 其中SCHEMA名.表名需要根据实际使用进行替换。
  • 库级补全日志检查 针对待同步的库级对象,检查补全日志是否满足要求。 在源库执行以下sql语句。 select SUPPLEMENTAL_LOG_DATA_MIN MIN, SUPPLEMENTAL_LOG_DATA_PK PK, SUPPLEMENTAL_LOG_DATA_UI UI, SUPPLEMENTAL_LOG_DATA_ALL ALL_LOG from v$database; 满足以下其中一项要求即可。 PK和UI同时为YES,即可满足DRS增量同步要求。 如果不满足要求,可执行以下sql语句开启库级PK/UI级别补全日志。 alter database add supplemental log data(primary key, unique) columns; ALL_LOG为YES,即可满足DRS增量同步要求。 如果不满足要求,可执行以下sql语句开启库级ALL级别补全日志。 alter database add supplemental log data(all) columns;
  • 表级补全日志PK/UI检查(最低要求) 针对用户选择的待同步的表级对象,检查补全日志是否满足要求。 在源库中执行以下sql语句。 select * from ALL_LOG_GROUPS where (LOG_GROUP_TYPE='UNIQUE KEY LOGGING' or LOG_GROUP_TYPE='PRIMARY KEY LOGGING') and OWNER='大写SCHEMA名' and TABLE_NAME='大写表名'; 该表名在查询结果中能同时对应到LOG_GROUP_TYPE值为UNIQUE KEY LOGGING和PRIMARY KEY LOGGING的两条记录,即可满足DRS增量同步要求。 如果不满足要求,可执行以下sql语句开启表级PK/UI级别补全日志。 alter database add supplemental log data; alter table SCHEMA名.表名 add supplemental log data(primary key,unique) columns; 其中SCHEMA名.表名需要根据实际使用进行替换。
  • 如何设置最小化权限且独立的使用DRS的Oracle账号 源数据库为Oracle的全量迁移至少需要CREATE SESSION, SELECT ANY TRANSACTION, SELECT ANY TABLE, SELECT ANY DICTIONARY权限(当目标库为PostgreSQL时,还需要SELECT ANY SEQUENCE权限),源数据库为Oracle的增量迁移还需要日志解析权限。本小节主要介绍如何使用DRS设置最小化权限且独立的Oracle账号的具体操作。 全量迁移模式。 创建一个用户用于迁移,此处以User1为例。 参考命令:CREATE USER User1 IDENTIFIED BY pwd 其中User1为用户名,pwd为密码。 使用sys用户或者具有DBA权限的用户执行以下语句对User1用户赋予需要的权限。 参考命令:GRANT CREATE SESSION, SELECT ANY TRANSACTION, SELECT ANY TABLE, SELECT ANY DICTIONARY TO User1 全量+增量迁移模式。 创建一个用户用于迁移,此处以User1为例。 参考命令:CREATE USER User1 IDENTIFIED BY pwd 使用sys用户或者具有DBA权限的用户执行以下语句对User1用户赋予需要的权限。 参考命令:GRANT CREATE SESSION, SELECT ANY TRANSACTION, SELECT ANY TABLE, SELECT ANY DICTIONARY TO User1 使用sys用户或者具有DBA权限的用户执行以下语句对User1用户赋予日志解析权限。 Oracle版本小于12C。 参考命令:GRANT EXECUTE_CATALOG_ROLE TO User1 Oracle版本大于等于12C。 参考命令:GRANT EXECUTE_CATALOG_ROLE TO User1 参考命令:GRANT LOGMINING TO User1 父主题: 权限管理
  • MySQL 为了确保用户数据库成功迁移到本云关系型数据库MySQ L实例 ,创建迁移任务时,数据复制服务自动为目标数据库实例创建drsFull和drsIncremental临时账户,任务结束后,数据复制服务会自动删除这两个账户。 禁止使用用户自建的drsFull和drsIncrementa账号作为DRS任务连接数据库的账号。 删除、重命名和修改这些账户的密码和权限,会导致任务出错。 表1 MySQL实例创建的数据库账户 账户 使用场景 Host 说明 drsFull 全量迁移 关系型数据库MySQL实例 用户启动全量迁移任务时,系统会在目标数据库中添加该账户,用于迁移数据。 drsIncremental 增量迁移 关系型数据库MySQL实例 用户启动增量迁移任务时,系统会在目标数据库中添加该账户,用于迁移数据。
  • GaussDB为源链路增量同步连接及端口说明 GaussDB为源的链路在进行增量同步时,需要保证两类连接可用:普通连接和复制连接。其中普通连接进行数据查询,复制连接进行逻辑复制。 为保证DRS能够正常连接进行同步,首先要保证数据库连接的放开,配置方式可参考GaussDB远程连接配置方法,其次要保证安全组和防火墙策略放开对应的普通连接及复制连接端口。 GaussDB主备版的复制连接端口为普通连接端口+1。GaussDB分布式的连接分为CN连接和DN连接,对应的复制连接端口也为普通连接端口+1。 父主题: 实时同步
  • DRS任务的双AZ和单AZ有什么区别 目前,DRS实时同步任务在创建任务时支持选择任务类型为“双AZ”或“单AZ”。 双AZ任务:一主一备的经典高可用架构,提高了DRS任务的可靠性。双AZ任务创建后,DRS会同时创建一主一备两个子任务,当主AZ任务发生异常,DRS会自动启动备AZ任务继续进行同步,提高同步任务的可靠性。适用于业务数据量较大,需要长期同步,并对中断时间有严格要求的场景。 单AZ任务:采用单个节点部署架构,每个任务只创建一个节点,性价比较高。适用于业务数据量较小,短期同步,并对中断时间无严格要求的场景。 目前仅部分链路支持任务类型的选择,详细说明可参考双AZ任务倒换。 父主题: 产品咨询
  • 双主灾备子任务的正向和反向怎么理解 为了明确本云(本区)RDS在灾备中所扮演的角色,在创建双主灾备任务时,DRS使用主1、主2来区分角色。主1表示选择的本云RDS具有初始数据,主2则表示选择本云RDS为空库,等待接收数据。 如图1, 选择主2,表示创建任务时选择的本云数据库实例为空库,待接收数据,创建成功后,需先配置表示入云的正向任务,待正向任务进入“灾备中”状态时,再配置并启动反向任务。 选择主1,表示创建任务时选择的本云数据库实例具有初始数据,待同步数据,创建成功后,需先配置表示出云的反向任务,待反向任务进入“灾备中”状态时,配置并启动正向任务。 图1 双主灾备实例信息 父主题: 实时灾备
  • 授权操作说明 创建用户 操作方式: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; · username:待创建的账号。 · host:允许该账号登录的主机,如果允许该账号从任意主机登录数据库,可以使用%。 · password:账号的密码。 例如:授予drsmigration账号具备所有数据库和表的所有权限,并允许从任意主机登录数据库,命令如下。 CREATE USER 'drsmigration'@'%' IDENTIFIED BY 'Drs123456'; 授予相应权限 操作方式: GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION; flush privileges; · privileges:授予该账号的操作权限,如SELECT、INSERT、UPDATE等,如果要授予该账号所有权限,则使用ALL · databasename:数据库名。如果要授予该账号具备所有数据库的操作权限,则使用*。 · tablename:表名。如果要授予该账号具备所有表的操作权限,则使用*。 · username:待授权的账号。 · host:允许该账号登录的主机,如果允许该账号从任意主机登录,则使用%。 · WITH GRANT OPTION:授予该账号使用GRANT命令的权限,该参数为可选。 例如:创建一个账号,账号名为drsmigration,密码为Drs123456,并允许从任意主机登录数据库,命令如下。 GRANT ALL ON *.* TO 'drsmigration'@'%';
  • 权限要求 源和目标库的连接账号需要具有登录权限,如果没有该账号,可以通过如下方式创建,以user1为例。 参考语句:CREATE USER 'user1'@'host' IDENTIFIED BY 'password'; DRS的实时迁移、实时同步、实时灾备功能的权限要求,表1 权限要求中以user1为例提供参考语句。 表1 权限要求及参考语句 功能模块 源/业务数据库 目标/灾备数据库 实时迁移 全量迁移权限要求: SELECT、SHOW VIEW、EVENT。 参考语句:GRANT SELECT, SHOW VIEW, EVENT ON *.* TO 'user1'; 全量+增量迁移权限要求: SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。 其中,REPLICATION SLAVE、REPLICATION CLIENT是全局权限,必须单独开启。参考语句如下: GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user1'; SELECT、SHOW VIEW、EVENT、LOCK TABLES是非全局权限,参考语句如下: GRANT SELECT, SHOW VIEW, EVENT, LOCK TABLES ON [待迁移数据库].* TO 'user1'; 当业务数据库为8.0.2以上版本时,还需要有XA_RECOVER_ADMIN权限。 全量迁移权限要求: SELECT、CREATE、ALTER、DROP、DELETE、INSERT、UPDATE、INDEX、EVENT、CREATE VIEW、CREATE ROUTINE、TRIGGER、REFEREN CES 、WITH GRANT OPTION。当目标库为8.0.14-8.0.18版本时,还需要有SESSION_VARIABLES_ADMIN权限。 参考语句:GRANT SELECT, CREATE, ALTER, DROP, DELETE, INSERT, UPDATE, INDEX, EVENT, CREATE VIEW, CREATE ROUTINE, TRIGGER ON *.* TO 'user1' WITH GRANT OPTION; 全量+增量迁移权限要求: SELECT、CREATE、ALTER、DROP、DELETE、INSERT、UPDATE、INDEX、EVENT、CREATE VIEW、CREATE ROUTINE、TRIGGER、REFERENCES、WITH GRANT OPTION。当目标库为8.0.14-8.0.18版本时,还需要有SESSION_VARIABLES_ADMIN权限。 参考语句:GRANT SELECT, CREATE, ALTER, DROP, DELETE, INSERT, UPDATE, INDEX, EVENT, CREATE VIEW, CREATE ROUTINE, TRIGGER, REFERENCES ON [待迁移数据库].* TO 'user1' WITH GRANT OPTION; 实时同步 SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。全量+增量任务,当源数据库为8.0.2及以上版本时,还需要授予XA_RECOVER_ADMIN权限,以防启动或编辑时未提交的XA事务导致数据有损。 其中,REPLICATION SLAVE、REPLICATION CLIENT是全局权限,必须单独开启。参考语句如下: GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user1'; SELECT、SHOW VIEW、EVENT、LOCK TABLES是非全局权限,参考语句如下: GRANT SELECT, SHOW VIEW, EVENT, LOCK TABLES ON [待同步数据库].* TO 'user1'; 当业务数据库为8.0.2以上版本时,还需要有XA_RECOVER_ADMIN权限。 SELECT、CREATE、DROP、DELETE、INSERT、UPDATE、ALTER、CREATE VIEW、CREATE ROUTINE、REFERENCES。 参考语句:GRANT SELECT, CREATE, DROP, DELETE, INSERT, UPDATE, ALTER, REFERENCES ON [待同步数据库].* TO 'user1'; 实时灾备 SELECT、CREATE、ALTER、DROP、DELETE、INSERT、UPDATE、TRIGGER、REFERENCES、SHOW VIEW、EVENT、INDEX、LOCK TABLES、CREATE VIEW、 CREATE ROUTINE、 ALTER ROUTINE、 CREATE USER、RELOAD、REPLICATION SLAVE、REPLICATION CLIENT、WITH GRANT OPTION,RDS for MySQL实例的root账户默认已具备上述权限。当业务数据库为8.0.14-8.0.18版本时,还需要有SESSION_VARIABLES_ADMIN权限。当业务数据库为8.0.2及以上版本时,还需要授予XA_RECOVER_ADMIN权限,以防启动时未提交的XA事务导致数据有损。RDS for MySQL实例的root账户默认已具备上述权限。 当业务数据库为8.0.2以上版本时,还需要有XA_RECOVER_ADMIN权限。 参考语句:GRANT SELECT,CREATE,ALTER,DROP,DELETE,INSERT,UPDATE,TRIGGER,SHOW VIEW,EVENT,INDEX,LOCK TABLES,CREATE VIEW,CREATE ROUTINE,ALTER ROUTINE,CREATE USER,RELOAD,REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'user1'; SELECT、CREATE、ALTER、DROP、DELETE、INSERT、UPDATE、TRIGGER、REFERENCES、SHOW VIEW、EVENT、INDEX、LOCK TABLES、CREATE VIEW、 CREATE ROUTINE、 ALTER ROUTINE、 CREATE USER、RELOAD、REPLICATION SLAVE、REPLICATION CLIENT、WITH GRANT OPTION,RDS for MySQL实例的root账户默认已具备上述权限。当灾备数据库为8.0.14-8.0.18版本时,还需要有SESSION_VARIABLES_ADMIN权限。 参考语句:GRANT SELECT,CREATE,ALTER,DROP,DELETE,INSERT,UPDATE,TRIGGER,REFERENCES,SHOW VIEW,EVENT,INDEX,LOCK TABLES,CREATE VIEW,CREATE ROUTINE,ALTER ROUTINE,CREATE USER,RELOAD,REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'user1'@'%' WITH GRANT OPTION; 请在以上参考语句后执行flush privileges;使授权生效。
  • 如何确保业务数据库的全部业务已经停止 业务切换时可通过如下方法确保业务数据库的全部业务已经停止: 在源数据库端执行如下语句,查看当前是否还存在有业务连接 。 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为非主键)。 图1 dr1、dr2库初始数据 双方数据库同时分别执行如下操作: dr1库:update dr1 set seqno=5 where column1=8; dr2库:update dr2 set seqno=6 where column1=8; 执行操作后,双方数据库数据一致,并且多数据。 图2 dr1、dr2库数据
  • 场景二:双主灾备,同时操作双边数据库,导致数据不一致 初始数据如下图所示(seqno为主键,column1为非主键)。 图3 初始数据 双方数据库同时分别执行如下操作: dr1库:insert into dr1 values(101,100); dr2库:insert into dr2 values(101,102); 执行操作后,双方数据库数据如下图所示。 图4 dr1库数据 图5 dr2库数据
  • 数据复制服务是否采用了压缩技术 压缩技术是提升性能和解决数据膨胀的关键技术,DRS在数据传输和增量数据存储两大环节采用了压缩技术。 数据传输压缩:在网络带宽不理想的环境中,进行数据同步与传输,DRS可以开启压缩开关,以减少数据传输对带宽的占用量。 增量数据存储压缩:增量数据转储成逻辑文件后,将会出现膨胀现象,DRS针对该场景做了存储压缩技术,使得本地逻辑文件缓存在DRS时占用磁盘空间大大降低。 父主题: 产品咨询
  • 双主灾备 双主灾备多用于灾备双方互为主备,共同承担业务流量的场景。其角色分为主1、主2,使用之前需要首先确立本云(本区)RDS的角色,才可以更好的完成实时灾备的搭建。完整的双主灾备是由正、反两条链路构成的,其创建顺序有着严格的要求。开始时,主1为可读写状态、主2为只读状态,正向灾备将初始化数据全量同步到主2后,方可启动反向灾备。此时,主1、主2均为可读写状态,正/反向灾备分别向主2、主1持续同步增量数据。 图2 双主灾备 特点及使用约束 重要! 双主灾备是对环境要求比较高的架构,实施部署双主灾备前请务必阅读约束和设计思考。 双主灾备的搭建过程对步骤是有严格要求的,请按照以下步骤进行部署,以确保双主任务顺利部署。 创建正向灾备任务,具体操作步骤请参见创建灾备任务。创建完成后,会生成两个子任务,即正向灾备和反向灾备任务,此时反向灾备任务为配置状态。 当正向灾备任务进入“灾备中”状态时(反向任务操作列出现编辑),配置并启动反向任务。 在“实时灾备管理”页面,选择该灾备任务的反向任务,单击操作列的编辑,进入“创建灾备任务”页面,继续完成创建反向任务。 建议您在主2进行验证,满足预期后,启动反向任务。 图3 双向灾备任务
  • DRS任务创建后支持修改源或目标数据库吗 DRS在任务创建后、启动前的配置状态时,支持修改源或者目标数据库。 入云链路:支持修改源数据库,不支持修改目标数据库。目标数据库为创建任务时选择的实例,不支持更换,仅支持修改数据库连接信息(用户名和密码)。 出云链路:支持修改目标数据库信息,不支持修改源数据库。源数据库为创建任务时选择的实例,不支持更换,仅支持修改数据库连接信息(用户名和密码)。 自建-自建链路:支持修改源和目标数据库信息。 DRS在任务提交启动后,源和目标数据库均不支持更换,仅支持修改数据库连接密码。 父主题: 通用操作
  • 多表归一场景注意事项 DRS支持多表对一的数据聚合场景,最佳实践是推荐只选择同步加列DDL,其他大部分DDL同步都可能会因目标表修改而导致其他任务失败或数据不一致的情况发生,常见情况有:同步truncate导致目标数据全部被清空;同步创建索引导致目标表被锁定;同步rename导致其他任务找不到目标表而失败;同步改列导致其他任务因数据类型不兼容而失败。 多表归一高风险操作: DROP、TRUNCATE、RENAME等高危DDL未过滤,导致目标表DROP、TRUNCATE、RENAME。 随意执行DDL,导致同步任务中断未提前识别业务数据冲突,出现同步后数据不一致。 多对一的表不支持Online DDL工具。Online DDL通常会使用临时表和执行rename操作,多对一任务如果未过滤rename会导致目标数据丢失。 多表归一DDL操作技巧: 增加列ADD COLUMN: 配置DRS任务时过滤ADD COLUMN:先在目标库目标表增加列,再在每个多对一任务的源库源表分别增加列。同步任务会自动兼容源表列少于目标表的场景,因此任务不受影响。顺序相反则会导致任务中断。 配置DRS任务时未过滤ADD COLUMN:DRS会自动识别只执行一次DDL,不会导致任务失败。 修改列MODIFY COLUMN: 配置DRS任务时过滤MODIFY COLUMN:需要确保所有源表已经完成同步无时延并且无业务写入,先在目标库目标表修改列,再在每个多对一任务的源库源表分别修改列。 配置DRS任务时未过滤MODIFY COLUMN:DRS会自动识别只执行一次DDL,不会导致任务失败。 删除列DROP COLUMN: 配置DRS任务时过滤DROP COLUMN:先在每个源库源表删除列,多对一任务的所有源表删除列后,再在目标库表删除列。同步任务会自动兼容源表列少于目标表的场景,因此任务不受影响。顺序相反则会导致任务中断。 配置DRS任务时未过滤DROP COLUMN:DRS会自动识别只执行一次DDL,不会导致任务失败。 DROP、TRUNCATE类操作: 高危操作建议配置DRS任务时过滤掉,手工执行。如果未选择过滤,多对一任务一张源表的DROP、TRUNCATE操作会同步到目标表执行DROP、TRUNCATE操作,比如多对一任务DROP掉其中一个表,在目标库就把多对一的表DROP掉了,DROP索引、DROP约束是类似的。
  • 双主灾备的主1、主2如何选择 双主灾备要求灾备双方至少有一方为本云RDS实例,另一方可以为本云RDS实例、其他云数据库、E CS 自建库或本地自建数据库。为了明确本云(本区)RDS在灾备中所扮演的角色,DRS使用主1、主2来区分角色。选择了本云RDS角色后,也意味着确定了另一方的角色。 主1:一般具有业务数据,创建任务时选择主1则表示本云RDS具有初始数据。 主2:必须为空数据库,创建任务时选择主2则表示本云RDS为空库,等待接收数据。 创建灾备任务时,选择主1、主2应遵循以下原则 灾备双方均为本云RDS实例。 有一方为空实例,空实例作为主2,非空实例作为主1。 双方均为空实例,主1、主2角色无差别,推荐选主2。 灾备双方一方为本云RDS实例,另一方为其他云数据库、ECS自建库或本地自建数据库。 一方数据库存在初始数据,另一方为空库。 本云RDS实例为空库,则选择主2。 本云RDS实例有初始数据,另一方为空库,则选择主1。 双方均为空库,主1、主2角色无差别,推荐选主2。 父主题: 实时灾备
  • 目标库读写设置是实例级还是库级 配置迁移任务时,目标数据库实例可以选择设置为“只读”或者“读写”状态。 只读:目标数据库整个实例将转化为只读、不可写入的状态,迁移任务结束后恢复可读写状态,此选项可有效地确保数据迁移的完整性和成功率,推荐此选项。 读写:目标数据库可以读写,但需要避免操作或接入应用后会更改迁移中的数据(注意:无业务的程序常常也有微量的数据操作),进而形成数据冲突、任务故障、且无法修复续传,充分了解要点后可选择此选项。 只读保护优点是避免用户对正在迁移的数据库或表进行DDL或DML误操作,造成数据不一致,可提高迁移完整性和数据一致性。 任务启动后,DRS不支持修改目标数据库状态。 待所有设置该目标库为“只读”状态的迁移任务结束后,可恢复读写。 父主题: 通用操作
  • 目标数据库所在安全组 目标数据库所在VPC安全组入方向规则需要放DRS实例IP和目标数据库自身的端口,允许DRS实例通过端口访问。 在RDS的“实例管理”页面,单击目标实例名称。 进入“基本信息”页签,在“连接信息”模块下,单击安全组。 进入安全组基本信息页,选择“入方向规则”页签。 单击“添加规则”进行配置。 目标数据库所在VPC安全组入方向规则需要放DRS实例IP和目标数据库自身的端口(IP地址和端口只要包含DRS的IP和自身的端口即可)。
  • 源数据库所在安全组 源数据库所在VPC安全组入方向规则需要放DRS实例IP和源数据库自身的端口,允许DRS实例通过端口访问。 在RDS的“实例管理”页面,单击目标实例名称。 进入“基本信息”页签,在“连接信息”模块下,单击安全组。 进入安全组基本信息页,选择“入方向规则”页签。 单击“添加规则”进行配置。 源数据库所在VPC安全组入方向规则需要放DRS实例IP和源库自身的端口(IP地址和端口只要包含DRS的IP和自身的端口即可)。
  • DRS实例所在安全组设置 DRS实例所在VPC安全组出方向规则需要放通源数据库和目标数据库的IP、端口,允许DRS实例访问安全组外的数据库。 在任务列表中,单击DRS任务名称。 进入“基本信息”页签,在“实例信息”模块下,单击内网安全组。 进入安全组基本信息页,选择“出方向规则”页签。 单击“添加规则”进行配置。 DRS实例所在VPC安全组出方向规则需要放通源数据库和目标数据库的IP、端口(IP地址和端口只要包含目标数据库和源数据库的IP和端口即可)。
共100000条