云服务器内容精选

  • 引擎类型说明 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 GaussDB(for MySQL)到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
  • 响应参数 状态码: 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 错误信息。
  • 请求示例 批量查询任务状态示例: 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
  • 通过API获取任务ID 任务ID还可通过调用批量创建任务API创建任务后获取。 创建任务成功后,响应示例如下,其中的“id”即为任务ID。 { "results" : [ { "id" : "e11eaf8f-71ef-4fad-8890-aed7572ajb11", "name" : "DRS-9228", "status" : "CREATING", "create_time" : "1599188556112" } ], "count" : 1 }
  • 终端节点 终端节点(Endpoint)即调用API的请求地址,不同服务不同区域的终端节点不同,您可以从地区和终端节点中查询服务的终端节点。 数据复制服务 API当前支持的Region如表1和表2所示,请您根据业务需要选择对应区域的终端节点。 表1 数据复制服务v5 API当前支持的Region 区 域名 称 区域 终端节点(Endpoint) 协议类型 华南-深圳 cn-south-2 drs.cn-south-2.myhuaweicloud.com HTTPS 华南-广州-友好用户环境 cn-south-4 drs.cn-south-4.myhuaweicloud.com HTTPS 表2 数据复制服务v3 API当前支持的Region 区域名称 区域 终端节点(Endpoint) 协议类型 华北-北京一 cn-north-1 drs.cn-north-1.myhuaweicloud.com HTTPS 华北-北京二 cn-north-2 drs.cn-north-2.myhuaweicloud.com HTTPS 华北-北京四 cn-north-4 drs.cn-north-4.myhuaweicloud.com HTTPS 华北-乌兰察布一 cn-north-9 drs.cn-north-9.myhuaweicloud.com HTTPS 华东-上海一 cn-east-3 drs.cn-east-3.myhuaweicloud.com HTTPS 华东-上海二 cn-east-2 drs.cn-east-2.myhuaweicloud.com HTTPS 华南-广州 cn-south-1 drs.cn-south-1.myhuaweicloud.com HTTPS 华南-深圳 cn-south-2 drs.cn-south-2.myhuaweicloud.com HTTPS 西南-贵阳一 cn-southwest-2 drs.cn-southwest-2.myhuaweicloud.com HTTPS 拉美-圣地亚哥 la-south-2 drs.la-south-2.myhuaweicloud.com HTTPS 拉美-圣保罗一 sa-brazil-1 drs.sa-brazil-1.myhuaweicloud.com HTTPS 非洲-约翰内斯堡 af-south-1 drs.af-south-1.myhuaweicloud.com HTTPS 中国-香港 ap-southeast-1 drs.ap-southeast-1.myhuaweicloud.com HTTPS 亚太-新加坡 ap-southeast-3 drs.ap-southeast-3.myhuaweicloud.com HTTPS 亚太-曼谷 ap-southeast-2 drs.ap-southeast-2.myhuaweicloud.com HTTPS 亚太-雅加达 ap-southeast-4 drs.ap-southeast-4.myhuaweicloud.com HTTPS 土耳其-伊斯坦布尔 tr-west-1 drs.tr-west-1.myhuaweicloud.com HTTPS 父主题: 使用前必读
  • 概述 欢迎使用数据复制服务(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" } }
  • 响应参数 状态码: 200 表8 响应Body参数 参数 参数类型 描述 results Array of objects 批量数据加工响应列表。 详情请参见表9。 count integer 总数。 表9 results字段数据结构说明 参数 参数类型 描述 id String 任务ID。 status String 状态。取值: success failed error_code String 错误码。 error_msg String 错误信息。
  • 请求参数 表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 objects 批量数据加工规则请求列表。 详情请参见表4。 表4 jobs字段数据结构说明 参数 是否必选 参数类型 描述 job_id 否 String 任务ID。 object_info 否 Array of objects 对象信息,生成加工规则时需要填写。 详情请参见表5。 transformation_info 是 Object 加工信息。 详情请参见表6 config_transformation 否 Object 配置信息,如果存在多张关联表,请生成多条配置规则。满足配置条件的数据将暂存到缓存中,在数据过滤的场景进行使用。 配置的库名和表名支持数字、字母和下划线。 配置的列名、主键、索引,请确保与源库配置表的字段名保持大小写一致。 详情请参见表7。 表5 object_info字段数据结构说明 参数 是否必选 参数类型 描述 id 否 String 数据库名称和数据库表名称,例如格式为lxl_test1-*-*-test_1,其中lxl_test1为数据库名称,test_1为表名称。 select 否 String 是否选择高级配置,值为true。 表6 transformation_info字段数据结构说明 参数 是否必选 参数类型 描述 transformation_type 是 String 生成加工规则值为contentConditionalFilter。 生成配置规则值为configConditionalFilter。 取值: contentConditionalFilter configConditionalFilter value 是 String 过滤条件,生成加工规则值为sql条件语句,生成配置规则值为config。长度限制256。 表7 config_transformation字段数据结构说明 参数 是否必选 参数类型 描述 db_table_name 是 String 库名.表名,例如格式为lxl_test1.test_1,其中lxl_test1为库名,test_1为表名。 db_name 是 String 库名。长度限制256。 table_name 是 String 表名。长度限制256。 col_names 是 String 列名。长度限制256。 prim_key_or_index 是 String 主键或唯一索引。长度限制256。 indexs 是 String 优化查询所需的索引。长度限制256。 values 是 String 过滤条件。长度限制256。
  • 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 √ √ 父主题: 权限策略和授权项