华为云用户手册

  • 索引长度说明 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
  • 场景二:双主灾备,同时操作双边数据库,导致数据不一致 初始数据如下图所示(seqno为主键,column1为非主键)。 图3 初始数据 双方数据库同时分别执行如下操作: dr1库:insert into dr1 values(101,100); dr2库:insert into dr2 values(101,102); 执行操作后,双方数据库数据如下图所示。 图4 dr1库数据 图5 dr2库数据
  • 授权操作说明 创建用户 操作方式: 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 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;使授权生效。
  • 什么是 SMN 主题 什么是SMN 消息通知 服务(Simple Message Notification,SMN)是可靠的、可扩展的、海量的消息处理服务。它可以依据用户的需求主动推送通知消息,最终用户可以通过短信、电子邮件、应用等方式接收。 对DRS而言 SMN为其他服务均可使用的通用服务,仅需在SMN界面统一配置,如果在其他服务使用时已完成创建和订阅,DRS可以直接选择相应的订阅主题。 如果用户未创建和订阅SMN主题,需要先创建主题,作为发送消息和订阅通知的信道,为发布者和订阅者提供一个可以相互交流的通道。然后添加订阅并请求订阅,这样,订阅用户的华为账号冻结时才能够将告警信息通过主题发送给订阅这个主题的订阅者。完成创建和添加订阅后,后续的告警通知即可通过SMN服务发送到用户配置的订阅终端。 父主题: 产品咨询
  • 双主灾备子任务的正向和反向怎么理解 为了明确本云(本区)RDS在灾备中所扮演的角色,在创建双主灾备任务时,DRS使用主1、主2来区分角色。主1表示选择的本云RDS具有初始数据,主2则表示选择本云RDS为空库,等待接收数据。 如图1, 选择主2,表示创建任务时选择的本云数据库实例为空库,待接收数据,创建成功后,需先配置表示入云的正向任务,待正向任务进入“灾备中”状态时,再配置并启动反向任务。 选择主1,表示创建任务时选择的本云数据库实例具有初始数据,待同步数据,创建成功后,需先配置表示出云的反向任务,待反向任务进入“灾备中”状态时,配置并启动正向任务。 图1 双主灾备实例信息 父主题: 实时灾备
  • 如何批量导出、导入事件(event)和触发器(trigger) 在进行MySQL到MySQL的迁移时,若任务结束后发现迁移日志中提示迁移事件和触发器失败,可手动迁移。 本小节主要介绍批量导出导入事件和触发器的具体操作。 从源库批量导出触发器。 在源库执行以下语句,获取TRIGGER_SCHEMA和TRIGGER_NAME。 SELECT TRIGGER_SCHEMA,TRIGGER_NAME FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_SCHEMA in ('DB1','DB2','DB3') order by TRIGGER_NAME; 上述语句中,DB1,DB2,DB3分别表示从源库待迁移到目标库的数据库。 在源库执行如下语句,从字段SQL Original Statement中获取源库创建触发器的语句。 SHOW CREATE TRIGGER TRIGGER_SCHEMA.TRIGGER_NAME \G; 上述语句中,TRIGGER_SCHEMA.TRIGGER_NAME填写的为1.a中查询到的TRIGGER_SCHEMA和TRIGGER_NAME具体值。 从源库批量导出事件。 在源库执行以下语句,获取EVENT_SCHEMA和EVENT_NAME。 SELECT EVENT_SCHEMA,EVENT_NAME FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA in ('DB1','DB2','DB3') order by EVENT_NAME; 上述语句中,DB1,DB2,DB3分别表示从源库待迁移到目标库的数据库。 在源库执行如下语句,从字段SQL Original Statement中获取源库创建事件的语句。 SHOW CREATE EVENT EVENT_SCHEMA.EVENT_NAME \G; 上述语句中,EVENT_SCHEMA.EVENT_NAME填写的为2.a中查询到的EVENT_SCHEMA和EVENT_NAME具体值。 导入触发器和事件。 在目标库重新执行从源库导出的创建触发器和创建事件语句。 父主题: 实时迁移
  • 策略一 在测试连接页面的目标库信息中填写数据库用户名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对比任务对数据库有什么影响 对象对比:会查询源库及目标库的系统表,占用10个左右的session的连接数,正常情况不会对数据库产生影响。但是如果对象数量巨大(比如几十万张表),可能会对数据库产生一定的查询压力。 行数对比:会查询源库及目标库的表行数,占用10个左右的session的连接数,正常的select count语句基本不会对数据库产生影响。但是如果表数据量巨大(亿级)会对数据库产生一定的查询压力,返回查询结果会比较慢。 内容对比:会查询源库及目标库的全部数据,涉及每个字段都会对比,所以会对数据库产生一定的查询压力,主要体现在IO上,查询速度受限于源库和目标库的IO和网络带宽。占用1-2个CPU,占用10个左右的session的连接数。 用户对比:会查询源库及目标库的账户和权限,基本不会对数据库产生影响。 父主题: 数据对比
  • 表级补全日志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名.表名需要根据实际使用进行替换。
  • 表级补全日志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名.表名需要根据实际使用进行替换。
  • 库级补全日志检查 针对待同步的库级对象,检查补全日志是否满足要求。 在源库执行以下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;
  • 什么是孤儿文档 MongoDB负载均衡器(Balancer)会根据集合的分片键(Shard key)均衡数据。Balancer的工作原理是:需要Balancer的数据块(Chunk)先复制到目标Shard,成功后再删除原Shard上的Chunk,来完成一次Chunk迁移,通过多次Chunk迁移来实现均衡。在Chunk迁移时,如果发生网络闪断等不可预知的场景,完成了复制但没有完成删除,那么对同一条文档会同时存在于两个Shard上。因为Chunk迁移在MongoDB上是感知的,config会更新这条文档应该在哪个Shard上,那么另一个Shard上的文档会存在但不会被感知,后续的update、delete操作都不会作用于这个错误的Shard上的文档,那么这条文档被称为孤儿文档(Orphaned Document)。
  • 操作步骤 下载用于清除孤儿文档的cleanupOrphaned.js脚本文件。 修改cleanupOrphaned.js脚本文件,将test替换为待清理孤儿文档的数据库名。 执行以下命令,清理Shard节点下指定的数据库中所有集合的孤儿文档。 mongo --host ShardIP --port Primaryport --authenticationDatabase database -u username -p password cleanupOrphaned.js ShardIP:Shard节点的IP地址。 Primaryport:Shard节点中的Primary节点的服务端口。 database:鉴权数据库名,即数据库账号所属的数据库。 username:登录数据库的账号。 password:登录数据库的密码。 如果您有多个数据库,您需要重复执行步骤2和步骤3,分别为每个数据库的每个Shard节点清理孤立文档。
  • 对等连接限制 有重叠子网网段的VPC建立的对等连接,可能不生效。 两个VPC之间不能同时建立多个VPC对等连接。 不同区域的VPC不能创建对等连接。 如果两个VPC的CIDR有重叠,建立对等连接时,只能针对子网建立对等关系。如果两个VPC下的子网网段有重叠,那么该对等关系不生效。建立对等连接时,请确保两个VPC之间没有重叠的子网。 对等连接建立后,需要在本端VPC、对端VPC分别添加对方子网的路由才能通信。 VPC A与B、C分别建立对等连接,如果B、C两个VPC的网段有重叠,A中无法添加具有相同目的网段的路由。 为了安全起见,请不要接受来自未知账号的对等连接申请。 对等连接双方账号都有权限删除对等连接,一方删除对等连接后,对等连接的所有信息会被立刻删除,包括对等连接关联的路由信息。 VPC对等连接路由存在时,VPC无法被删除。 支持在华为云中国站和国际站同一区域创建对等连接。 VPC1与VPC2创建对等连接,默认情况下VPC2不能通过VPC1的EIP访问公网。您可以通过使用NAT网关服务或配置SNAT服务器,使得VPC2下的弹性云服务器可以通过VPC1下绑定了EIP的弹性云服务器访问Internet。具体实现方式请参见无公网IP的弹性云服务器访问Internet。 具体设置VPC对等连接的方法,可参考《虚拟私有云用户指南》。 对等连接建立后,需要在本端VPC、对端VPC分别添加对方子网的路由才能通信,详细操作可参考添加VPC对等连接路由。 在添加对等路由时,建议添加网段路由信息。如果添加点对点路由,DRS任务重建后实例IP会发生改变,此时需要重新添加路由,否则会导致网络不通。
  • 数据复制服务 是否采用了压缩技术 压缩技术是提升性能和解决数据膨胀的关键技术,DRS在数据传输和增量数据存储两大环节采用了压缩技术。 数据传输压缩:在网络带宽不理想的环境中,进行数据同步与传输,DRS可以开启压缩开关,以减少数据传输对带宽的占用量。 增量数据存储压缩:增量数据转储成逻辑文件后,将会出现膨胀现象,DRS针对该场景做了存储压缩技术,使得本地逻辑文件缓存在DRS时占用磁盘空间大大降低。 父主题: 产品咨询
  • 源库Oracle为RAC集群时,为什么建议使用SCAN IP连接 源库Oracle为RAC集群时,建议使用SCAN IP+ SERVICE_NAMES方式创建任务,因为SCAN IP具有更强的容错性,更好的负载能力,更快的同步体验。 如果需要使用SCAN IP,需要保证SCAN IP与源库的所有VIP互通,否则无法通过测试连接检查。 若不使用SCAN IP,可以使用某一节点的VIP,其他节点异常不影响同步。 关于SCAN IP的说明,可参考Oracle官网文档。 父主题: 实时同步
  • RTO增大处理建议 在“实时灾备管理”页面,选择指定的灾备任务,单击任务名称进入“基本信息”页签。 在“基本信息”页签,单击“灾备监控”页签,查看时延监控的RTO的变化情况。 如果RTO逐渐降低或者只是短时间内增加,则无需关注。 如果RTO持续增加,可在灾备数据库执行以下语句,查看是否有执行时间比较长的sql或者正在执行的DDL。 show processlist 如果灾备数据库异常,需要联系数据库运维工程师解决。
  • 如何选择区域? 选择区域时,您需要考虑以下几个因素: 地理位置 一般情况下,建议就近选择靠近您或者您的目标用户的区域,这样可以减少网络时延,提高访问速度。不过,在基础设施、BGP网络品质、资源的操作与配置等方面,中国大陆各个区域间区别不大,如果您或者您的目标用户在中国大陆,可以不用考虑不同区域造成的网络时延问题。 在除中国大陆以外的亚太地区有业务的用户,可以选择“亚太-曼谷”或“亚太-新加坡”区域。 在非洲地区有业务的用户,可以选择“南非-约翰内斯堡”区域。 在欧洲地区有业务的用户,可以选择“欧洲-巴黎”区域。 在拉丁美洲地区有业务的用户,可以选择“拉美-圣地亚哥”区域。 “拉美-圣地亚哥”区域位于智利。 资源的价格 不同区域的资源价格可能有差异,请参见华为云服务价格详情。
  • MySQL迁移出现数据膨胀怎么办 DRS在全量迁移阶段,为了保证迁移性能和传输的稳定性,采用了行级并行的迁移方式。 当源端数据紧凑情况下,通过DRS迁移到云上RDS for MySQL后,可能会出现数据膨胀现象,使得磁盘空间使用远大于源端。 针对这种情况,客户可选择在目标库中执行以下命令,进行优化整理从而缩小空间。 optimize table table_name 由于命令optimize会进行锁表操作,所以进行优化时要避开表数据操作时间,避免影响正常业务的进行。 父主题: 产品咨询
  • RTO增大常见原因 RTO是增量同步期间DRS实例上的事务传输到灾备目标库且回放成功的时间差,RTO值较大说明DRS上需要回放到目标实例的事务有积压。一般有以下几种原因: 灾备任务初始化完成不久,启动灾备任务到当前时间累积的增量数据需要回放。 业务数据库对无主键表进行了批量操作,DRS灾备实例正在同步变更数据较大的无主键表。为了确保无主键表数据一致性,对所有执行操作都进行位点记录,因此效率相比有主键表低。同时,如果目标表无索引,数据更新效率会更低。 业务数据库执行了DDL操作,DRS灾备实例需要等待DDL在灾备目标实例执行完成后,再执行数据回放。 业务数据库对热点表进行频繁操作。DRS灾备实例会对热点表的事务进行合并后再进行回放,减少频繁对目标库操作。 灾备数据库访问异常导致增量数据无法回放成功。
  • 什么是区域、可用区? 我们用区域和可用区来描述数据中心的位置,您可以在特定的区域、可用区创建资源。 区域(Region):从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 可用区(AZ,Availability Zone):一个AZ是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 图1阐明了区域和可用区之间的关系。 图1 区域和可用区 目前,华为云已在全球多个地域开放云服务,您可以根据需求选择适合自己的区域和可用区。更多信息请参见华为云全球站点。
  • 问题分析 出现上述内存溢出可能存在如下原因: 源数据库的mongod服务单独部署在一台机器上,如果这种情况下在迁移过程中出现内存溢出,一般就是因为在迁移过程中源库在执行会大量消耗内存的操作,比如:创建索引,排序查询等。 源数据库的mongod服务和其他服务同时部署在一台机器上,而且没有设置cacheSizeGB的大小,这种情况下,如果因为其他服务消耗掉内存导致不能给wiredTiger引擎保证的内存,则会出现内存溢出的情况。 一般默认情况下,mongod的wiredTiger引擎可以使用整个机器内存减一的50%(3.2的版本)或者60%(3.4以后的版本)。
  • MySQL迁移中Definer强制转化后如何维持原业务用户权限体系 Definer的使用主要应用在视图、存储过程、触发器、事件等对象里,Definer并不会限制对象被调用的权限,但会限制对象访问数据库的权限。本场景下,用户在MySQL迁移过程中选择了“所有Definer迁移到该用户下”,则源库用户体系下其他用户账号在完成用户迁移后,如果用户迁移和权限授权都执行成功,则无需授权便可继续使用原业务(使用DRS用户迁移功能可以实现用户、权限、密码迁移),否则如果想在原来的用户权限体系下沿用原业务,则需要进行授权后才具有Definer相关数据库对象的访问使用权限,从而保证原业务正常。 本章节主要介绍如何通过数据库命令行对用户账号进行授权的方法。 确保新用户(Definer统一使用指定账号)具备足够的权限执行视图、存储过程等相关SQL。 通过MySQL官方客户端或者其它工具登录目标数据库。 通过如下命令查看需要授权的用户user当前权限详情。 show grants for 'user'@'host'; 为了保证原业务不报错,使用如下命令给用户user授予涉及的数据库对象缺失的操作权限。 grant select,insert,update,delete on db_name.* to 'user'@'host'; 一般情况下,访问数据库的权限包括:SELECT、CREATE、DROP、DELETE、INSERT、UPDATE、INDEX、EVENT、CREATE VIEW、CREATE ROUTINE、TRIGGER、EXECUTE。您需要根据具体的数据库对象查看缺少哪些权限,再进行授权操作。 对于存储过程和函数,必须保证用户user对其有拥有EXECUTE权限,授权SQL命令如下: grant execute on db_name.function_name to 'user'@'host'; 使用授权后的用户账号访问目标库对象,无异常报错表示授权成功。需要注意:在java项目工程中调用存储过程、函数如果出现 Java.sql.SQLException: User does not have access to metadata required to determine stored procedure parameter types. If rights can not be granted, configure connection with "noAccessToProcedureBodies=true" to have driver generate parameters that represent INOUT strings irregardless of actual parametertypes,则需要单独执行用户user对mysql.proc库的授权: grant select on mysql.proc to 'user'@'host'; 父主题: 实时迁移
  • 操作建议 为避免创建任务过程中出现空间不足问题,建议提前计算源数据库的数据量总和,根据该总和一次性规划目标实例的磁盘空间,剩余磁盘空间需大于源库实际数据量大小的总和(例如“源系统1”数据量大小为1GB,“源系统2”数据量大小为3GB,“源系统3”数据量大小为6GB,则目标实例的剩余磁盘空间应该大于10GB)。 对于MySQL引擎,目标端参数的设置需要考虑整体资源的提升,建议使用第一个任务的参数对比功能中“常规参数”的“一键修改”(其中max_connections除外),而“性能参数”应该结合目标端实际规格做相应的手工设置。 对于多对一同步任务场景,由于该场景是一个一个任务逐步创建的,后面创建任务时可能会造成已创建任务的同步阻塞,为了避免这个情况发生,请注意创建技巧。 每个同步任务都会涉及创建索引步骤,而创建索引时数据库可能会导致Schema锁进而阻塞Schema下的其他表的数据同步,从而导致后创建的任务可能在索引创建阶段对已经同步中的任务阻塞一段时间,我们可以选择在创建同步任务最后设置为“稍后启动”,这样设定在业务低峰期后创建任务,从而避免后创建任务的索引创建对已有任务的同步阻塞。 对于多对一同步任务场景,不建议使用内容对比,因为内容对比无法保证一致性。 如果涉及表级汇集的多对一同步任务,则不支持DDL,否则会导致同步全部失败。 图1 参数对比
  • 库表级多对一任务操作流程 实时同步过程中,可以使用对象名映射功能修改库、表名称,实现库表级多对一。 以库级多对一为例: 在“设定同步”页面,同步对象右侧已选对象框中,选择需要进行映射的数据库,单击“编辑”按钮。 在“编辑库名”的弹出框中,填写新的数据库名,修改后的名称即为保存在目标数据库中的库名。 例如,将源库中的库A和库B,修改为同样的库C后,即可实现库A、库B到库C的同步。 库名修改成功后,您会看到修改前的库名和修改后的新数据库名,至此,表示完成库映射的配置。 图5 查看库名修改结果 配置完成后,等待任务启动并完成同步。
  • 包年包月到期说明 “包年/包月”任务到期后,如果没有及时的进行续费或充值,将进入宽限期。如宽限期满仍未续费或充值,将进入保留期。在保留期内,无法在DRS管理控制台进行该任务的操作,相关接口也无法调用,自动化监控或告警等运维也会停止。如果在保留期结束时您没有续费,实例将终止服务,系统中的数据也将被永久删除。 关于宽限期和保留期的时长限制说明,可参考这里。若您购买的任务已到期,请参见费用中心用户指南中资源停止服务或逾期释放说明章节进行处理。 父主题: 计费相关
  • 数据订阅与MySQL到Kafka同步的区别 对比项 MySQL到Kafka同步 数据订阅 支持的源数据库 华为云RDS for MySQL 本地自建MySQL数据库 E CS 自建MySQL数据库 其他云MySQL数据库 华为云RDS for MySQL 支持网络 支持公网网络、VPC网络、VPN、专线网络。 仅支持VPC网络,因未开放全网段路由,所以VPC内容器形态网络暂不支持。 数据格式 Avro、JSON和JSON-C SDK 数据类型 全量+增量数据。 仅增量数据。 同步对象 表数据、表结构。 数据更新和结构更新。 稳定性 有任务告警、监控,任务异常自动重试。 无任务告警、监控,任务异常手动重试 性能 支持多规格,可根据不同性能要求选择。 不支持规格选择,性能为极小规格的性能。 商用状态 已经商用,收费。 公测阶段,免费。 由于订阅任务当前存在较多订阅对象和操作约束,推荐使用性能、稳定性更高的MySQL到Kafka同步链路进行数据订阅。 父主题: 产品咨询
  • 为什么实时灾备任务不支持触发器(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会在结束任务的时候去迁移触发器和事件,在结束任务成功的时候保证目标库和源库的对象一致。 父主题: 实时灾备
共100000条