华为云用户手册

  • 成本计划 估算和预测成本 云支出的可变性,导致云支出是很难预测的。 对于新产品发布或区域扩张,客户可使用华为云价格计算器在线自助估算各种产品,不同区域、不同规格、不同购买选项的成本。 对于已使用产品,客户也可以使用华为云成本中心的成本分析来预测每日(最多未来90天)或每月(最多未来12个月)的云成本。该预测,主要基于客户历史成本和历史用量情况,应用机器算法进行估算。 创建预算以跟踪成本 跟踪成本计划的有效工具是预算。 一旦完成成本的估算与预测,客户可以在华为云成本中心的预算管理创建精细粒度的预算来管理成本,并可以创建预算提醒,在实际或预测超过预算阈值时,自动通知利益相关人支出异常。 客户还可以创建预算报告,每天/每周/每月,定期将指定预算进展通知给利益相关人。
  • 云上云下互联 单条专线场景 图1 单条专线场景 通过将专线接入ER,实现线下IDC和云上多个VPC互通。避免了需要为每个和IDC互通的VPC建立专线。多个VPC可以共享专线访问线下IDC,免去多条专线配置,降低成本。 通过将VPC关联至ER中不同的路由表,灵活实现VPC之间的互通和隔离,网络拓扑简洁,配置简单易管理。 多条专线场景 图2 多条专线场景 云上业务访问线下IDC要求高带宽、高可靠时,通常部署两条或更多的专线链路,专线链路之间相互独立。 专线接入ER后,可以实现专线的动态选路和切换。多个链路之间进行负载分担实现高带宽,同时保证可靠性;多个链路之间互为主备,单链路故障秒级切换,避免了单点故障带来的业务中断。
  • VPC之间的互联 企业路由器(ER)是云上大规格,高带宽,高性能的集中路由器,支持路由学习、动态选路以及链路切换,减少路由条目配置及维护工作量。将同Region的多个VPC接入ER中,就可以实现同区域多个VPC互通。 不同应用账号的VPC可以通过ER路由规则隔离。VPC之间支持灵活互通和隔离。 VPC间访问策略 DMZ VPC所有子网默认对内只能访问维护子网和公共服务子网的服务端口. DMZ VPC建议不同业务用不同子网,默认隔离,按需放通 DMZ VPC业务系统建议分应用子网和数据子网,默认只有应用子网对公网提供服务,数据子网只可被应用子网访问 公共运维VPC对线下网络放通公共服务子网访问权限,按需放通维护子网访问权限; 生产VPC按照业务划分不同子网,业务内可划分应用子网和数据子网,默认数据子网只可被应用子网访问,应用子网按需对其他子网放通。生产VPC各子网放通维护子网的访问。 开发测试VPC按照业务划分不同子网,业务内可划分应用子网和数据子网,默认数据子网只可被应用子网访问,应用子网按需对其他子网放通。开发测试VPC各子网放通维护子网的访问。 生产VPC和开发测试VPC默认不互通,不建立对等连接,数据传输建议通过OBS存储传输。
  • 资源与成本规划 本方案的云资源清单受企业规模、组织层级、业务架构等因素影响较大,具体资源清单及价格请以实际调研后提供为准。Landing zone解决方案提供专业服务能力,匹配8大领域,推荐专业服务如下。 图1 Landing Zone设计与实施服务 表1 资源与成本规划 offering八大场景 基础场景设计与实施服务 高阶场景-数据边界管理服务 高阶场景-云财务治理服务 高阶场景-运维管理服务 资源组织与账号管理 √ √ “/” “/” 身份权限管理 √ √ “/” “/” 集中网络管理 √ √ “/” “/” 安全管理 √ √ “/” “/” 合规审计 √ √ “/” “/” 共享服务管理(数据边界) “/” 可选 “/” “/” 财务管理 “/” “/” 可选 “/” 运维管理 “/” “/” “/” 可选 以安全合规、权限管理、网络划分角度:客户在使用云的过程中,必须要遵从全球法律法规要求、身份权限的设计和相关网络的划分。推荐使用“基础场景设计与实施服务” 。 以数据边界角度:基于“基础场景设计与实施服务”之上,客户业务上对跨账号、跨网络和环境内部资源之间的访问有相关需求,推荐使用“高阶场景-数据边界管理服务” 。 以降本增效角度:客户对明确云资源使用情况以及费用情况,优化云资源成本,降低不必要的 支出,更快地识别成本差异和异常情况的需求,推荐使用“高阶场景-云财务治理服务”。 以运维治理角度:客户对所有成员账号的资源管理、事件管理、变更单进行统一查看、操作和日志监控有相关需求,推荐使用“高阶场景-运维管理服务”
  • 边界安全 包括互联网边界、云上云下的边界、Region之间的边界、云间的边界,安全防护策略包括南北向防火墙、Anti-DDoS、WAF、IDS/IPS等。 当互联网用户使用https协议访问应用程序时,经过WAF和云防火墙,潜在的恶意流量将被过滤。 云上云下边界打通一般通过VPN或者云专线DC。VPN使用IPSe技术在公网中加密,保证安全便捷。云专线使用私有通道打通站点,私密性极高,时延稳定,抖动小,性能强。
  • 内网安全 VPC的子网之间主要通过安全组和网络ACL作为访问控制手段。 图1 内网安全 安全组与网络ACL(Access Control List)用于保障虚拟私有云VPC内部署的云资源的安全。安全组类似于虚拟防火墙,为同一个VPC内具有相同安全保护需求并相互信任的云资源提供访问策略;您可以为具有相同网络流量控制的子网关联同一个网络 ACL,通过设置出方向和入方向规则,对进出子网的流量进行精确控制。
  • 自动化部署步骤 Landing Zone解决方案的实施需要进行大量的手工配置,比如新增一个子账号就需要为该账号创建对应的VPC、子网、ACL、安全组,开通CTS,创建各种必要的云资源,配置安全基线等。所以需要自动化Landing Zone的配置工作,华为云推荐使用业界主流的资源编排工具Terraform执行自动化部署和配置Landing Zone。 Terraform是一个开源的IT基础设施编排管理工具,Terraform支持使用配置文件描述Landing Zone解决方案。通过Terraform可以轻松创建、管理、删除华为云资源,并对其进行版本控制。 图1 Terraform自动化部署和配置华为云资源 关于如何使用Terraform部署华为云的资源,请参考 https://support.huaweicloud.com/qs-terraform/index.html ,Terraform支持编排的华为云资源请参考 https://registry.terraform.io/providers/huaweicloud/huaweicloud/latest/docs。后续华为云会提供基于Terraform的部署模板用于自动化部署和配置Landing Zone。
  • 企业上云面临的安全风险 企业上云的安全风险是被提及最多,也是顾虑最多的点。自有IT产业以来,如下风险就被广泛讨论: 挑战1:如何满足内外部监管机构的合规要求 随着网络数字空间的逐步发展,各区域、国家、行业的法律法规如GDPR、网络安全法逐步明确,无意识的违规轻则引起整改问责、重则涉及高额罚款。均会对企业业务开展带来较高风险。 挑战2:如何构建一套全方位、全体现的安全运营系统,保障业务的SLA达成 网络攻击行为在过去数年发生了巨大的改变,传统以破坏系统为主的网络攻击行为,发展到现阶段将DDoS攻击、加密、撞库/搬库的技术用于勒索和灰色产业对抗的经济目的,更要求企业构建一套健全的安全运营系统,以保证系统的网络运营正常和业务安全。 挑战3:如何兼顾安全和业务的效率 传统IT建设过程中,企业往往将安全作为独立的体系构建。安全、合规部门通过规范流程、部署安全防护设备等方法对业务进行保护。在此过程中,安全、合规部门对业务的理解有一定的局限性,导致安全容易被视为是业务快速发展的瓶颈。 同时应该意识到,随着云时代的到来,计算、存储、网络、大数据技术的云化方案成熟,企业又面临了新的安全挑战。 云上挑战1:安全技术如何快速适配业务的弹性扩缩 在过去,企业进行IT建设时,往往按照业务最大值计算服务器的建设规模。而云技术的到来,让企业完全可以以最小成本开通业务,弹性伸缩的特征让企业无需过度担心业务高峰期到来时的资源瓶颈。那么在这种情况下,用传统的安全软件,很难同步匹配业务的快速扩缩容 云上挑战2:如何确保云服务、云资源的配置、策略安全 根据国内外调查,云上Top安全威胁中包括不安全的配置。因为云资源具备快速开通的特点,而且大多数云上应用采用DevOps开发,开发周期大量缩短。如果使用不安全的镜像、或云资源默认配置的访问权限过大都将产生严重后果。 云上挑战3:如何让安全能力在多团队共享和共建 传统企业安全部门和业务部门在技术上存在较厚的技术墙,双方在业务流上互相守护自己的业务范围,并不需要过多的共享。但是在公有云场景下,同一企业内不同系统的业务架构具备一定的相似性,甚至风险和消除风险的手段和云平台的方式都是类似的。那么这些技术是否可以共享? 父主题: 安全合规
  • 响应参数 状态码: 200 表7 响应Body参数 参数 参数类型 描述 results Array of objects 批量测试连接响应体集合。 详情请参见表8。 count Integer 总记录数。 表8 results字段数据结构说明 参数 参数类型 描述 id String 任务ID。 status String 测试结果。取值: true:表示成功。 false:表示失败。 error_code String 错误码。 error_msg String 错误信息。 success Boolean 是否成功。
  • 请求示例 MySQL主备任务测试连接 https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/cluster/batch-connection { "jobs": [{ "action": "testConnection", "job_id": "0ac45233-8de7-4f02-9de1-d71cab7jb201", "property": "[{\"ip\":\"192.168.2.232:3306\",\"dbtype\":\"mysql\",\"dbuser\":\"root\",\"dbpassword\":\"******\",\"ssllink\":false,\"projectId\":\"054ba152d480d55b2f5dc0069e7ddef0\",\"region\":\"cn-xianhz-1\",\"nettype\":\"eip\",\"endpointtype\":\"so\"}]" }] } 源库为DDS集群测试连接 https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/cluster/batch-connection { "jobs" : [ { "action" : "testConnection", "job_id" : "35d0d60b-4605-4686-b35d-3a3d059fjb15", "property" : "[{\"dbtype\":\"mongodb\",\"dbport\":0,\"ssllink\":false,\"nettype\":\"eip\",\"endpointtype\":\"so\",\"encrypt\":{\"elementId\":\"encrypt_switch\",\"offLabel\":\"OFF\",\"onLabel\":\"ON\",\"disable\":false,\"ip\":\"192.168.7.217:8635\",\"dbName\":\"admin\",\"dbuser\":\"rwuser\",\"dbpassword\":\"******\"},{\"dbtype\":\"mongodb\",\"dbport\":0,\"ssllink\":false,\"nettype\":\"eip\",\"endpointtype\":\"so\",\"encrypt\":{\"elementId\":\"encrypt_switch\",\"offLabel\":\"OFF\",\"onLabel\":\"ON\",\"disable\":false,\"ip\":\"192.168.7.72:8635\",\"dbName\":\"admin\",\"dbuser\":\"rwuser\",\"dbpassword\":\"******\"},{\"ip\":\"192.168.7.37:8635\",\"nettype\":\"eip\",\"dbtype\":\"mongodb\",\"dbport\":0,\"dbuser\":\"rwuser\",\"dbpassword\":\"******\",\"ssllink\":false,\"sslcertkey\":\"\",\"sslcertname\":\"\",\"sslcertchecksum\":\"\",\"endpointtype\":\"ls\",\"dbName\":\"admin\"}]" } ] }
  • 请求参数 表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字段数据结构说明 参数 是否必选 参数类型 描述 action 是 String 需要执行的特定操作。 job_id 是 String 任务ID(集群模式取父任务的任务ID)。 property 是 String 操作对应的参数。 说明: 按照表5中的参数拼成json后转义。 表5 property字段数据结构说明 名称 是否必选 参数类型 说明 dbtype 是 String 数据库类型。 dbport 是 Integer 数据库端口,mongodb时取值0。 ssllink 是 boolean 是否是SSL安全连接,取值: true false nettype 是 String 网络类型,取值: vpn vpc eip endpointtype 是 String endpoint类型,取值: so:源库。 ta:目标库。 ls : 分片数据库。 当源库是集群时,数据库ip对应的endpointtype是so, 分片数据库对应的endpointtype是ls。 ip 是 String 数据库IP。 dbName 是 String 数据库名称。 instid 否 String 数据库实例ID,云上实例需要填写。 dbuser 是 String 数据库用户名。 dbpassword 是 String 数据库密码。 sslcertkey 否 String SSL证书内容,SSL连接时需要。 sslcertname 否 String SSL证书名字,SSL连接时需要。 sslcertchecksum 否 String SSL证书内容checksum值,SSL连接时需要。 kafkaSecurityConfig 否 Object Kafka认证方式为安全认证时填写。 详情请参见表6。 表6 kafkaSecurityConfig字段数据结构说明 参数 是否必选 参数类型 描述 type 否 String 安全协议,安全认证时必填,对应Kafka字段:security.protocol。 PLAINTEXT:无安全认证方式,仅需输入IP和端口进行连接。 SASL_PLAINTEXT:使用SASL机制连接Kafka,需要设置SASL相关配置。 SSL:使用SSL加密方式连接Kafka,需要设置SSL相关配置。 SASL_SSL:使用SASL及SSL加密认证方式,需要设置SSL及SASL相关参数配置信息。 枚举值: PLAINTEXT SASL_PLAINTEXT SASL_SSL SSL trust_store_key_name 否 String 证书名称,安全协议为SSL、SASL_SSL时必填。 trust_store_key 否 String 安全证书base64转码后的值,安全协议为SSL、SASL_SSL时必填。 trust_store_password 否 String 证书密码,安全协议为SSL、SASL_SSL时必填。 endpoint_algorithm 否 String 主机名端点识别算法,对应Kafka字段:ssl.endpoint.identification.algorithm,指定通过服务端证书验证服务端主机名的端点识别算法,不填表示禁用主机名验证。 sasl_mechanism 否 String SASL机制,用于客户端连接的SASL机制,对应Kafka字段:sasl.mechanism,支持以下四项,取值: GSSAPI PLAIN SCRAM-SHA-256 SCRAM-SHA-512 delegation_tokens 否 Boolean 是否为委托令牌鉴权,安全协议为SASL_SSL和SASL_PLAINTEXT时,SASL机制选择“SCRAM-SHA-256”或者“SCRAM-SHA-512”时生效。 enable_key_store 否 Boolean 是否开启SSL双向认证。 key_store_key 否 String Keystore证书,开启SSL双向认证时需要。 key_store_key_name 否 String Keystore证书名称,开启SSL双向认证时需要。 key_store_password 否 String Keystore证书密码,开启SSL双向认证时需要。对应Kafka字段:ssl.keystore.password set_private_key_password 否 Boolean 是否设置Keystore私钥密码,默认为false。 key_password 否 String Keystore私钥密码,开启SSL双向认证时,set_private_key_password为true时必填。对应Kafka字段:ssl.key.password。
  • 请求示例 查询实时同步任务列表示例: https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs { "cur_page" : 1, "db_use_type" : "sync", "engine_type" : "", "name" : "", "net_type" : "", "per_page" : 5, "status" : "" } 查询实时迁移任务列表示例: https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs { "cur_page" : 1, "db_use_type" : "migration", "engine_type" : "", "name" : "", "net_type" : "", "per_page" : 5, "status" : "" }
  • 响应示例 状态码: 200 OK 查询实时迁移任务列表响应示例 : { "jobs" : [ { "id" : "24834eb6-be30-464e-a299-f7aa730jb101", "name" : "DRS-3999-lws", "status" : "INCRE_TRANSFER_FAILED", "description" : "", "create_time" : "2020-12-21 10:57:49", "error_msg" : "service LOGMANAGER failed, cause by: Unable to connect to DBMS: url=jdbc:mysql://172.22.74.56:3306?useUnicode=true&allowLoadLocalInfile=false&characterEncoding=UTF-8&connectTimeout=5000&useSSL=false&allowPublicKeyRetrieval=true&verifyServerCertificate=false&serverTimezone=UTC user=root", "engine_type" : "mysql", "net_type" : "eip", "billing_tag" : false, "job_direction" : "up", "db_use_type" : "migration", "task_type" : "FULL_INCR_TRANS", "node_newFramework" : false "job_action":{ "available_actions": [ "CREATE", "CHOOSE_OBJECT", "PRE_CHECK", "CHANGE_MODE", "FREE_RESOURCE", "MODIFY_DB_CONFIG", "RESET_DB_PWD", "MODIFY_CONFIGURATION", "PAUSE", "RETRY", "RESET", ], "unavailable_actions": [ "START", "CHANGE", "DELETE", "QUERY_PRE_CHECK", "SWITCH_OVER", "MODIFY_SPECIFICATION_ID", "START_INCR", "MODIFY_TASK_NUMBER", "CONTINUE_JOB", "STOP_JOB", "CONTINUE_CAPTURE", "STOP_CAPTURE", "CONTINUE_APPLY", "API_CONFIGURATION_ACTION", "STOP_APPLY", "PAY_ORDER", "UNSUBSCRIBE", "TO_PERIOD", "TO_RENEW", "ORDER_INFO", "CHANGE_FLAVOR", "CLONE" ] } }, { "id" : "140b5236-88ad-43c8-811c-1268453jb101", "name" : "DRS-0042-linxiaolu", "status" : "CONFIGURATION", "description" : "", "create_time" : "2020-12-19 16:23:24", "engine_type" : "mysql", "net_type" : "eip", "billing_tag" : false, "job_direction" : "up", "db_use_type" : "migration", "task_type" : "FULL_INCR_TRANS", "node_newFramework" : false "job_action": { "available_actions": [ "CREATE", "START", "CHANGE", "CHOOSE_OBJECT", "PRE_CHECK", "CHANGE_MODE", "FREE_RESOURCE", "MODIFY_DB_CONFIG", "API_CONFIGURATION_ACTION" ], "unavailable_actions": [ "RETRY", "RESET", "DELETE", "QUERY_PRE_CHECK", "SWITCH_OVER", "MODIFY_SPECIFICATION_ID", "RESET_DB_PWD", "MODIFY_CONFIGURATION", "PAUSE", "JUMP_RETRY", "START_INCR", "MODIFY_TASK_NUMBER", "CONTINUE_JOB", "STOP_JOB", "CONTINUE_CAPTURE", "STOP_CAPTURE", "CONTINUE_APPLY", "STOP_APPLY", "PAY_ORDER", "UNSUBSCRIBE", "TO_PERIOD", "TO_RENEW", "ORDER_INFO", "CHANGE_FLAVOR", "CLONE" ] } }, { "id" : "7f8e6f74-72d2-4ddd-bb8f-6c41397jb101", "name" : "DRS-0796", "status" : "RELEASE_RESOURCE_COMPLETE", "description" : "", "create_time" : "2020-12-18 10:48:11", "engine_type" : "mysql", "net_type" : "eip", "billing_tag" : false, "job_direction" : "non-dbs", "db_use_type" : "migration", "task_type" : "FULL_INCR_TRANS", "node_newFramework" : false "job_action": { "available_actions": [ "CREATE", "DELETE", "PRE_CHECK", "CHANGE_MODE", "MODIFY_DB_CONFIG", "CLONE" ], "unavailable_actions": [ "FREE_RESOURCE", "START", "CHANGE", "CHOOSE_OBJECT", "RETRY", "RESET", "QUERY_PRE_CHECK", "SWITCH_OVER", "MODIFY_SPECIFICATION_ID", "RESET_DB_PWD", "MODIFY_CONFIGURATION", "PAUSE", "JUMP_RETRY", "START_INCR", "MODIFY_TASK_NUMBER", "CONTINUE_JOB", "STOP_JOB", "CONTINUE_CAPTURE", "STOP_CAPTURE", "CONTINUE_APPLY", "STOP_APPLY", "PAY_ORDER", "UNSUBSCRIBE", "TO_PERIOD", "TO_RENEW", "ORDER_INFO", "CHANGE_FLAVOR" ] } }, { "id" : "14d88eeb-ee7e-4d30-a46e-a5ec8eajb101", "name" : "masj-mysql_migration_down-1", "status" : "INCRE_TRANSFER_STARTED", "description" : "[using] api test 2\n1. 本接口是用来配置源库/目标库信息的,选表前必须执行\n2. 配置中的任务修改描述信息成功,202 success\n3. 增量迁移中的任务修改描述信息失败,202 failed DRS.M01504\nAnother operation is being performed on the migration task or the migration task is abnormal. Try again later./", "create_time" : "2020-12-15 15:43:02", "engine_type" : "mysql", "net_type" : "eip", "billing_tag" : true, "job_direction" : "down", "db_use_type" : "migration", "task_type" : "FULL_INCR_TRANS", "node_newFramework" : false "job_action":{ "available_actions": [ "CREATE", "CHOOSE_OBJECT", "PRE_CHECK", "CHANGE_MODE", "FREE_RESOURCE", "MODIFY_DB_CONFIG", "RESET_DB_PWD", "MODIFY_CONFIGURATION", "PAUSE", ], "unavailable_actions": [ "START", "RETRY", "RESET", "CHANGE", "DELETE", "QUERY_PRE_CHECK", "SWITCH_OVER", "MODIFY_SPECIFICATION_ID", "START_INCR", "MODIFY_TASK_NUMBER", "CONTINUE_JOB", "STOP_JOB", "CONTINUE_CAPTURE", "STOP_CAPTURE", "CONTINUE_APPLY", "API_CONFIGURATION_ACTION", "STOP_APPLY", "PAY_ORDER", "UNSUBSCRIBE", "TO_PERIOD", "TO_RENEW", "ORDER_INFO", "CHANGE_FLAVOR", "CLONE" ] } }, { "id" : "d54691d2-f105-434d-a75d-809b017jb101", "name" : "masj-2-mysql_migration_down", "status" : "CONFIGURATION", "description" : "[using] api test 2\n1. 本接口是用来配置源库/目标库信息的,选表前必须执行\n2. 配置中的任务修改描述信息成功,202 success\n3. 增量迁移中的任务修改描述信息失败,202 failed DRS.M01504\nAnother operation is being performed on the migration task or the migration task is abnormal. Try again later./", "create_time" : "2020-12-14 21:39:07", "engine_type" : "mysql", "net_type" : "eip", "billing_tag" : false, "job_direction" : "down", "db_use_type" : "migration", "task_type" : "FULL_INCR_TRANS", "node_newFramework" : false "job_action": { "available_actions": [ "CREATE", "START", "CHANGE", "CHOOSE_OBJECT", "PRE_CHECK", "CHANGE_MODE", "FREE_RESOURCE", "MODIFY_DB_CONFIG", "API_CONFIGURATION_ACTION" ], "unavailable_actions": [ "RETRY", "RESET", "DELETE", "QUERY_PRE_CHECK", "SWITCH_OVER", "MODIFY_SPECIFICATION_ID", "RESET_DB_PWD", "MODIFY_CONFIGURATION", "PAUSE", "JUMP_RETRY", "START_INCR", "MODIFY_TASK_NUMBER", "CONTINUE_JOB", "STOP_JOB", "CONTINUE_CAPTURE", "STOP_CAPTURE", "CONTINUE_APPLY", "STOP_APPLY", "PAY_ORDER", "UNSUBSCRIBE", "TO_PERIOD", "TO_RENEW", "ORDER_INFO", "CHANGE_FLAVOR", "CLONE" ] } } ], "total_record" : 7 } 查询实时同步任务列表示例 : { "jobs" : [ { "id" : "7994aac9-0a15-4fdb-bcc5-667f088jb20b", "name" : "DRS-8200", "status" : "CREATE_FAILED", "description" : "", "create_time" : "2020-12-21 18:02:36", "error_msg" : "system error!", "engine_type" : "oracle-to-mysql", "net_type" : "eip", "billing_tag" : false, "job_direction" : "up", "db_use_type" : "sync", "task_type" : "FULL_INCR_TRANS", "node_newFramework" : false "job_action": { "available_actions": [ "CREATE", "DELETE", "START", "CHANGE", "CHOOSE_OBJECT", "PRE_CHECK", "CHANGE_MODE", "MODIFY_DB_CONFIG", "API_CONFIGURATION_ACTION" ], "unavailable_actions": [ "FREE_RESOURCE", "RETRY", "RESET", "QUERY_PRE_CHECK", "SWITCH_OVER", "MODIFY_SPECIFICATION_ID", "RESET_DB_PWD", "MODIFY_CONFIGURATION", "PAUSE", "JUMP_RETRY", "START_INCR", "MODIFY_TASK_NUMBER", "CONTINUE_JOB", "STOP_JOB", "CONTINUE_CAPTURE", "STOP_CAPTURE", "CONTINUE_APPLY", "STOP_APPLY", "PAY_ORDER", "UNSUBSCRIBE", "TO_PERIOD", "TO_RENEW", "ORDER_INFO", "CHANGE_FLAVOR", "CLONE" ] } }, { "id" : "f463331d-e079-4689-bbef-4553202jb20b", "name" : "DRS-1285", "status" : "CONFIGURATION", "description" : "", "create_time" : "2020-12-21 17:19:38", "engine_type" : "oracle-to-mysql", "net_type" : "eip", "billing_tag" : false, "job_direction" : "up", "db_use_type" : "sync", "task_type" : "FULL_INCR_TRANS", "node_newFramework" : false "job_action": { "available_actions": [ "CREATE", "START", "CHANGE", "CHOOSE_OBJECT", "PRE_CHECK", "CHANGE_MODE", "FREE_RESOURCE", "MODIFY_DB_CONFIG", "API_CONFIGURATION_ACTION" ], "unavailable_actions": [ "RETRY", "RESET", "DELETE", "QUERY_PRE_CHECK", "SWITCH_OVER", "MODIFY_SPECIFICATION_ID", "RESET_DB_PWD", "MODIFY_CONFIGURATION", "PAUSE", "JUMP_RETRY", "START_INCR", "MODIFY_TASK_NUMBER", "CONTINUE_JOB", "STOP_JOB", "CONTINUE_CAPTURE", "STOP_CAPTURE", "CONTINUE_APPLY", "STOP_APPLY", "PAY_ORDER", "UNSUBSCRIBE", "TO_PERIOD", "TO_RENEW", "ORDER_INFO", "CHANGE_FLAVOR", "CLONE" ] } }, { "id" : "7f13c511-c35b-4f82-92ae-83bcbf0jb201", "name" : "DRS-9383", "status" : "CONFIGURATION", "description" : "", "create_time" : "2020-12-21 17:18:44", "engine_type" : "mysql", "net_type" : "eip", "billing_tag" : false, "job_direction" : "up", "db_use_type" : "sync", "task_type" : "FULL_INCR_TRANS", "node_newFramework" : false "job_action": { "available_actions": [ "CREATE", "START", "CHANGE", "CHOOSE_OBJECT", "PRE_CHECK", "CHANGE_MODE", "FREE_RESOURCE", "MODIFY_DB_CONFIG", "API_CONFIGURATION_ACTION" ], "unavailable_actions": [ "RETRY", "RESET", "DELETE", "QUERY_PRE_CHECK", "SWITCH_OVER", "MODIFY_SPECIFICATION_ID", "RESET_DB_PWD", "MODIFY_CONFIGURATION", "PAUSE", "JUMP_RETRY", "START_INCR", "MODIFY_TASK_NUMBER", "START_INCR", "MODIFY_TASK_NUMBER", "START_INCR", "MODIFY_TASK_NUMBER", "START_INCR", "MODIFY_TASK_NUMBER", "START_INCR", "MODIFY_TASK_NUMBER", "START_INCR", "MODIFY_TASK_NUMBER", "START_INCR", "MODIFY_TASK_NUMBER", "START_INCR", "MODIFY_TASK_NUMBER", "START_INCR", "MODIFY_TASK_NUMBER", "START_INCR", "MODIFY_TASK_NUMBER", "START_INCR", "MODIFY_TASK_NUMBER", "START_INCR", "MODIFY_TASK_NUMBER", "START_INCR", "MODIFY_TASK_NUMBER", "START_INCR", "MODIFY_TASK_NUMBER", "START_INCR", "MODIFY_TASK_NUMBER", "START_INCR", "MODIFY_TASK_NUMBER", "CONTINUE_JOB", "STOP_JOB", "CONTINUE_CAPTURE", "STOP_CAPTURE", "CONTINUE_APPLY", "STOP_APPLY", "PAY_ORDER", "UNSUBSCRIBE", "TO_PERIOD", "TO_RENEW", "ORDER_INFO", "CHANGE_FLAVOR", "CLONE" ] } }, { "id" : "7686e879-46a4-4d6b-bda9-5540424jb201", "name" : "DRS-9272", "status" : "CONFIGURATION", "description" : "", "create_time" : "2020-12-21 16:53:36", "engine_type" : "mysql", "net_type" : "eip", "billing_tag" : false, "job_direction" : "up", "db_use_type" : "sync", "task_type" : "FULL_INCR_TRANS", "node_newFramework" : false "job_action": { "available_actions": [ "CREATE", "START", "CHANGE", "CHOOSE_OBJECT", "PRE_CHECK", "CHANGE_MODE", "FREE_RESOURCE", "MODIFY_DB_CONFIG", "API_CONFIGURATION_ACTION" ], "unavailable_actions": [ "RETRY", "RESET", "DELETE", "QUERY_PRE_CHECK", "SWITCH_OVER", "MODIFY_SPECIFICATION_ID", "RESET_DB_PWD", "MODIFY_CONFIGURATION", "PAUSE", "JUMP_RETRY", "START_INCR", "MODIFY_TASK_NUMBER", "CONTINUE_JOB", "STOP_JOB", "CONTINUE_CAPTURE", "STOP_CAPTURE", "CONTINUE_APPLY", "STOP_APPLY", "PAY_ORDER", "UNSUBSCRIBE", "TO_PERIOD", "TO_RENEW", "ORDER_INFO", "CHANGE_FLAVOR", "CLONE" ] } }, { "id" : "5b2c2ec8-430e-4de0-937b-9d9547ajb201", "name" : "DRS-2899", "status" : "RELEASE_RESOURCE_COMPLETE", "description" : "", "create_time" : "2020-12-21 16:24:24", "engine_type" : "mysql", "net_type" : "eip", "billing_tag" : false, "job_direction" : "up", "db_use_type" : "sync", "task_type" : "FULL_INCR_TRANS", "node_newFramework" : false "job_action": { "available_actions": [ "CREATE", "DELETE", "PRE_CHECK", "CHANGE_MODE", "MODIFY_DB_CONFIG", "CLONE" ], "unavailable_actions": [ "FREE_RESOURCE", "START", "CHANGE", "CHOOSE_OBJECT", "RETRY", "RESET", "QUERY_PRE_CHECK", "SWITCH_OVER", "MODIFY_SPECIFICATION_ID", "RESET_DB_PWD", "MODIFY_CONFIGURATION", "PAUSE", "JUMP_RETRY", "START_INCR", "MODIFY_TASK_NUMBER", "CONTINUE_JOB", "STOP_JOB", "CONTINUE_CAPTURE", "STOP_CAPTURE", "CONTINUE_APPLY", "STOP_APPLY", "PAY_ORDER", "UNSUBSCRIBE", "TO_PERIOD", "TO_RENEW", "ORDER_INFO", "CHANGE_FLAVOR" ] } } ], "total_record" : 18 }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 total_record Integer 任务总数。 jobs Array of objects 任务信息列表。 详情请参见表5。 表5 jobs字段数据结构说明 参数 参数类型 描述 id String 任务ID。 name String 任务名称。 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 description String 任务描述。 create_time String 任务创建时间。 engine_type String DRS任务引擎类型。取值: mysql:MySQL到MySQL迁移,MySQL到MySQL同步 mongodb:MongoDB到DDS迁移 cloudDataGuard-mysql:MySQL到MySQL灾备 gaussdbv5:GaussDB同步 mysql-to-kafka:MySQL到Kafka同步 taurus-to-kafka:GaussDB(for MySQL)到Kafka同步 gaussdbv5ha-to-kafka:GaussDB主备版到Kafka同步 postgresql:PostgreSQL到PostgreSQL同步 详细取值可参考引擎类型说明。 net_type String 网络类型。取值: vpn vpc eip billing_tag Boolean 计费字段。 job_direction String 任务方向。取值: up:入云,灾备场景时对应本云为备。 down:出云,灾备场景时对应本云为主。 non-dbs:自建。 db_use_type String 任务场景。取值: migration:实时迁移。 sync:实时同步。 cloudDataGuard:实时灾备。 task_type String 任务模式。取值: FULL_TRANS :全量。 FULL_INCR_TRANS:全量+增量。 INCR_TRANS:增量。 children Array of objects 子任务信息体。 详情请参见表6。 node_newFramework Boolean 是否新框架。 job_action Object 任务操作命令矩阵。 详情请参见表7。 表6 children字段数据结构说明 参数 参数类型 描述 billing_tag Boolean 计费字段。 create_time String 任务创建时间。 db_use_type String 复制场景。取值: migration:实时迁移。 sync:实时同步。 cloudDataGuard:实时灾备。 description String 任务描述。 engine_type String DRS任务引擎类型。取值: mysql:MySQL到MySQL迁移,MySQL到MySQL同步 mongodb:MongoDB到DDS迁移 cloudDataGuard-mysql:MySQL到MySQL灾备 gaussdbv5:GaussDB同步 mysql-to-kafka:MySQL到Kafka同步 taurus-to-kafka:GaussDB(for MySQL)到Kafka同步 gaussdbv5ha-to-kafka:GaussDB主备版到Kafka同步 postgresql:PostgreSQL到PostgreSQL同步 详细取值可参考引擎类型说明。 error_msg String 任务失败原因。 id String 任务ID。 job_direction String 迁移方向。取值: up:入云,灾备场景时对应本云为备。 down:出云,灾备场景时对应本云为主。 non-dbs:自建。 name String 任务名称。 net_type String 网络类型。取值: vpc vpn eip node_newFramework Boolean 新框架。 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 task_type String 任务模式。取值: FULL_TRANS :全量。 FULL_INCR_TRANS:全量+增量。 INCR_TRANS:增量。 job_action Object 任务操作命令矩阵。 详情请参见表7。 表7 job_action字段数据结构说明 参数 参数类型 描述 available_actions Array of strings 任务可操作命令集合。 取值: CREATE:创建任务 CHOOSE_OBJECT:选择对象 PRE_CHECK:预检查 CHANGE_MODE:修改任务模式 FREE_RESOURCE:释放资源 MODIFY_DB_CONFIG:修改数据库配置 RESET_DB_PWD:重置数据库密码(源库、目标库) MODIFY_CONFIGURATION:修改任务配置 PAUSE:暂停任务 START:启动任务 CHANGE:修改任务 RETRY:重试任务 RESET:重置任务 DELETE:删除任务 QUERY_PRE_CHECK:预检查 SWITCH_OVER:容灾倒换 START_INCR:CASSANDRA启动增量任务 MODIFY_TASK_NUMBER:CASSANDRA修改线程数配置 CONTINUE_JOB:oracle-GaussDB分布式:启动失败或者停止的任务 STOP_JOB:oracle-GaussDB分布式:停止任务 CONTINUE_CAPTURE:oracle-GaussDB分布式:启动抓取 STOP_CAPTURE:oracle-GaussDB分布式:停止抓取 CONTINUE_APPLY:oracle-GaussDB分布式:启动回放 STOP_APPLY:oracle-GaussDB分布式:停止回放 PAY_ORDER:包年包月支付订单 UNSUBSCRIBE:包年包月退订 TO_PERIOD:转包周期 TO_RENEW:包周期续费 ORDER_INFO:订单详情 CHANGE_FLAVOR:规格变更 CLONE:克隆任务 unavailable_actions Array of strings 任务不可操作命令集合。 取值: CREATE:创建任务 CHOOSE_OBJECT:选择对象 PRE_CHECK:预检查 CHANGE_MODE:修改任务模式 FREE_RESOURCE:释放资源 MODIFY_DB_CONFIG:修改数据库配置 RESET_DB_PWD:重置数据库密码(源库、目标库) MODIFY_CONFIGURATION:修改任务配置 PAUSE:暂停任务 START:启动任务 CHANGE:修改任务 RETRY:重试任务 RESET:重置任务 DELETE:删除任务 QUERY_PRE_CHECK:预检查 SWITCH_OVER:容灾倒换 START_INCR:CASSANDRA启动增量任务 MODIFY_TASK_NUMBER:CASSANDRA修改线程数配置 CONTINUE_JOB:oracle-GaussDB分布式:启动失败或者停止的任务 STOP_JOB:oracle-GaussDB分布式:停止任务 CONTINUE_CAPTURE:oracle-GaussDB分布式:启动抓取 STOP_CAPTURE:oracle-GaussDB分布式:停止抓取 CONTINUE_APPLY:oracle-GaussDB分布式:启动回放 STOP_APPLY:oracle-GaussDB分布式:停止回放 PAY_ORDER:包年包月支付订单 UNSUBSCRIBE:包年包月退订 TO_PERIOD:转包周期 TO_RENEW:包周期续费 ORDER_INFO:订单详情 CHANGE_FLAVOR:规格变更 CLONE:克隆任务 current_action String 当前操作。取值: SWITCH_OVER:灾备倒换中 STOP_JOB:任务暂停中
  • 请求示例 查询实时灾备任务列表。 https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs?job_type=cloudDataGuard&name=&status=&engine_type=&net_type=&enterprise_project_id=&offset=0&limit=10&sort_key=create_time&sort_dir=desc 查询实时迁移任务列表。 https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs?job_type=migration&name=&status=&engine_type=&net_type=&enterprise_project_id=&offset=0&limit=10&sort_key=create_time&sort_dir=desc 查询实时同步任务列表。 https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs?job_type=sync&name=&status=&engine_type=&net_type=&enterprise_project_id=&offset=0&limit=10&sort_key=create_time&sort_dir=desc
  • 响应示例 状态码: 200 OK { "jobs" : [ { "id" : "c7debc9c-8e09-4a5d-8dd6-cc44f78jb20r", "name" : "DRS-1234", "status" : "CONFIGURATION", "create_time" : "2022-11-07T16:15:18Z", "engine_type" : "oracle-to-gaussdbv5", "job_direction" : "up", "task_type" : "FULL_INCR_TRANS", "job_action" : { "available_actions" : [ "FREE_RESOURCE", "PRE_CHECK", "MODIFY_CONFIGURATION", "CHANGE" ], "unavailable_actions" : [ "CREATE", "START", "CHOOSE_OBJECT", "RETRY", "RESET", "DELETE", "QUERY_PRE_CHECK", "CHANGE_MODE", "MODIFY_DB_CONFIG", "SWITCH_OVER", "RESET_DB_PWD", "PAUSE", "JUMP_RETRY", "START_INCR", "MODIFY_TASK_NUMBER", "CONTINUE_JOB", "STOP_JOB", "CONTINUE_CAPTURE", "STOP_CAPTURE", "CONTINUE_APPLY", "API_CONFIGURATION_ACTION", "STOP_APPLY", "PAY_ORDER", "UNSUBSCRIBE", "TO_PERIOD", "TO_RENEW", "ORDER_INFO", "CLONE" ], "current_action" : null } } ], "total_count" : 1 } 状态码: 400 Bad Request { "error_code" : "DRS.10000001", "error_msg" : "Failed." }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 total_count Integer 列表中的项目总数,与分页无关。 jobs Array of objects 任务信息列表。 详情请参见表5。 表5 jobs字段数据结构说明 参数 参数类型 描述 id String 任务ID。 name String 任务名称。 status String 任务状态。取值: CREATING:创建中。 CREATE_FAILED:创建失败。 CONFIGURATION:配置中。 STARTJOBING:启动中。 WAITING_FOR_START:等待启动中。 START_JOB_FAILED:任务启动失败。 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:子任务已结束。 枚举值: CREATING CREATE_FAILED CONFIGURATION STARTJOBING WAITING_FOR_START START_JOB_FAILED 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 description String 任务描述。 create_time String 任务创建时间。 engine_type String 引擎类型。取值: oracle-to-gaussdbv5:Oracle同步到GaussDB分布式版,实时同步场景使用。 redis-to-gaussredis:Redis迁移到GeminiDB Redis,实时迁移场景使用。 rediscluster-to-gaussredis:Redis集群迁移到GeminiDB Redis,实时迁移场景使用。 枚举值: oracle-to-gaussdbv5 redis-to-gaussredis rediscluster-to-gaussredis net_type String 网络类型。取值: eip:公网网络。 vpc:VPC网络,灾备场景不支持选择VPC网络。 vpn:VPN、专线网络。 枚举值: eip vpc vpn charging_mode String 计费模式。取值: period:包周期。 on_demand:按需。 枚举值: period on_demand billing_tag Boolean 是否计费。 job_direction String 任务方向。取值: up:入云 ,灾备场景时对应本云为备。 down:出云,灾备场景时对应本云为主。 non-dbs:自建。 枚举值: up down non-dbs job_type String 任务场景。取值: migration:实时迁移。 sync:实时同步。 cloudDataGuard:实时灾备。 枚举值: migration sync cloudDataGuard task_type String 任务模式。取值: FULL_TRANS :全量。 FULL_INCR_TRANS:全量+增量。 INCR_TRANS:增量。 枚举值: FULL_TRANS FULL_INCR_TRANS INCR_TRANS enterprise_project_id String 企业项目ID。 job_mode String 任务模式。取值: single:单任务。 sync_child:同步子任务。 multi_to_single:多对一任务。 枚举值: single sync_child multi_to_single job_mode_role String 任务角色。取值: parent:父任务。 child:子任务。 master:主任务。 slave:备任务。 枚举值: parent child master slave is_multi_az Boolean 是否主备任务。 node_role String 任务节点角色。 node_new_framework Boolean 是否新框架。 job_action Object 任务操作命令集合。 详情请参见表7。 children Array of objects 子任务列表信息体。 详情请参见表6。 表6 children字段数据结构说明 参数 参数类型 描述 id String 任务ID。 name String 任务名称。 status String 任务状态。取值: CREATING:创建中。 CREATE_FAILED:创建失败。 CONFIGURATION:配置中。 STARTJOBING:启动中。 WAITING_FOR_START:等待启动中。 START_JOB_FAILED:任务启动失败。 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:子任务已结束。 枚举值: CREATING CREATE_FAILED CONFIGURATION STARTJOBING WAITING_FOR_START START_JOB_FAILED 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 description String 任务描述。 create_time String 任务创建时间。 engine_type String 引擎类型。取值: oracle-to-gaussdbv5:Oracle同步到GaussDB分布式版,实时同步场景使用。 redis-to-gaussredis:Redis迁移到GeminiDB Redis,实时迁移场景使用。 rediscluster-to-gaussredis:Redis集群迁移到GeminiDB Redis,实时迁移场景使用。 枚举值: oracle-to-gaussdbv5 redis-to-gaussredis rediscluster-to-gaussredis net_type String 网络类型。取值: eip:公网网络。 vpc:VPC网络,灾备场景不支持选择VPC网络。 vpn:VPN、专线网络。 枚举值: eip vpc vpn charging_mode String 计费模式。取值: period:包周期。 on_demand:按需。 枚举值: period on_demand billing_tag Boolean 是否计费。 job_direction String 任务方向。取值: up:入云 ,灾备场景时对应本云为备。 down:出云,灾备场景时对应本云为主。 non-dbs:自建。 枚举值: up down non-dbs job_type String 任务场景。取值: migration:实时迁移。 sync:实时同步。 cloudDataGuard:实时灾备。 枚举值: migration sync cloudDataGuard task_type String 任务模式。取值: FULL_TRANS :全量。 FULL_INCR_TRANS:全量+增量。 INCR_TRANS:增量。 枚举值: FULL_TRANS FULL_INCR_TRANS INCR_TRANS enterprise_project_id String 企业项目ID。 job_mode String 任务模式。取值: single:单任务。 sync_child:同步子任务。 multi_to_single:多对一任务。 枚举值: single sync_child multi_to_single job_mode_role String 任务角色。取值: parent:父任务。 child:子任务。 master:主任务。 slave:备任务。 枚举值: parent child master slave is_multi_az Boolean 是否主备任务。 node_role String 任务节点角色。 node_new_framework Boolean 是否新框架。 job_action Object 任务操作命令集合。 详情请参见表7。 表7 job_action字段数据结构说明 参数 参数类型 描述 available_actions Array of strings 任务可操作命令集合。 unavailable_actions Array of strings 任务不可操作命令集合。 current_action String 任务当前操作命令。取值: API_CONFIGURATION_ACTION:OPEN API配置中的任务能调用。 CHANGE:修改任务。 CHANGE_MODE:修改任务模式。 CHOOSE_OBJECT:选择对象。 CLONE:克隆任务。 CONTINUE_APPLY:启动回放,Oracle同步到GaussDB分布式适用。 CONTINUE_CAPTURE:启动抓取,Oracle同步到GaussDB分布式适用。 CONTINUE_JOB:启动失败或者停止的任务,Oracle同步到GaussDB分布式适用。 CREATE:创建任务。 DELETE:删除任务。 FREE_RESOURCE:释放资源。 JUMP_RETRY:跳跃续传任务。 MODIFY_CONFIGURATION:修改任务配置。 MODIFY_DB_CONFIG:修改数据库配置。 MODIFY_TASK_NUMBER:修改线程数配置。 NODE_FLAVOR_MODIFY:规格变更。 ORDER_INFO:订单详情。 PAUSE:暂停任务。 PAY_ORDER:包年/包月支付订单。 PRE_CHECK:预检查。 QUERY_PRE_CHECK:查询预检查结果。 RESET:重置任务。 RESET_DB_PWD:重置数据库密码(源库、目标库)。 RETRY:重试任务。 START:启动任务。 START_INCR:启动增量任务。 STOP_APPLY:停止回放,Oracle同步到GaussDB分布式适用。 STOP_CAPTURE:停止抓取,Oracle同步到GaussDB分布式适用。 STOP_JOB:停止任务,Oracle同步到GaussDB分布式适用。 SWITCH_OVER:灾备倒换。 TO_PERIOD:转包年/包月任务。 TO_RENEW:包年/包月任务续费。 UNSUBSCRIBE:包年/包月任务退订。 枚举值: API_CONFIGURATION_ACTION CHANGE CHANGE_MODE CHOOSE_OBJECT CLONE CONTINUE_APPLY CONTINUE_CAPTURE CONTINUE_JOB CREATE DELETE FREE_RESOURCE JUMP_RETRY MODIFY_CONFIGURATION MODIFY_DB_CONFIG MODIFY_TASK_NUMBER NODE_FLAVOR_MODIFY ORDER_INFO PAUSE PAY_ORDER PRE_CHECK QUERY_PRE_CHECK RESET RESET_DB_PWD RETRY START START_INCR STOP_APPLY STOP_CAPTURE STOP_JOB SWITCH_OVER TO_PERIOD TO_RENEW UNSUBSCRIBE 状态码: 400 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码。 最小长度:12 最大长度:12 error_msg String 错误描述。 最小长度:1 最大长度:512
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 发送的实体的MIME类型。推荐用户默认使用application/json,如果API是对象、镜像上传等接口,媒体类型可按照流类型的不同进行确定。 缺省值:application/json X-Auth-Token 是 String 从IAM服务获取的用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 X-Language 否 String 请求语言类型。 缺省值:en-us 枚举值: en-us zh-cn
  • URI GET /v5/{project_id}/jobs 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 表2 Query参数 参数 是否必选 参数类型 描述 job_type 是 String 任务场景。取值: migration:实时迁移。 sync:实时同步。 cloudDataGuard:实时灾备。 枚举值: migration sync cloudDataGuard name 否 String 任务ID或名称。支持输入多个任务ID,逗号分隔,最多10个。 status 否 String 任务状态。取值: CREATING:创建中。 CREATE_FAILED:创建失败。 CONFIGURATION:配置中。 STARTJOBING:启动中。 WAITING_FOR_START:等待启动中。 START_JOB_FAILED:任务启动失败。 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:子任务已结束。其中,异常状态可单独查询,也可以通过以下方式查询全部异常任务:CREATE_FAILED,START_JOB_FAILED,FULL_TRANSFER_FAILED,INCRE_TRANSFER_FAILED,RELEASE_RESOURCE_FAILED,CHANGE_JOB_FAILED,CHILD_TRANSFER_FAILED。 枚举值: CREATING CREATE_FAILED CONFIGURATION STARTJOBING WAITING_FOR_START START_JOB_FAILED 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 engine_type 否 String 引擎类型。取值: oracle-to-gaussdbv5:Oracle同步到GaussDB分布式版,实时同步场景使用。 redis-to-gaussredis:Redis迁移到GeminiDB Redis,实时迁移场景使用。 rediscluster-to-gaussredis:Redis集群迁移到GeminiDB Redis,实时迁移场景使用。 枚举值: oracle-to-gaussdbv5 redis-to-gaussredis rediscluster-to-gaussredis net_type 否 String 网络类型。取值: eip:公网网络。 vpc:VPC网络。 vpn:VPN、专线网络。 枚举值: eip vpc vpn enterprise_project_id 否 String 企业项目ID。 缺省值:"",表示查询所有企业项目任务。 offset 否 Integer 偏移量,表示查询该偏移量后面的记录。 limit 否 Integer 查询返回记录的数量限制。 sort_key 否 String 返回结果按该关键字排序,默认为“create_time”。 sort_dir 否 String 降序或升序(分别对应desc和asc,默认为“desc”)。 instance_ids 否 Array of strings 数据库实例ID列表,缺省值:null,表示不使用数据库实例ID过滤。 instance_ip 否 String DRS绑定的数据库实例IP,缺省值:"",表示不使用DRS绑定数据库IP过滤。
  • 请求示例 查询任务详情请求示例: 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 表10 响应Body参数 参数 参数类型 描述 count Integer 总数。 results Array of objects 批量修改任务返回列表。 详情请参见表11。 表11 results字段数据结构说明 参数 参数类型 描述 id String 任务ID。 status String 状态。取值: success:成功。 failed:失败。 error_code String 错误码。 error_msg String 错误信息。
  • 请求示例 批量修改指定任务的任务名称 https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-modification { "jobs" : [ { "job_id" : "140b5236-88ad-43c8-811c-1268453jb101", "name" : "testName" } ] } 批量设置指定任务的异常通知信息 https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-modification { "jobs" : [ { "job_id" : "8d0e8e36-a618-490d-8a46-8c61ac9jb502", "alarm_notify" : { "delay_time" : 0, "rto_delay" : 0, "rpo_delay" : 0, "alarm_to_user" : false, "subscriptions" : [ { "protocol" : "sms", "endpoints" : [ "150********" ] }, { "protocol" : "email", "endpoints" : [ "abc@huawei.com" ] } ] } } ] } 批量修改指定任务的任务名称和描述 https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-modification { "jobs" : [ { "job_id" : "140b5236-88ad-43c8-811c-1268453jb101", "name" : "testName", "description" : "test description" } ] }
  • URI GET /v3/{project_id}/jobs/{job_id}/compare/{compare_job_id}/content-detail 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 job_id 是 String 任务ID。 compare_job_id 是 String 对比任务ID。 表2 Query参数 参数 是否必选 参数类型 描述 target_db_name 否 String 目标库名称。 db_name 否 String 源库名称。 type 否 String 类型。 compare:对比 unCompare:无法对比 limit 否 Integer 每页显示的条目数量。 缺省值:1000 offset 否 Integer 偏移量,表示从此偏移量开始查询, offset大于等于0。 缺省值:0
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 total_count Integer 对比数量。 content_compare_result_infos Array of objects 对比信息列表。 详情请参见表5。 表5 content_compare_result_infost字段数据结构说明 参数 参数类型 描述 source_db String 源库名称。 target_db String 目标库名称。 source_table_name String 源库的表名称。 target_table_name String 目标库名称。 source_row_num Long 源库表行数。 target_row_num Long 目标库表行数。 difference_row_num Long 源库的表和目标库的表的差异值。 line_compare_result Boolean 行对比结果。 true:一致 false:不一致 content_compare_result Boolean 内容对比结果。 true:一致 false:不一致 message String 附加信息。 compare_line_config_filter String 行过滤配置条件
  • 响应示例 状态码: 200 OK { "total_count" : 2, "content_compare_result_infos" : [ { "source_db" : "db2", "source_table_name" : "tb2", "source_row_num" : 2434882, "target_db" : "db2", "target_table_name" : "tb2", "target_row_num" : 2434882, "difference_row_num" : 0, "line_compare_result" : true, "content_compare_result" : true }, { "source_db" : "db1", "source_table_name" : "tb1", "source_row_num" : 1, "target_db" : "db1", "target_table_name" : "tb1", "target_row_num" : 1, "difference_row_num" : 0, "line_compare_result" : true, "content_compare_result" : true } ] } 状态码: 400 Bad Request { "error_code" : "DRS.M00202", "error_msg" : "The value of jobId is invalid." }
  • 响应示例 状态码: 202 Accepted { "results" : [ { "id" : "e11eaf8f-71ef-4fad-8890-aed7572ajb11", "name" : "DRS-9228", "status" : "CREATING", "create_time" : "1599188556112" } ], "count" : 1 }
  • 响应参数 状态码: 202 表10 响应Body参数 参数 参数类型 描述 results Array of objects 批量创建任务的响应体集合。 详情请参见表11。 count Integer 总记录数。 表11 results字段数据结构说明 参数 参数类型 描述 id String 任务ID。 child_ids Array of strings 子任务ID集合,有子任务时返回该字段。 name String 任务名称。 status String 任务状态。 create_time String 创建时间,时间戳。 error_code String 错误码。 error_msg String 错误信息。
  • 请求示例 批量创建MySQL入云实时迁移任务,任务模式为全量+增量,网络类型为公网网络 https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-creation { "jobs" : [ { "name" : "DRS-9228", "node_type" : "high", "engine_type" : "mysql", "net_type" : "eip", "job_direction" : "up", "db_use_type" : "migration", "task_type" : "FULL_INCR_TRANS", "customize_sutnet_id" : "352ad828-3467-4f03-987a-c55a5a9dd417", "source_endpoint" : { "db_type" : "mysql" }, "target_endpoint" : { "region" : "cn-xianhz-1", "db_type" : "mysql", "inst_id" : "e05a3679efe241d8b5dee80b17c1a863in01" }, "is_target_readonly" : false, "bind_eip" : true } ] } 批量创建MySQL本云为备实时灾备任务,网络类型为公网网络 https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-creation { "jobs" : [ { "name" : "DRS-api-test", "engine_type" : "cloudDataGuard-mysql", "net_type" : "eip", "node_type" : "high", "job_direction" : "up", "source_endpoint" : { "db_type" : "mysql" }, "target_endpoint" : { "region" : "cn-xianhz-1", "db_type" : "mysql", "inst_id" : "e05a3679efe241d8b5dee80b17c1a863in01", "project_id" : "054ba152d480d55b2f5dc0069e7ddef0" }, "is_target_readonly" : true, "bind_eip" : true, "db_use_type" : "cloudDataGuard", "task_type" : "FULL_INCR_TRANS", "customize_sutnet_id" : "352ad828-3467-4f03-987a-c55a5a9dd417", "multi_write" : false } ] } 批量创建DDS副本入云实时迁移任务,任务模式为全量+增量,网络类型为公网网络 https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-creation { "jobs" : [ { "name" : "DRS-3371-linxiaolu", "node_type" : "high", "engine_type" : "mongodb", "net_type" : "eip", "job_direction" : "up", "db_use_type" : "migration", "task_type" : "FULL_INCR_TRANS", "customize_sutnet_id" : "faf513f3-7a88-4a5c-bec7-238699c29c17", "source_endpoint" : { "db_type" : "mongodb" }, "target_endpoint" : { "region" : "cn-xianhz-1", "db_type" : "mongodb", "inst_id" : "3cadd5a0ef724f55ac7fa5bcb5f4fc5fin02" }, "bind_eip" : true } ] } 创建MySQL主备入云同步任务,任务模式为全量+增量,网络类型为公网网络 https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-creation { "jobs" : [ { "name" : "DRS-linxiaolu-test3", "engine_type" : "mysql", "net_type" : "eip", "node_type" : "high", "job_direction" : "up", "source_endpoint" : { "db_type" : "mysql" }, "target_endpoint" : { "region" : "cn-xianhz-1", "db_type" : "mysql", "inst_id" : "64e8d7a31afa476ca85609a17af83765in01", "project_id" : "054ba152d480d55b2f5dc0069e7ddef0" }, "bind_eip" : true, "db_use_type" : "sync", "task_type" : "FULL_INCR_TRANS", "customize_sutnet_id" : "0cf77cfb-3785-4065-a9c4-74b7bb2df071", "master_az" : "az2xahz", "slave_az" : "az3xahz" } ] }
  • 请求示例 更新租户指定ID任务对象信息 https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs/c7debc9c-8e09-4a5d-8dd6-cc44f78jb20r { "job" : { "type" : "db_object", "params" : { "db_object" : { "object_scope" : "table", "target_root_db" : { "db_name" : "mytest", "db_encoding" : "utf8" }, "object_info" : { "TEST1" : { "name" : "TEST1", "tables" : { "TBL_1" : { "name" : "TBL_1", "type" : "table", "all" : true, "is_synchronized" : false }, "TBL_2" : { "name" : "TBL_2", "type" : "table", "all" : true, "is_synchronized" : false } } }, "TEST2" : { "name" : "TEST2", "all" : true, "tables" : { "WT_1" : { "name" : "WT_1", "type" : "table", "all" : true, "is_synchronized" : false }, "WT_2" : { "name" : "WT_2", "type" : "table", "all" : true, "is_synchronized" : false } } } } } } } } 更新租户指定ID任务名称为DRS-1234。 https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs/c7debc9c-8e09-4a5d-8dd6-cc44f78jb20r { "job" : { "type" : "name", "params" : { "base_info" : { "name" : "DRS-1234" } } } } 更新任务源库、目标库的信息。 https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs/c7debc9c-8e09-4a5d-8dd6-cc44f78jb20r { "job" : { "type" : "endpoint", "params" : { "source_endpoint" : [ { "db_type" : "oracle", "endpoint_type" : "offline", "endpoint_role" : "so", "endpoint" : { "id" : "f59e6118-da89-4fdb-9b98-65f56709928a", "endpoint_name" : "oracle", "ip" : "10.154.217.239", "db_port" : "1521", "db_user" : "ORACLE_USER", "db_name" : "serviceName.orcl", "db_password" : "******" }, "ssl" : { "ssl_link" : false } } ], "target_endpoint" : [ { "db_type" : "gaussdbv5", "endpoint_type" : "cloud", "endpoint_role" : "ta", "endpoint" : { "id" : "10deb576-8885-473b-a213-4d76e668dc0d", "endpoint_name" : "cloud_gaussdbv5", "instance_id" : "c2c7579bc09c490b9d8009db715aeb0ain14", "db_user" : "root", "db_password" : "******" }, "cloud" : { "region" : "cn-north-4", "project_id" : "9dc8c0f3f74c4dbb23c29cf0318ee561", "az_code" : "cn-north-4a,cn-north-4g,cn-north-4c" }, "vpc" : { "vpc_id" : "2cb5d364-ae63-4fbb-85b7-7d59f4a88f8f", "subnet_id" : "2cb54324-ae63-4fbb-85b7-7d59f4a88f8f", "security_group_id" : "039a3s89-665a-43e2-9b4f-bda7d9ee148d" } } ] } } }
共100000条