华为云用户手册

  • RDS for MySQL产品优势 低成本 享更多的服务 只需支付实例费用,无需其他硬件、托管等费用。 超高性能 极致用户体验 100%兼容MySQL应用。 高并发性能满足苛刻性能要求。 支持大量连接,响应更快速。 高安全性 保证数据库安全 网络隔离、访问控制、传输加密、存储加密、防DDos攻击,全系列的数据库高安全等级,保证数据库安全。 华为云的108项关键安全能力,在国内首家通过NIST CS F网络安全框架的最高等级认证。 高可靠性 多种部署及容灾方案 数据备份、数据恢复、双机热备、异地容灾、同城容灾,多种部署及容灾方案,为数据可靠性保驾护航。
  • 操作步骤 根据源端数据库的IP地址,通过数据库连接工具连接数据库。 根据支持的数据类型,在源库执行语句构造数据。 登录源端数据库。 进入任意一个待迁移的逻辑库。 本实践用到的逻辑库为db_test_info。 在db_test_info逻辑库中清空以前的表信息,确保创建成功。 drop table if exists db_test_info_001; db_test_info_001为本次实践创建的表名,请根据实际情况替换。 创建一个数据表。 create table db_test_info_001( column19 TIMESTAMP , column18 VARCHAR(256) , column11 DATETIME , column10 ENUM('a','b','c') , column13 FLOAT(2,1) , column12 YEAR , column15 VARCHAR(64) not null, column14 DOUBLE(2,1) , column17 INT , column16 LONGTEXT , column20 TIME , column21 BIT(8) , column22 LONGBLOB , column23 MEDIUMINT , column24 VARCHAR(20) , column9 DECIMAL(2,1) , column8 VARCHAR(1024) , column5 SMALLINT , column4 DATE , column7 VARCHAR(32) , column6 SET('hehe','xixi','haha') , column1 char(1) , column0 MEDIUMINT , column3 BIGINT , column2 TINYINT , primary key(column19,column11,column17) ); 插入数据。 insert into db_test_info_001(column19,column11,column10,column1,column24,column15,column23,column0,column8) values('2019-07-24 14:08:58',now(),'A',(RAND()*10000000),(RAND()*10000000),'db_test_info_001',(RAND()*10000000),(RAND()*1000000),'a'); insert into db_test_info_001(column19,column11,column17,column10,column1,column24,column15,column23,column0,column8) values(now(),now(),(RAND()*10000000),'A',(RAND()*10000000),(RAND()*10000000),'db_test_info_001',(RAND()*10000000),(RAND()*1000000),'a'); insert into db_test_info_001(column19,column11,column17,column10,column1,column24,column15,column23,column0,column8) values(now(),now(),(RAND()*10000000),'A',(RAND()*10000000),(RAND()*10000000),'db_test_info_001',(RAND()*10000000),(RAND()*1000000),'a'); insert into db_test_info_001(column19,column11,column17,column10,column1,column24,column15,column23,column0,column8) values(now(),now(),(RAND()*10000000),'A',(RAND()*10000000),(RAND()*10000000),'db_test_info_001',(RAND()*10000000),(RAND()*1000000),'a'); 查询插入结果。 select * FROM db_test_info_001;
  • 通过DRS迁移MySQL分库分表总流程 本实践的主要任务流如图1所示: 图1 操作流程 表1 迁移流程 序号 步骤 说明 1 迁移前构造数据 迁移前在源端数据库构造数据,供迁移后查看是否迁移成功。 2 目标端DDM准备 创建VPC和安全组:为创建实例准备网络资源。 创建DDM实例:创建目标端DDM实例。 创建RDS for MySQ L实例 :创建DDM下关联的RDS for MySQL实例。 创建DDM账号:创建连接DDM逻辑库的账号。 创建逻辑库并关联RDS for MySQL实例:关联DDM与RDS for MySQL实例。 创建目标库表结构:在目标库创建表结构,供迁移数据使用。 3 迁移数据库 介绍创建DRS迁移任务和迁移的整体流程。 4 迁移后进行数据校验 通过DRS数据对比功能验证数据迁移结果。 父主题: MySQL分库分表迁移到DDM
  • 资源规划 表1 资源规划 资源 资源名称 资源说明 数量 虚拟私有云VPC vpc-src-172 子网网段172.16.0.0/16 1 源端DDM实例 Autotest-DDM-SRC-001 规格4vCPUs | 8GB 节点数:2个 逻辑库名称:db_test_info 数据库用户:test_info 1 源端DDM关联的RDS实例 Auto-ddm-Single-SRC-001 实例类型:单机 数据库版本:MySQL 5.7 规格:通用增强型 2 vCPUs | 4GB 存储类型:超高IO 1 Auto-ddm-Single-SRC-002 实例类型:单机 数据库版本:MySQL 5.7 规格:通用增强型 1 vCPUs | 2GB 存储类型:超高IO 1 目标端DDM实例 Autotest-DDM-SRC-001 规格2vCPUs | 8GB 节点数:2个 逻辑库名称:db_test_info 数据库用户:test_info_tar 1 目标端DDM关联的RDS实例 Auto-tar-ddm-0001 实例类型:单机 数据库版本:MySQL 5.7 规格:通用增强型 1 vCPUs | 2GB 存储类型:超高IO 1 Auto-tar-ddm-0002 实例类型:单机 数据库版本:MySQL 5.7 规格:通用增强型 1 vCPUs | 2GB 存储类型:超高IO 1 DRS迁移实例 DRS-test-info 源数据库引擎:MySQL分库分表 目标数据库引擎:DDM 网络类型:公网网络 1 父主题: MySQL分库分表迁移到DDM
  • 资源规划 表1 资源规划 类别 子类 规划 备注 源端VPC VPC名称 vpc-DRSsrc 自定义,易理解可识别。 所属Region 华南-广州 选择和自己业务区最近的Region,减少网络时延。 可用区 可用区二 - 子网网段 10.0.0.0/24 子网选择时建议预留足够的网络资源。 子网名称 subnet-drs01 自定义,易理解可识别。 RDS(源库) RDS实例名 rds-mysql-src 自定义,易理解可识别。 所属Region 华南-广州 选择和自己业务区最近的Region,减少网络时延。 数据库版本 MySQL 5.7 - 实例类型 单机 本示例中为单机。 实际使用时,为提升业务可靠性,推荐选择主备RDS实例。 存储类型 SSD云盘 - 可用区 可用区二 本示例中为单机。 实际业务场景推荐选择主备RDS实例,此时建议将两个实例创建在不同的可用区,提升业务可靠性。 规格 通用型 4 vCPUs | 8GB - 源端VPN 网关名称 vpngw-src 自定义,易理解可识别。 所属Region 华南-广州 选择和自己业务区最近的Region,减少网络时延。 虚拟私有云(VPC) vpc-DRSsrc 与源端RDS实例VPC保持一致。 VPN连接名称 vpn-src01 自定义,易理解可识别。 本端子网 subnet-drs01 与源端RDS实例VPC子网保持一致。 远端网关 123.60.251.207 即对端VPN的网关,此处为目标端VPN的网关地址,创建目标VPN完成后获取网关信息。 远端子网 172.16.0.0/24 即对端VPN的网关,此处为目标端VPN的子网,与目标端DDM实例所在VPC的子网保持一致 目标端VPC VPC名称 vpc-DRStar 自定义,易理解可识别。 所属Region 华北-北京四 选择和自己业务区最近的Region,减少网络时延。 可用区 可用区一 - 子网网段 172.16.0.0/24 子网选择时建议预留足够的网络资源。 子网名称 subnet-drs02 自定义,易理解可识别。 DDM(目标库) DDM实例名 ddm-drs-tar 自定义,易理解可识别。 可用区 可用区一 可选择一个或者多个可用区。实际业务场景推荐选择创建在不同的可用区,提升业务可靠性。 节点规格 通用增强型 8 核 | 16 GB - 节点个数 1 单节点存在高可用风险,在实际使用过程中,建议至少创建2节点。 DDM关联RDS实例 RDS实例名 rds-ddm01 自定义,易理解可识别。 所属Region 华北-北京四 选择和自己业务区最近的Region,减少网络时延。 数据库版本 MySQL 5.7 - 实例类型 单机 本示例中为单机。 实际使用时,为提升业务可靠性,推荐选择主备RDS实例。 存储类型 SSD云盘 - 可用区 可用区一 本示例中为单机。 实际业务场景推荐选择主备RDS实例,此时建议将两个实例创建在不同的可用区,提升业务可靠性。 规格 通用型 4 vCPUs | 8GB - 目标端VPN 网关名称 vpngw-tar 自定义,易理解可识别。 所属Region 华北-北京四 选择和自己业务区最近的Region,减少网络时延。 虚拟私有云(VPC) vpc-DRStar 与目标端DDM实例VPC保持一致。 VPN连接名称 vpn-tar01 自定义,易理解可识别。 本端子网 subnet-drs02 与目标端DDM实例VPC子网保持一致。 远端网关 123.60.236.84 即对端VPN的网关,此处为源端VPN的网关地址,创建源端VPN完成后获取网关信息。 远端子网 10.0.0.0/24 即对端VPN的网关,此处为源端VPN的子网,与源端RDS for MySQL实例所在VPC的子网保持一致。 DRS迁移任务 迁移任务名 DRS-MySQLToDDM 自定义,易理解可识别。 源数据库引擎 MySQL 本示例中源数据库为MySQL,使用的华为云RDS实例。 目标数据库引擎 DDM 本示例中目标数据库为DDM。 网络类型 VPN网络 本示例中采用“VPN网络”。 父主题: RDS for MySQL迁移到DDM
  • 创建迁移任务 进入创建迁移任务页面。 填写迁移任务参数: 配置迁移任务名称。选择区域,即为目标实例所在的区域。 图1 迁移任务 填写迁移数据并选择模板库。 这里的目标库选择创建RDS for MySQL实例创建的RDS实例。 图2 填写迁移实例信息 单击“开始创建”。 迁移实例创建中,大约需要5-10分钟。迁移实例创建完成后可获取弹性公网IP信息。 配置源库信息和目标库数据库密码。 图3 配置源库和目标库 单击“下一步”。 在“迁移设置”页面,设置流速模式、迁移用户和迁移对象。 流速模式:不限速 迁移对象:全部迁移 单击“下一步”,在“预检查”页面,进行迁移任务预校验,校验是否可进行任务迁移。 查看检查结果,如有不通过的检查项,需要修复不通过项后,单击“重新校验”按钮重新进行迁移任务预校验。 预检查完成后,且所有检查项结果均成功时,单击“下一步”。 参数对比。 如果您选择不进行参数对比,可跳过该步骤,单击页面右下角“下一步”按钮,继续执行后续操作。 如果您选择进行参数对比,对于常规参数,如果源库和目标库存在不一致的情况,建议将目标数据库的参数值通过“一键修改”按钮修改为和源库对应参数相同的值。 单击“提交任务”。 返回DRS实时迁移管理,查看迁移任务状态。 启动中状态一般需要几分钟,请耐心等待。 当状态变更为“已结束”,表示迁移任务完成。
  • 账号权限要求 当使用DRS将其他云MySQL数据库的数据迁移到云数据库 RDS for MySQL实例时,账号权限要求如表1所示,授权的具体操作请参考授权操作。 表1 迁移账号权限 迁移类型 全量迁移 全量+增量迁移 源数据库(MySQL) SELECT、SHOW VIEW、EVENT。 SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。
  • 创建RDS for MySQL实例 本章节介绍创建RDS for MySQL实例。 进入购买云数据库RDS页面。 配置实例基本信息。选择区域“华南-广州”。 图1 基本信息 选择实例规格。 图2 实例规格 选择实例所属的VPC和安全组、配置数据库端口。 VPC和安全组已在创建VPC和安全组中准备好。 图3 选择网络 高级配置。 图4 高级配置 单击“立即购买”。 进行规格确认。 如果需要重新选择实例规格,单击“上一步”,回到上个页面修改实例信息。 如果规格确认无误,单击“提交”,完成购买实例的申请。 返回云数据库实例列表。当RDS实例运行状态为“正常”时,表示实例创建完成。 父主题: 其他云MySQL迁移到云数据库 RDS for MySQL
  • 资源规划 表1 资源规划 类别 子类 规划 备注 VPC VPC名称 vpc-src-172 自定义,易理解可识别。 所属Region 测试Region 现网实际选择时建议选择和自己业务区最近的Region,减少网络时延。 可用区 可用区3 - 子网网段 172.16.0.0/16 子网选择时建议预留足够的网络资源。 子网名称 subnet-src-172 自定义,易理解可识别。 其他云MySQL 数据库版本 MySQL 5.7 - IP地址 10.154.217.42 仅作为示例。 端口 3306 - RDS for MySQL实例 RDS实例名称 rds-mysql 自定义,易理解可识别。 数据库版本 MySQL 5.7 - 实例类型 单机 本示例中为单机。 实际使用时,为提升业务可靠性,推荐选择主备RDS实例。 存储类型 SSD云盘 - 可用区 可用区一 本示例中为可用区一。 实际业务场景推荐选择主备RDS实例,此时建议将两个实例创建在不同的可用区,提升业务可靠性。 性能规格 通用型 2 vCPUs | 8GB - DRS迁移任务 迁移任务名 DRS-mysql 自定义。 源数据库引擎 MySQL - 目标数据库引擎 MySQL - 网络类型 公网网络 本示例中采用公网网络。 父主题: 其他云MySQL迁移到云数据库 RDS for MySQL
  • 迁移准备 权限准备: 当使用 DRS 将本地数据库的数据迁移到本云DDS实例时,在不同迁移类型情况下,对源数据库和目标数据库的账号权限要求如表2所示: 表2 迁移账号权限 迁移类型 全量迁移 全量+增量迁移 源数据库 副本集:连接源数据库的用户需要对待迁移库有read权限。 单节点:连接源数据库的用户需要对待迁移库有read权限。 集群:连接源数据库的用户需要对待迁移库有read权限,对config数据库有read权限。 如果需要迁移源数据库用户和角色信息,连接源数据库的用户需要对admin数据库的系统表system.users,system.roles有读权限。 副本集:连接源数据库的用户需要对待迁移库有read权限,对local数据库有read权限。 单节点:连接源数据库的用户需要对待迁移库有read权限,对local数据库有read权限。 集群:连接源数据库mongos节点的用户需要对待迁移库有read权限,对config数据库有read权限, 连接源数据库分片节点的用户需要对admin数据库有readAnyDatabase权限,对local数据库有read权限。 如果需要迁移源数据库用户和角色信息,连接源数据库的用户需要对admin数据库的系统表system.users,system.roles有读权限。 目标数据库 连接目标数据库的用户需要对admin数据库有dbAdminAnyDatabase权限,对目标数据库有readWrite权限。对于目标数据库是集群的实例,迁移账号还要有对config数据的读权限 源数据库的权限设置: 需要确保源数据库MongoDB的账号具备表2的权限,若权限不足,需要在源数据库端创建高权限的账号。 目标数据库的权限设置: 本云DDS实例使用初始账号即可。 网络准备: 源数据库的网络设置: 本地MongoDB数据库实时迁移至本云DDS的场景,一般可以使用VPN网络和公网网络两种方式进行迁移,您可以根据实际情况为本地MongoDB数据库开放公网访问或建立VPN访问。一般推荐使用公网网络进行迁移,该方式下的数据迁移过程较为方便和经济。 目标数据库的网络设置: 若通过VPN访问,请先开通VPN服务,确保源数据库和目标DDS网络互通。 若通过公网网络访问,目标DDS不需要进行设置。 安全规则准备: 源数据库的白名单设置: 若通过公网网络进行迁移,源数据库MongoDB实例需要将具体的DRS迁移实例的弹性公网IP添加到其网络白名单中,确保源数据库MongoDB实例可以与上述弹性公网IP连通。在设置网络白名单之前需要获取DRS迁移实例,具体方法如下: 迁移实例创建成功后,可在“源库及目标库”页面获取DRS迁移实例的弹性公网IP。如图4所示: 图4 迁移实例公网弹性IP 以上讲述的是精细配置白名单的方法,还有一种简单设置白名单的方法,在安全允许的情况下,可以将源数据库MongoDB实例的网络白名单设置为0.0.0.0/0,代表允许任何IP地址访问该实例。 若通过VPN网络进行迁移,源库需要将DRS迁移实例的私有IP添加到其网络白名单内,确保源端和目标端网络互通。 上述的网络白名单是为了进行数据迁移设置的,迁移结束后可以删除。 目标数据库安全组规则设置: 目标数据库默认与DRS迁移实例处在同一个VPC,网络是互通的,DRS可以直接写入数据到目标数据库,不需要进行任何设置。 其他事项准备: 由于迁移过程不会迁移MongoDB数据库的用户信息以及相关参数,需要自行将上述信息导出后手动添加到目标DDS中。
  • 资源规划 表1 资源规划 类别 子类 规划 备注 VPC VPC名称 vpc-dds 自定义,易理解可识别。 所属Region 华南-广州 选择和自己业务区最近的Region,减少网络时延。 可用区 可用区一 - 子网网段 10.0.0.0/24 子网选择时建议预留足够的网络资源。 子网名称 subnet-default 自定义,易理解可识别。 本地MongoDB 数据库版本 MongoDB 4.4 自定义,易理解可识别。 DDS DDS 实例名 dds-test 自定义,易理解可识别。 数据库引擎 DDS - 兼容的数据库版本 4.4 - 可用区类型 单可用区 - 可用区 可用区一 - 性能规格 增强Ⅱ型 - CPU架构 X86 8 vCPUs | 32GB - DRS迁移任务 迁移任务名 DRS-dds 自定义。 源数据库引擎 MongoDB 本示例中源数据库为自建MongoDB,即在本地服务器上安装社区版MongoDB。 目标数据库引擎 DDS 本示例中目标数据库为华为云DDS实例。 网络类型 公用网络 本示例中采用公用网络。
  • 迁移准备 权限准备: 当使用 DRS 将本地数据库的数据迁移到本云云数据库 RDS for MySQL 实例时,在不同迁移类型情况下,对源数据库和目标数据库的账号权限要求如表1所示: 表1 迁移账号权限 迁移类型 全量迁移 全量+增量迁移 源数据库 SELECT、SHOW VIEW、EVENT。 SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。 目标数据库 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权限。 用户迁移时,需要有mysql库的SELECT、INSERT、UPDATE、DELETE权限。 源数据库的权限设置: 需要确保源数据库MySQL的账号具备表1的权限,若权限不足,需要在源数据库端创建高权限的账号。 目标数据库的权限设置: 本云云数据库 RDS for MySQL使用初始账号即可。 网络准备: 源数据库的网络设置: 本地MySQL数据库实时迁移至本云云数据库 RDS for MySQL的场景,一般可以使用VPN网络和公网网络两种方式进行迁移,您可以根据实际情况为本地MySQL数据库开放公网访问或建立VPN访问。一般推荐使用公网网络进行迁移,该方式下的数据迁移过程较为方便和经济。 目标数据库的网络设置: 若通过VPN访问,请先开通华为VPN服务,确保源数据库MySQL和目标端本云云数据库 RDS for MySQL的网络互通。 若通过公网网络访问,本云云数据库 RDS for MySQL实例不需要进行任何设置。 安全规则准备: 源数据库的安全规则设置: 若通过公网网络进行迁移,源数据库MySQL需要将DRS迁移实例的弹性公网IP添加到其网络白名单内,使源数据库与本云的网络互通。在设置网络白名单之前,需要获取DRS迁移实例的弹性公网IP,具体方法如下: DRS迁移实例创建成功后,可在“源库及目标库”页面获取DRS迁移实例的弹性公网IP。 图4 迁移实例EIP 若通过VPN网络进行迁移,源数据库MySQL需要将DRS迁移实例的私有IP添加到其网络白名单内,使源数据库与本云的网络互通。DRS迁移实例创建成功后,可在“源库及目标库”页面获取DRS迁移实例的私有IP。 以上白名单是为了进行迁移针对性设置的,迁移结束后可以删除。 目标数据库安全组规则设置: 目标数据库默认与DRS迁移实例处在同一个VPC,网络是互通的,DRS可以直接写入数据到目标数据库,不需要进行任何设置。 其他事项准备。 DRS支持部分与业务和性能强相关的参数迁移,具体参数列表请参见参数列表。若涉及其他参数需要根据用户具体的业务进行手动设置。
  • 迁移准备 权限准备: 当使用 DRS 将其他云MongoDB数据库的数据迁移到本云DDS实例时,在不同迁移类型情况下,对源数据库和目标数据库的账号权限要求如表2: 表2 迁移账号权限 迁移类型 全量迁移 全量+增量迁移 源数据库 副本集:连接源数据库的用户需要对待迁移库有read权限。 单节点:连接源数据库的用户需要对待迁移库有read权限。 集群:连接源数据库的用户需要对待迁移库有read权限,对config数据库有read权限。 如果需要迁移源数据库用户和角色信息,连接源数据库的用户需要对admin数据库的系统表system.users,system.roles有读权限。 副本集:连接源数据库的用户需要对待迁移库有read权限,对local数据库有read权限。 单节点:连接源数据库的用户需要对待迁移库有read权限,对local数据库有read权限。 集群:连接源数据库mongos节点的用户需要对待迁移库有read权限,对config数据库有read权限, 连接源数据库分片节点的用户需要对admin数据库有readAnyDatabase权限,对local数据库有read权限。 如果需要迁移源数据库用户和角色信息,连接源数据库的用户需要对admin数据库的系统表system.users,system.roles有读权限。 目标数据库 连接目标数据库的用户需要对admin数据库有dbAdminAnyDatabase权限,对目标数据库有readWrite权限。对于目标数据库是集群的实例,迁移账号还要有对config数据的读权限 源数据库权限设置: 需要确保源数据库MongoDB的账号权限具备表2的要求。若权限不足,需要在源数据库端开通高权限的账号。 目标数据库权限设置: 本云DDS实例使用初始账号即可。 网络准备: 源数据库需要开放公网访问。 源数据库的网络设置: 源数据库MongoDB实例需要开放公网 域名 的访问。 目标数据库的网络设置:目标端不需要进行设置。 安全规则准备: 源数据库安全组规则设置: 源数据库MongoDB实例需要将具体的DRS迁移实例的弹性公网IP添加到其网络白名单中,确保源数据库MongoDB实例可以与上述弹性公网IP连通。 在设置网络白名单之前,需要先获取DRS迁移实例的弹性公网IP,具体操作如下: 迁移实例创建成功后,可在“源库及目标库”页面获取DRS迁移实例的弹性公网IP。如图4所示: 图4 迁移实例公网弹性IP 以上讲述的是精细配置白名单的方法,还有一种简单设置白名单的方法,在安全允许的情况下,可以将源数据库MongoDB实例的网络白名单设置为0.0.0.0/0,代表允许任何IP地址访问该实例。 上述的网络白名单是为了进行数据迁移设置的,迁移结束后可以删除。 目标数据库安全组规则设置: 目标数据库默认与DRS迁移实例处在同一个VPC,网络是互通的,DRS可以直接写入数据到目标数据库,不需要进行任何设置。 其他事项准备: 由于迁移过程不会迁移MongoDB数据库的用户信息以及相关参数,需要自行将上述信息导出后手动添加到目标DDS中。
  • 资源规划 表1 资源规划 类别 子类 规划 备注 VPC VPC名称 vpc-dds 自定义,易理解可识别。 所属Region 华南-广州 选择和自己业务区最近的Region,减少网络时延。 可用区 可用区一 - 子网网段 10.0.0.0/24 子网选择时建议预留足够的网络资源。 子网名称 subnet-default 自定义,易理解可识别。 其他云MongoDB 数据库版本 MongoDB 4.4 - IP地址 192.168.0.1 仅作为示例。 端口 8635 仅作为示例。 DDS实例 实例名称 dds-test 自定义,易理解可识别。 数据库版本 DDS 4.4 - 可用区类型 单可用区 仅作为示例。 可用区 可用区一 本示例中为可用区一。 性能规格 增强Ⅱ型 4 vCPUs | 16 GB 本示例中选择的规格。实际选择的规格需要结合业务场景选择。 DRS迁移任务 迁移任务名 DRS-test-migrate 自定义。 源数据库引擎 MongoDB - 目标数据库引擎 DDS - 网络类型 公网网络 本示例中采用公网网络。
  • 引擎类型说明 DRS各引擎类型对应取值可参考引擎类型说明。 表1 引擎类型说明 引擎类型(engine_type) 说明 对应源数据库取值(db_type) 对应目标数据库取值(db_type) mysql MySQL到MySQL迁移、MySQL到MySQL同步场景使用。 mysql mysql mongodb MongoDB到DDS迁移场景使用。 mongodb mongodb redis-to-gaussredis Redis迁移到GeminiDB Redis,实时迁移场景使用。 redis gaussredis rediscluster-to-gaussredis Redis集群迁移到GeminiDB Redis,实时迁移场景使用。 rediscluster gaussredis cloudDataGuard-mysql MySQL到MySQL灾备场景使用。 mysql mysql gaussdbv5 GaussDB 分布式到GaussDB分布式版同步场景使用。 gaussdbv5 gaussdbv5 mysql-to-kafka MySQL到Kafka同步场景使用。 mysql kafka taurus-to-kafka TaurusDB到Kafka同步场景使用。 taurus kafka gaussdbv5ha-to-kafka GaussDB集中式版到Kafka同步场景使用。 gaussdbv5ha kafka postgresql PostgreSQL到PostgreSQL同步场景使用。 postgresql postgresql oracle-to-gaussdbv5 Oracle到GaussDB分布式版同步场景使用。 oracle gaussdbv5 父主题: 附录
  • 请求示例 查询任务详情请求示例: https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-detail { "jobs" : [ "24834eb6-be30-464e-a299-f7aa730jb101", "140b5236-88ad-43c8-811c-1268453jb101" ], "page_req" : { "cur_page" : 1, "per_page" : 10 } }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 指定类型为application/json。 缺省值:application/json X-Auth-Token 是 String 从 IAM 服务获取的用户Token。 X-Language 否 String 请求语言类型。 缺省值:en-us 取值: en-us zh-cn 表3 请求Body参数 参数 是否必选 参数类型 描述 jobs 是 Array of strings 批量查询任务详情。 page_req 否 Object 分页信息。 详情请参见表4。 表4 page_req字段数据结构说明 参数 是否必选 参数类型 描述 cur_page 否 Integer 当前页, 不能超过传入jobID数量除每页任务数量的最大页。 最小值:1 缺省值:1 per_page 否 Integer 每页item数量,填0获取全部item。 最小值:0 最大值:100 缺省值:5
  • 请求示例 批量查询任务状态示例: https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-status { "jobs" : [ "9a470239-2308-4bb5-a6bc-1040402fjb21", "dc67695a-ee3e-49b8-a022-a099bd81jb21" ], "page_req" : { "cur_page" : 1, "per_page" : 10 } }
  • 响应示例 状态码: 200 OK { "results" : [ { "id" : "9a470239-2308-4bb5-a6bc-1040402fjb21", "status" : "INCRE_TRANSFER_STARTED" }, { "id" : "dc67695a-ee3e-49b8-a022-a099bd81jb21", "status" : "INCRE_TRANSFER_FAILED" } ], "count" : 2 }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 指定类型为application/json。 缺省值:application/json X-Auth-Token 是 String 从IAM服务获取的用户Token。 X-Language 否 String 请求语言类型。 缺省值:en-us 取值: en-us zh-cn 表3 请求Body参数 参数 是否必选 参数类型 描述 jobs 是 Array of strings 批量查询任务详情。 page_req 否 Object 分页信息。 详情请参见表4。 表4 page_req字段数据结构说明 参数 是否必选 参数类型 描述 cur_page 否 Integer 当前页, 不能超过传入jobID数量除每页任务数量的最大页。 最小值:1 缺省值:1 per_page 否 Integer 每页item数量,填0获取全部item。 最小值:0 最大值:100 缺省值:5
  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 results Array of objects 任务状态信息。 详情请参见表6。 count Integer 返回任务数量。 表6 results字段数据结构说明 参数 参数类型 描述 id String 任务ID。 status String 任务状态。 CREATING:创建中 CREATE_FAILED:创建失败 CONFIGURATION:配置中 STARTJOBING:启动中 WAITING_FOR_START:等待启动中 START_JOB_FAILED:启动失败 PAUSING:已暂停 FULL_TRANSFER_STARTED:全量开始,灾备场景下为初始化 FULL_TRANSFER_FAILED:全量失败,灾备场景下为初始化失败 FULL_TRANSFER_COMPLETE:全量完成,灾备场景下为初始化完成 INCRE_TRANSFER_STARTED:增量开始,灾备场景下为灾备中 INCRE_TRANSFER_FAILED:增量失败,灾备场景下为灾备异常 RELEASE_RESOURCE_STARTED:结束任务中 RELEASE_RESOURCE_FAILED:结束任务失败 RELEASE_RESOURCE_COMPLETE:已结束 REBUILD_NODE_STARTED:故障恢复中 REBUILD_NODE_FAILED:故障恢复失败 CHANGE_JOB_STARTED:任务变更中 CHANGE_JOB_FAILED:任务变更失败 DELETED:已删除 CHILD_TRANSFER_STARTING:再编辑子任务启动中 CHILD_TRANSFER_STARTED:再编辑子任务迁移中 CHILD_TRANSFER_COMPLETE:再编辑子任务迁移完成 CHILD_TRANSFER_FAILED:再编辑子任务迁移失败 RELEASE_CHILD_TRANSFER_STARTED:再编辑子任务结束中 RELEASE_CHILD_TRANSFER_COMPLETE:再编辑子任务已结束 NODE_UPGRADE_START:升级开始 NODE_UPGRADE_COMPLETE:升级完成 NODE_UPGRADE_FAILED:升级失败 枚举值: CREATING CREATE_FAILED CONFIGURATION STARTJOBING WAITING_FOR_START START_JOB_FAILED PAUSING FULL_TRANSFER_STARTED FULL_TRANSFER_FAILED FULL_TRANSFER_COMPLETE INCRE_TRANSFER_STARTED INCRE_TRANSFER_FAILED RELEASE_RESOURCE_STARTED RELEASE_RESOURCE_FAILED RELEASE_RESOURCE_COMPLETE REBUILD_NODE_STARTED REBUILD_NODE_FAILED CHANGE_JOB_STARTED CHANGE_JOB_FAILED DELETED CHILD_TRANSFER_STARTING CHILD_TRANSFER_STARTED CHILD_TRANSFER_COMPLETE CHILD_TRANSFER_FAILED RELEASE_CHILD_TRANSFER_STARTED RELEASE_CHILD_TRANSFER_COMPLETE NODE_UPGRADE_START NODE_UPGRADE_COMPLETE NODE_UPGRADE_FAILED error_code String 错误码。 error_message String 错误信息。
  • 通过API获取任务ID 任务ID还可通过调用批量创建任务API创建任务后获取。 创建任务成功后,响应示例如下,其中的“id”即为任务ID。 { "results" : [ { "id" : "e11eaf8f-71ef-4fad-8890-aed7572ajb11", "name" : "DRS-9228", "status" : "CREATING", "create_time" : "1599188556112" } ], "count" : 1 }
  • 概述 欢迎使用 数据复制服务 (Data Replication Service,简称DRS)。数据复制服务是一种易用、稳定、高效、用于数据库在线迁移和数据库实时同步的云服务。数据复制服务是通过创建任务,以任务作为数据库迁移的导向。 您可以使用本文档提供的API对数据复制任务进行相关操作,如创建、获取详情、获取列表、删除等。支持的全部操作请参见API概览。 在调用数据复制服务API之前,请确保已经充分了解数据复制服务的相关概念,详细信息请参见产品介绍。 父主题: 使用前必读
  • 状态码 状态码如表1所示: 表1 状态码 状态码 编码 错误码说明 100 Continue 继续请求。 这个临时响应用来通知客户端,它的部分请求已经被服务器接收,且仍未被拒绝。 101 Switching Protocols 切换协议。只能切换到更高级的协议。 例如,切换到HTTP的新版本协议。 200 OK 请求成功。 201 Created 创建类的请求完全成功。 202 Accepted 已经接受请求,但未处理完成。 203 Non-Authoritative Information 非授权信息,请求成功。 204 NoContent 请求完全成功,同时HTTP响应不包含响应体。 在响应OPTIONS方法的HTTP请求时返回此状态码。 205 Reset Content 重置内容,服务器处理成功。 206 Partial Content 服务器成功处理了部分GET请求。 300 Multiple Choices 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择。 301 Moved Permanently 永久移动,请求的资源已被永久的移动到新的URI,返回信息会包括新的URI。 302 Found 资源被临时移动。 303 See Other 查看其它地址。 使用GET和POST请求查看。 304 Not Modified 所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。 305 Use Proxy 所请求的资源必须通过代理访问。 306 Unused 已经被废弃的HTTP状态码。 400 BadRequest 非法请求。 建议直接修改该请求,不要重试该请求。 401 Unauthorized 在客户端提供认证信息后,返回该状态码,表明服务端指出客户端所提供的认证信息不正确或非法。 402 Payment Required 保留请求。 403 Forbidden 请求被拒绝访问。 返回该状态码,表明请求能够到达服务端,且服务端能够理解用户请求,但是拒绝做更多的事情,因为该请求被设置为拒绝访问,建议直接修改该请求,不要重试该请求。 404 NotFound 所请求的资源不存在。 建议直接修改该请求,不要重试该请求。 405 MethodNotAllowed 请求中带有该资源不支持的方法。 建议直接修改该请求,不要重试该请求。 406 Not Acceptable 服务器无法根据客户端请求的内容特性完成请求。 407 Proxy Authentication Required 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权。 408 Request Time-out 服务器等候请求时发生超时。 客户端可以随时再次提交该请求而无需进行任何更改。 409 Conflict 服务器在完成请求时发生冲突。 返回该状态码,表明客户端尝试创建的资源已经存在,或者由于冲突请求的更新操作不能被完成。 410 Gone 客户端请求的资源已经不存在。 返回该状态码,表明请求的资源已被永久删除。 411 Length Required 服务器无法处理客户端发送的不带Content-Length的请求信息。 412 Precondition Failed 未满足前提条件,服务器未满足请求者在请求中设置的其中一个前提条件。 413 Request Entity Too Large 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息。 414 Request-URI Too Large 请求的URI过长(URI通常为网址),服务器无法处理。 415 Unsupported Media Type 服务器无法处理请求附带的媒体格式。 416 Requested range not satisfiable 客户端请求的范围无效。 417 Expectation Failed 服务器无法满足Expect的请求头信息。 422 UnprocessableEntity 请求格式正确,但是由于含有语义错误,无法响应。 429 TooManyRequests 表明请求超出了客户端访问频率的限制或者服务端接收到多于它能处理的请求。建议客户端读取相应的Retry-After首部,然后等待该首部指出的时间后再重试。 500 InternalServerError 表明服务端能被请求访问到,但是不能理解用户的请求。 501 Not Implemented 服务器不支持请求的功能,无法完成请求。 502 Bad Gateway 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。 503 ServiceUnavailable 被请求的服务无效。 建议直接修改该请求,不要重试该请求。 504 ServerTimeout 请求在给定的时间内无法完成。客户端仅在为请求指定超时(Timeout)参数时会得到该响应。 505 HTTP Version not supported 服务器不支持请求的HTTP协议的版本,无法完成处理。 父主题: 附录
  • 调用API获取项目ID 项目ID还可通过调用查询指定条件下的项目列表API获取。 获取项目ID的接口为“GET https://{endpoint}/v3/projects/”,其中{endpoint}为IAM的终端节点,可以从地区和终端节点获取。接口的认证鉴权请参见认证鉴权。 响应示例如下,其中projects下的“id”即为项目ID。 { "projects": [ { "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "cn-xianhz-1", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99" }, "id": "a4a5d4098fb4474fa22cd05f897d6b99", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" } }
  • DRS授权分类 “√”表示支持,“x”表示暂不支持。 表1 任务功能 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目(Enterprise Project) 批量创建任务 POST /v3/{project_id}/jobs/batch-creation drs:migrationJobs:create(创建实例需要在项目上配置 RDS ReadOnlyAccess、VPC FullAccess、 SMN FullAccess权限。) √ √ 批量结束和删除任务 DELETE /v3/{project_id}/jobs/batch-jobs drs:migrationJobs:delete(结束和删除实例需要在项目上配置 RDS ReadOnlyAccess、VPC FullAccess、SMN FullAccess权限。) √ √ 批量测试连接 POST /v3/{project_id}/jobs/batch-connection drs:migrationJobs:connect(测试连接需要在项目上配置 VPC FullAccess权限。) √ √ 批量数据库对象选择信息 PUT /v3/{project_id}/jobs/batch-select-objects drs:migrationJobs:select(对象选择信息需要在项目上配置 RDS FullAccess、DAS FullAccess) √ √ 批量查询rpo和rto POST /v3/{project_id}/jobs/batch-rpo-and-rto drs:dataGuardJob:list √ √ 批量主备倒换 POST /v3/{project_id}/jobs/batch-switchover drs:disasterRecoveryJob:switchover √ √ 批量测试连接-集群模式 POST /v3/{project_id}/jobs/cluster/batch-connection drs:migrationJobs:connect(测试连接需要在项目上配置 VPC FullAccess权限。) √ √ 批量预检查 POST /v3/{project_id}/jobs/batch-precheck drs:migrationJob:action √ √ 批量查询预检查结果 POST /v3/{project_id}/jobs/batch-precheck-result drs:migrationJob:get √ √ 批量设置任务限速 PUT /v3/{project_id}/jobs/batch-limit-speed drs:migrationJobs:update √ √ 批量获取数据库参数 POST /v3/{project_id}/jobs/batch-get-params drs:databaseParameters:get √ √ 批量续传/重试 POST /v3/{project_id}/jobs/batch-retry-task drs:migrationJob:action √ √ 批量暂停任务 POST /v3/{project_id}/jobs/batch-starting drs:migrationJob:action √ √ 批量修改任务 PUT /v3/{project_id}/jobs/batch-modification drs:migrationJob:modify √ √ 批量修改源库/目标库密码 PUT /v3/{project_id}/jobs/batch-modify-pwd drs:migrationJobs:update √ √ 批量设置definer POST /v3/{project_id}/jobs/batch-replace-definer drs:migrationJob:updateJobConfig √ √ 批量创建对比任务 POST /v3/{project_id}/jobs/batch-create-compar drs:migrationCompareJob:create √ √ 批量查询对比结果 POST /v3/{project_id}/jobs/batch-compare-result drs:CompareJob:getResult √ √ 批量查询任务进度 POST /v3/{project_id}/jobs/batch-progress drs:migrationJobs:getProgress √ √ 查询租户任务列表 POST /v3/{project_id}/jobs DRS ReadOnlyAccess √ √ 查询容灾监控数据 POST /v3/{project_id}/jobs/disaster-recovery-monitoring-data drs:disasterRecoveryJob:get √ √ 批量查询灾备初始化进度 POST /v3/{project_id}/jobs/batch-struct-process drs:disasterRecoveryJob:get √ √ 批量查询灾备初始化对象详情 POST /v3/{project_id}/jobs/{type}/batch-struct-detail drs:disasterRecoveryJob:get √ √ 批量更新迁移用户信息 PUT /v3/{project_id}/jobs/batch-update-user drs:migrationJob:modifyUserInfo √ √ 修改数据库参数 POST /v1.0/{projectId}/jobs/{jobId}/params drs:dataBaseParams:modify(配置 RDS ReadOnlyAccess、VPC FullAccess、SMN FullAccess,DAS FullAccess权限。) √ √ 批量数据加工 POST /v3/{project_id}/jobs/batch-transformation drs:migrationJob:action √ √ 批量启动任务 POST /v3/{project_id}/jobs/batch-starting drs:migrationJob:action √ √ 批量查询任务详情 POST /v3/{project_id}/jobs/batch-detail drs:migrationJob:get √ √ 批量查询任务状态 POST /v3/{project_id}/jobs/batch-status drs:migrationJob:get √ √ 父主题: 权限策略和授权项
  • 支持的授权项 细粒度策略支持的操作与API相对应,授权项列表说明如下: 权限:自定义策略中授权项定义的内容即为权限。 对应API接口:自定义策略实际调用的API接口。 授权项:自定义策略中支持的Action,在自定义策略中的Action中写入授权项,可以实现授权项对应的权限功能。 依赖的授权项:部分Action存在对其他Action的依赖,需要将依赖的Action同时写入授权项,才能实现对应的权限功能。 IAM项目(Project)/企业项目(Enterprise Project):自定义策略的授权范围,包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目,不支持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。关于IAM项目与企业项目的区别,详情请参见:IAM与企业管理的区别。
  • 任务状态说明 表1 任务状态说明 状态值 状态说明 CREATING 创建中。 CREATE_FAILED 创建失败。 CONFIGURATION 配置中。 STARTJOBING 启动中。 WAITING_FOR_START 等待启动中。 START_JOB_FAILED 任务启动失败。 PAUSING 任务暂停中。 FULL_TRANSFER_STARTED 全量迁移中 灾备场景为初始化。 FULL_TRANSFER_FAILED 全量迁移失败 灾备场景为初始化失败。 FULL_TRANSFER_COMPLETE 全量迁移完成 灾备场景为初始化完成。 INCRE_TRANSFER_STARTED 增量迁移中 灾备场景为灾备中。 INCRE_TRANSFER_FAILED 增量迁移失败 灾备场景为灾备异常。 RELEASE_RESOURCE_STARTED 结束任务中。 RELEASE_RESOURCE_FAILED 结束任务失败。 RELEASE_RESOURCE_COMPLETE 已结束。 CHANGE_JOB_STARTED 任务变更中。 CHANGE_JOB_FAILED 任务变更失败。 CHILD_TRANSFER_STARTING 子任务启动中。 CHILD_TRANSFER_STARTED 子任务迁移中。 CHILD_TRANSFER_COMPLETE 子任务迁移完成。 CHILD_TRANSFER_FAILED 子任务迁移失败。 RELEASE_CHILD_TRANSFER_STARTED 子任务结束中。 RELEASE_CHILD_TRANSFER_COMPLETE 子任务已结束。 父主题: 附录
  • 通用请求Http Status Code 正常 表1 正常返回说明 返回值 说明 200 请求成功。 202 异步请求成功提交(任务执行等)。 异常 表2 异常返回说明 返回值 说明 400 Bad Request 服务器未能处理请求。 401 Unauthorized 被请求的页面需要用户名和密码。 403 Forbidden 对被请求页面的访问被禁止。 404 Not Found 服务器无法找到被请求的页面。 405 Method Not Allowed 请求中指定的方法不被允许。 409 Conflict 由于冲突,请求无法被完成。 413 Request Entity Too Large 请求超过资源配额。 415 Unsupported Media Type 请求头中携带的Content-Type类型不正确,必须为application/json。 422 Unprocessable Entity 请求中的参数或对象不能被正确识别。 500 Internal Server Error 请求未完成。服务异常。 501 Not Implemented 请求未完成。服务器不支持所请求的功能。 503 Service Unavailable 请求未完成。系统暂时异常。 父主题: 附录
  • 异常请求结果 异常响应要素说明 表1 异常响应要素说明 名称 参数类型 说明 error_code String 接口响应异常时返回的错误编码,详细错误码描述参考错误码。 error_msg String 接口响应异常时返回的错误描述信息。 响应样例 { "error_code": "DRS.M00201", "error_msg": "%s参数为空" } { "error_code": "DRS.M00202", "error_msg": "%s取值不合法" } 父主题: 附录
共100000条
提示

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