华为云用户手册

  • 双主灾备 双主灾备多用于灾备双方互为主备,共同承担业务流量的场景。其角色分为主1、主2,使用之前需要首先确立本云(本区)RDS的角色,才可以更好的完成实时灾备的搭建。完整的双主灾备是由正、反两条链路构成的,其创建顺序有着严格的要求。开始时,主1为可读写状态、主2为只读状态,正向灾备将初始化数据全量同步到主2后,方可启动反向灾备。此时,主1、主2均为可读写状态,正/反向灾备分别向主2、主1持续同步增量数据。 图2 双主灾备 特点及使用约束 重要! 双主灾备是对环境要求比较高的架构,实施部署双主灾备前请务必阅读约束和设计思考。 双主灾备的搭建过程对步骤是有严格要求的,请按照以下步骤进行部署,以确保双主任务顺利部署。 创建正向灾备任务,具体操作步骤请参见创建灾备任务。创建完成后,会生成两个子任务,即正向灾备和反向灾备任务,此时反向灾备任务为配置状态。 当正向灾备任务进入“灾备中”状态时(反向任务操作列出现编辑),配置并启动反向任务。 在“实时灾备管理”页面,选择该灾备任务的反向任务,单击操作列的编辑,进入“创建灾备任务”页面,继续完成创建反向任务。 建议您在主2进行验证,满足预期后,启动反向任务。 图3 双向灾备任务
  • 授权操作说明 创建用户 操作方式: 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、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、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 MySQ L实例 的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;使授权生效。
  • 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 父主题: 实时灾备
  • RDS for MySQL不支持MyISAM引擎表,迁移时MyISAM如何处理 基于以下原因,RDS for MySQL目前不支持MyISAM引擎。 MyISAM引擎表不支持事务,仅支持表级别锁,导致读写操作相互冲突。 MyISAM对数据完整性的保护存在缺陷,且这些缺陷会导致数据库数据的损坏甚至丢失。 MyISAM在出现数据损害情况下,很多都需要手动修复,无法通过产品服务提供的恢复功能进行数据恢复。 MyISAM向InnoDB的迁移透明,大多数情况不需要改动建表的代码,云数据库自动转换InnoDB即可完成迁移。 DRS在迁移过程中,会自动将MyISAM转换为InnoDB。针对MyISAM引擎表不支持事务这一特点,为了确保MyISAM表的数据一致性, DRS会借助主键来实现最终数据的一致。如果需要迁移没有主键的MyISAM表,建议选择无业务期启动迁移任务,以确保数据的一致性。 父主题: 实时迁移
  • DRS支持断点续传吗 针对数据库的迁移、同步场景,在迁移、同步过程中由于不可抗拒因素(例如网络波动)导致的任务失败,DRS通过记录当前解析和回放的位点(该位点同时也是数据库内部一致性的依据),下次从该位点开始回放的方式来实现断点续传,以确保数据的完整性。 增量阶段的迁移、同步,DRS会自动进行多次断点续传的重试,全量阶段的MySQL迁移,系统默认进行三次自动续传,无需人工干预。 当自动重试失败累计一定次数后,任务会显示异常,需要人为根据日志来分析无法继续的原因,并尝试解决阻塞点(例如数据库修改了密码),如果环境无法修复,如所需日志已经淘汰,则使用重置功能可以完全重新开始任务。 父主题: 产品咨询
  • 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,需要用户根据业务情况决策是否应用于全实例。 父主题: 实时迁移
  • 如何设置最小化权限且独立的使用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_CATA LOG _ROLE TO User1 Oracle版本大于等于12C。 参考命令:GRANT EXECUTE_CATALOG_ROLE TO User1 参考命令:GRANT LOGMINING TO User1 父主题: 权限管理
  • 索引长度说明 MySQL引擎对索引长度有一些限制,最主要的因素就是存储引擎和字符集。不同的字符集,单个字符包含的最大字节数有所不同。例如UTF8字符集,一个字符最多包含3个字节。而UTF8MB4一个字符最多包含 4 个字节。 如果是单字段索引,则字段长度不应超过表1中的“单字段最大字符数”。例如,MySQL 5.7.6版本的InnoDB引擎,单字段索引不应超过767个字节(字符数=767/最大字节数)。 如果是联合索引,则每个字段长度均不能超过表1中的“单字段索引最大字符数”,且所有字段长度合计不应超过“联合索引合计最大字符数”。例如,MySQL 5.7.6版本的InnoDB引擎,每个字段索引不应超过767个字节(字符数=767/最大字节数),且所有字段索引长度总和不超过3072个字节(字符数=3072/最大字节数)。 表1 索引长度说明 引擎 MySQL版本 字符集 最大字节数 单字段索引最大字符数 联合索引合计最大字符数 InnoDB MySQL 5.7.6及以下版本 UTF8MB4 4 191 768 MySQL 5.7.7及以上版本 UTF8MB4 4 768 768
  • 索引超长的处理方法 方法一 不迁移含有超长索引的表。 方法二 修改源库索引长度满足以上索引长度说明中的要求,该操作可能导致迁移后数据不完整,请谨慎使用。以目标库为MySQL 5.7.6及以下版本的UTF8MB4为例,可通过如下方式修改长度。 alter table tablename modify columnname varchar2 (768) ; 其中,tablename请用实际表名代替,columnname请用实际列名代替。 方法三 在源库删除该索引及其约束。以目标库为MySQL 5.7.6及以下版本的UTF8MB4为例,可通过如下方式删除索引及其约束。 drop index indexname; alter table tablename drop constraint constraintname; 其中,indexname请用实际索引名代替,tablename请用实际表名代替,constraintname请用实际约束名代替。
  • 目标库读写设置是实例级还是库级 配置迁移任务时,目标数据库实例可以选择设置为“只读”或者“读写”状态。 只读:目标数据库整个实例将转化为只读、不可写入的状态,迁移任务结束后恢复可读写状态,此选项可有效地确保数据迁移的完整性和成功率,推荐此选项。 读写:目标数据库可以读写,但需要避免操作或接入应用后会更改迁移中的数据(注意:无业务的程序常常也有微量的数据操作),进而形成数据冲突、任务故障、且无法修复续传,充分了解要点后可选择此选项。 只读保护优点是避免用户对正在迁移的数据库或表进行DDL或DML误操作,造成数据不一致,可提高迁移完整性和数据一致性。 任务启动后,DRS不支持修改目标数据库状态。 待所有设置该目标库为“只读”状态的迁移任务结束后,可恢复读写。 父主题: 通用操作
  • 如何确保业务数据库的全部业务已经停止 业务切换时可通过如下方法确保业务数据库的全部业务已经停止: 在源数据库端执行如下语句,查看当前是否还存在有业务连接 。 show processlist; 图1 查看是否存在业务连接 可选:如果源数据库有业务连接,则通过结果中Host列的值来查找对应的业务进程并将其停止。 在源库执行如下语句,查看binlog位置并记录该值(file列取值:position列取值 ),此处将该值记为ckpt1。 show master status; 图2 查看binlog位置 等待30s以上,在源库执行如下语句,查看binlog位置并记录该值(file列取值:position列取值 ),此处将该值记为ckpt2。ckpt1=ckpt2时,表示源数据库业务已基本停写。 show master status; 父主题: 实时迁移
  • 操作步骤 在“实时灾备管理”页面,选择已暂停的双主灾备任务。 此时可看到,子任务1为正向任务。 图1 方向转换前 查看子任务1灾备监控,主2显示禁止执行DDL状态。 图2 转换前灾备监控 单击任务“操作”列的“方向转换”。 在弹出对话框中单击“是”确认转换。 转换后,子任务灾备关系发生改变,子任务1成为反向任务。 图3 反向转换后 查看子任务1灾备监控,此时主1显示禁止执行DDL状态。 图4 转换后灾备监控 转换完成后,单击子任务“操作”列的“续传”,继续灾备任务。
  • 通用使用建议 在使用DRS前,您需要了解: DRS支持从数据库同版本或低版本到高版本的迁移,不支持从高版本迁移到低版本。 数据库迁移与环境多样性和人为操作均有密切关系,为了确保迁移的平顺,建议您在进行正式的数据库迁移之前进行一次演练,可以帮助您提前发现问题并解决问题。 如果您使用的是全量迁移模式,确保源和目标数据库无业务写入,保证迁移前后数据一致。如果您使用的是全量+增量迁移模式,支持在源数据库有业务数据写入的情况下进行迁移。 DRS任务启动和全量数据迁移阶段,请不要在源数据库执行DDL操作,否则可能导致任务异常。 全量阶段读取表数据时,特别是大表的读取,可能会阻塞业务上对大表的独占锁操作。 迁移无主键表时,为了确保数据一致性,会存在3s以内的单表级锁定。 正在迁移的数据被其他事务长时间锁死,可能导致读数据超时。 由于MySQL固有特点限制,CPU资源紧张时,存储引擎为Tokudb的表,读取速度可能下降至10%。 DRS并发读取数据库时,会占用大约6-10个session连接数,需要考虑该连接数对业务的影响。 在网络无瓶颈的情况下,全量迁移会对源数据库增加约50MB/s的查询压力,以及占用2~4个CPU。 更多DRS对数据库的影响,可参考DRS对源数据库和目标数据库有什么影响。 建议您在启动任务时选择“稍后启动”功能,将启动时间设置在业务低峰期,相对静止的数据可以有效提升一次性迁移成功率,避免迁移对业务造成性能影响。如果迁移不可避免业务高峰期,推荐使用迁移限速功能,即“流速模式”选择“限速”。 如果涉及多对一迁移场景,您需要了解: 创建多对一迁移任务时,目标库读写设置需要跟已有任务设置为一致。可参考多对一的场景约束及操作建议。 数据迁移完成后,您需要了解 迁移完成后,建议您结合数据对比的“稍后启动”功能,选择业务低峰期进行数据对比,以便得到更为具有参考性的对比结果。由于同步具有轻微的时差,在数据持续操作过程中进行对比任务,可能会出现少量数据不一致对比结果,从而失去参考意义。 父主题: 附录
  • 操作步骤 在“实时迁移管理”页面,单击左上角“批量导入任务”。 在“批量导入任务”对话框中,单击“下载模板”。 图1 批量导入任务 编辑下载的Excel模板,按照要求填写任务信息。 填写完成后,单击“添加文件”,完成模板上传。 待上传并校验成功后,单击“确定”提交创建任务。 DRS不会保存上传的Excel文件,只针对内容进行解析。 任务创建后,数据库的IP地址或 域名 、数据库用户名和密码,会被系统加密暂存,直至删除该任务后自动清除。
  • 约束限制 所有链路均支持修改连接密码。 目前仅MySQL和TaurusDB为源且连接方式为输入IP地址的单主灾备任务,在灾备阶段支持修改IP、端口、用户名信息。当业务库进行某些操作导致IP地址、端口、用户名变化时,可通过此功能更新为正确的信息。 修改IP功能适用于业务数据库IP地址变化场景,修改前后的IP必须属于同一个 数据实例 ,否则可能导致任务失败或者数据不一致。 连接信息修改后,将实时生效,不会清空灾备数据库的数据。
  • 操作步骤 DRS使用的复制槽名可在DRS任务同步日志页面查看“create replication slot[复制槽名] successfully by replication connection.”日志找到。 使用DRS同步任务测试连接时的用户登录 GaussDB 集中式版实例。 执行如下语句,查询同步任务选择的database对应的所有复制槽信息。 select slot_name from pg_replication_slots where database = 'database'; 其中database为DRS同步任务中选择同步的database。 如果查询结果中包含该DRS任务使用的复制槽名,并且复制槽状态为未使用(查询结果中active='f'),执行如下语句,删除对应的逻辑复制槽。 select * from pg_drop_replication_slot('slot_name'); 其中slot_name为1中查询的复制槽名称。 执行如下语句,查询逻辑复制槽是否成功删除。 select slot_name from pg_replication_slots where slot_name = 'slot_name'; 查询结果为空表示DRS同步任务对应的逻辑复制槽已成功删除。
  • 操作步骤 DRS使用的复制槽名可在DRS任务同步日志页面查看“create replication slot[复制槽名] successfully by replication connection.”日志找到。 分布式多任务模式使用DRS同步任务测试连接时的用户登录GaussDB分布式版的每个主DN节点,分布式单任务模式使用DRS同步任务测试连接时的用户登录GaussDB分布式版的CN节点。 执行如下语句,查询同步任务选择的database对应的所有复制槽信息。 select slot_name from pg_replication_slots where database = 'database'; 其中database为DRS同步任务中选择同步的database。 如果查询结果中包含该DRS任务使用的复制槽名,并且复制槽状态为未使用(查询结果中active='f'),执行如下语句,删除对应的逻辑复制槽。 select * from pg_drop_replication_slot('slot_name'); 其中slot_name为1中查询的复制槽名称。 分布式多任务模式在DN节点执行如下语句,查询逻辑复制槽是否成功删除;分布式单任务模式在CN和DN节点均执行如下语句,查询所有逻辑复制槽是否成功删除; select slot_name from pg_replication_slots where slot_name = 'slot_name'; 查询结果为空表示DRS同步任务对应的逻辑复制槽已成功删除。 重复执行以上操作,确保所有节点都删除成功。
  • 处理建议 建议议在启动同步前,将目标数据库参数“session_replication_role”设置为replica。同步结束后,将该参数的值改为origin。 自建PostgreSQL可参考以下SQL命令: SET session_replication_role TO 'replica'; 云数据RDS for PostgreSQL,可参考“修改RDS for PostgreSQL实例参数”章节进行修改。
  • 解决方案 方法一:使用主账号重新创建一次任务,主账号默认有Security Administrator权限,可在创建任务后将委托创建出来。 方法二:使用主账号在子账号所在的用户组添加Security Administrator权限后,重新创建任务。添加权限的具体操作请参见:创建用户并授权使用DRS。 方法三:手动添加“账户委托”,添加步骤如下: 使用主账号登录华为云,在右上角单击“控制台”。 在控制台页面,鼠标移动至右上方的账号名,在下拉列表中选择“ 统一身份认证 ”。 在统一身份认证页面,单击左侧导航窗格中“委托”,进入“委托”页面。 在“委托”页面,单击右上方的“创建委托”进行委托创建。 填写委托名称为“DRS_AGENTCY” ,委托类型为 “普通账号”时, 委托的账号为 “op_svc_rds”;委托类型为“云服务”时,选择“关系型数据库MySQL”;持续时间为“永久”,完成后单击“完成”。 图1 创建委托 在“选择策略”页面,选择DRS_AGENTCY的授权策略,委托权限需配置全局的 Tenant Administrator,完成后单击右下角的“下一步”。 图2 选择策略 在“设置最小授权范围”页面,先选择全局服务资源授权后,再基于指定区域设置最小授权范围,完成后单击右下角的“确定”。 图3 全局服务资源授权 图4 指定区域项目授权 授权完成后,单击委托名称,在“授权记录”中可看到全局服务和指定区域两条授权记录。 图5 授权记录 权限生效时间提醒,您选中的OBS权限由于系统设计的原因,授权后需等待15-30分钟才可生效,权限生效后重新创建即可。
  • 支持的同步对象范围 在使用DRS进行同步时,不同类型的同步任务,支持的同步对象范围不同,详细情况可参考表3。DRS会根据用户选择,在“预检查”阶段对同步对象进行自动检查。 表3 支持的同步对象 类型名称 使用须知 同步对象范围 全量同步时支持表、普通索引、主键与唯一约束、数据的同步。增量同步时支持表的实时同步。 全量阶段不支持bfile、sdo_geometry、urowid和自定义类型。增量阶段不支持bfile、sdo_geometry、urowid、interval year to month、interval day to second和自定义类型。 timestamp和interval day to second类型支持的最大精度是6。 全量同步结构不支持位图索引、倒排索引、函数索引。 增量同步LOB类型仅支持BasicFiles属性,不支持SecureFiles属性,全量和增量支持的LOB类型大小限10M以内。 对于TIMESTAMP WITH TIME ZONE类型,根据目标库时区做转换后不得大于“9999-12-31 23:59:59.999999”。 不支持默认值含有表达式的函数的表的同步。 不支持同步源库中的临时表。 不支持同步源库中有虚拟列的表。 不支持同步既是无主键表,又是分区表的自建表,可能会导致任务失败。 不支持GaussDB的无主键复制表,如果需要同步的表在GaussDB为无主键复制表,会导致任务失败。
  • 支持的源和目标数据库 表1 支持的数据库 源数据库 目标数据库 本地自建数据库(Oracle 10g、11g、12c、18c、19c、21c版本) E CS 自建数据库(Oracle 10g、11g、12c、18c、19c、21c版本) GaussDB分布式版(支持ORA兼容模式。版本数据库内核版本为505.2及以下版本,内核版本与数据库引擎版本的关系请参考云数据库GaussDB的数据库引擎版本说明。)
  • 支持的源和目标数据库 表1 支持的数据库 源数据库 目标数据库 本地自建数据库(PostgreSQL 9.4、9.5、9.6、10、11、12、13、14、15、16版本) ECS自建数据库(PostgreSQL 9.4、9.5、9.6、10、11、12、13、14、15、16版本) 其他云上数据库(PostgreSQL 9.4、9.5、9.6、10、11、12、13、14、15、16版本) RDS for PostgreSQL(9.5、9.6、10、11、12、13、14、15、16版本) GaussDB(DWS)集群(8.1.3、8.2.0版本) 目前仅支持白名单用户使用。
  • 支持的同步对象范围 在使用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`));
  • 支持的源和目标数据库 表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版本) TaurusDB标准版(5.7、8.0版本) TaurusDB企业版
  • 数据库账号权限要求 在使用DRS进行同步时,连接源库和目标库的数据库账号需要满足以下权限要求,才能启动实时同步任务。不同类型的同步任务,需要的账号权限也不同,详细可参考表2进行赋权。DRS会在“预检查”阶段对数据库账号权限进行自动检查,并给出处理建议。 表2 数据库账号权限 类型名称 全量+增量同步、增量同步 源数据库连接账号 SELECT、SHOW VIEW、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。 全量+增量任务,当源数据库为8.0.2及以上版本时,还需要授予XA_RECOVER_ADMIN权限,以防启动或编辑时未提交的XA事务导致数据有损。 目标数据库连接账号 SELECT、CREATE、DROP、DELETE、INSERT、UPDATE、ALTER、CREATE VIEW、CREATE ROUTINE、REFERENCES,TaurusDB实例的root账户默认已具备上述权限。 当目标库为8.0.14-8.0.18版本时,还需要有SESSION_VARIABLES_ADMIN权限。 建议创建单独用于DRS任务连接的数据库账号,避免因为数据库账号密码修改,导致的任务连接失败。 连接源和目标数据库的账号密码修改后,请参考修改连接信息章节修改DRS任务的连接信息,避免任务连接失败后自动重试,导致数据库账号被锁定影响使用。
  • 数据库账号权限要求 在使用DRS进行灾备时,连接业务数据库和灾备数据库的账号需要满足以下权限要求,才能启动实时灾备任务。不同类型的灾备任务,需要的账号权限也不同,详细可参考表2进行赋权。DRS会在“预检查”阶段对数据库账号权限进行自动检查,并给出处理建议。 表2 数据库账号权限 类型名称 所需权限 业务数据库连接账号 需要具备如下权限: 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。 TaurusDB实例的root账户默认已具备上述权限。 灾备 数据库连接账号 需要具备如下权限: 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。 TaurusDB实例的root账户默认已具备上述权限。 建议创建单独用于DRS任务连接的数据库账号,避免因为数据库账号密码修改,导致的任务连接失败。 连接业务和灾备数据库的账号密码修改后,请参考修改连接信息章节修改DRS任务的连接信息,避免任务连接失败后自动重试,导致数据库账号被锁定影响使用。 表2中为DRS任务所需的最小权限,如果需要DRS任务迁移grant授权的情况下,请确保DRS任务的连接账号本身具备对应权限,否则可能因为grant授权执行失败导致目标库对应用户缺少授权。例如DRS任务的连接账号本身不要求process权限,如果需要通过DRS任务迁移process授权则需要保证DRS任务的连接账号具备该权限。
  • 使用建议 灾备初始化阶段,请不要在业务数据库执行DDL操作,否则可能导致任务异常。 灾备初始化阶段,确保灾备数据库无业务写入,保证灾备前后数据一致。 数据库灾备与环境多样性和人为操作均有密切关系,为了确保灾备的平顺,建议您在进行正式的数据库灾备之前进行一次演练,可以帮助您提前发现问题并解决问题。 基于以下原因,建议您在启动任务时选择“稍后启动”功能,选择业务低峰期开始运行灾备任务,避免灾备任务对业务造成性能影响。 在网络无瓶颈的情况下,灾备初始化阶段会对业务数据库增加约50MB/s的查询压力,以及占用2~4个CPU。 灾备无主键表时,为了确保数据一致性,会存在3s以内的单表级锁定。 正在灾备的数据被其他事务长时间锁死,可能导致读数据超时。 DRS并发读取数据库,会占用大约6-10个session连接数,需要考虑该连接数对业务的影响。 灾备初始化阶段读取表数据时,特别是大表的读取,可能会阻塞业务上对大表的独占锁操作。 更多DRS对数据库的影响,可参考DRS对源数据库和目标数据库有什么影响。 数据对比 建议您结合数据对比的“稍后启动”功能,选择业务低峰期进行数据对比,以便得到更为具有参考性的对比结果。由于同步具有轻微的时差,在数据持续操作过程中进行对比任务,可能会出现少量数据不一致对比结果,从而失去参考意义。
  • 通用使用建议 在使用DRS前,您需要了解: DRS支持从数据库同版本或低版本到高版本的同步,不支持从高版本同步到低版本。 数据库同步与环境多样性和人为操作均有密切关系,为了确保同步的平顺,建议您在进行正式的数据库同步之前进行一次演练,可以帮助您提前发现问题并解决问题。 如果您使用的是全量同步模式,确保源和目标数据库无业务写入,保证同步前后数据一致。如果您使用的是全量+增量同步模式,支持在源数据库有业务数据写入的情况下进行同步。 DRS任务启动和全量数据同步阶段,请不要在源数据库执行DDL操作,否则可能导致任务异常。 全量阶段读取表数据时,特别是大表的读取,可能会阻塞业务上对大表的独占锁操作。 同步无主键表时,为了确保数据一致性,会存在3s以内的单表级锁定。 正在同步的数据被其他事务长时间锁死,可能导致读数据超时。 由于MySQL固有特点限制,CPU资源紧张时,存储引擎为Tokudb的表,读取速度可能下降至10%。 DRS并发读取数据库时,会占用大约6-10个session连接数,需要考虑该连接数对业务的影响。 在网络无瓶颈的情况下,全量同步会对源数据库增加约50MB/s的查询压力,以及占用2~4个CPU。 更多DRS对数据库的影响,可参考DRS对源数据库和目标数据库有什么影响。 建议您在启动任务时选择“稍后启动”功能,将启动时间设置在业务低峰期,相对静止的数据可以有效提升一次性同步成功率,避免同步对业务造成性能影响。如果同步不可避免业务高峰期,推荐使用同步限速功能,即“流速模式”选择“限速”。 数据对比 建议您结合数据对比的“稍后启动”功能,选择业务低峰期进行数据对比,以便得到更为具有参考性的对比结果。由于同步具有轻微的时差,在数据持续操作过程中进行对比任务,可能会出现少量数据不一致对比结果,从而失去参考意义。 如果涉及多对一同步场景,您需要了解: 如果涉及多对一场景的同步任务,可参考多对一的场景约束及操作建议。 如果涉及表级汇集的多对一同步任务,则不支持DDL,否则会导致同步全部失败。 数据同步完成后,您需要了解 同步完成后,建议您结合数据对比的“稍后启动”功能,选择业务低峰期进行数据对比,以便得到更为具有参考性的对比结果。由于同步具有轻微的时差,在数据持续操作过程中进行对比任务,可能会出现少量数据不一致对比结果,从而失去参考意义。 父主题: 附录
  • 暂停任务 在“实时灾备管理”页面的灾备列表中,选择要暂停的灾备任务,单击“操作”列的“暂停”。 在弹出的“暂停任务”对话框中,选择“暂停日志抓取”后,单击“是”。 暂停任务时,仅暂停增量数据的回放、或者拉取加回放,在进行数据库割接前,请先结束任务。 勾选“暂停日志抓取”后,该功能会停止一切DRS和源库、目标库的连接,请注意暂停过长可能会因为源端所需日志过期而导致任务无法恢复续传。建议暂停时间不超过24小时,具体时间请排查相应日志配置。 暂停成功后,状态栏显示为“已暂停”。 需要继续灾备时,可以使用续传功能。
共100000条
提示

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