创建任务
功能介绍
创建单个任务,根据请求参数不同,可以创建单个实时迁移、实时同步、实时灾备等任务。
接口约束
- 目前仅支持Redis->GeminiDB Redis迁移、Redis集群->GeminiDB Redis迁移、MySQL->MySQL同步、Oracle->GaussDB分布式同步场景。
- 仅支持部分Region使用,详情参考终端节点。
URI
POST /v5/{project_id}/jobs
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
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 枚举值:
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
job |
是 |
Object |
创建单个任务请求体。 详情请参见表4。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
base_info |
是 |
Object |
创建任务基本信息体。 详情请参见表5。 |
source_endpoint |
是 |
Array of objects |
创建任务数据库信息体。 详情请参见表7。 |
target_endpoint |
是 |
Array of objects |
创建任务数据库信息体。 详情请参见表7。 |
period_order |
否 |
Object |
包年/包月信息体。 详情请参见表14。 |
node_info |
是 |
Object |
创建任务实例信息体。 详情请参见表15。 |
public_ip_list |
否 |
Array of objects |
指定公网IP的信息。 详情请参见表19。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
否 |
String |
任务名称。 约束:任务名称在4位到50位之间,不区分大小写,可以包含字母、数字、中划线或下划线,不能包括其他特殊字符。
|
job_type |
否 |
String |
任务场景。取值:
枚举值:
|
multi_write |
否 |
Boolean |
灾备类型是否双主灾备。说明:
|
engine_type |
否 |
String |
引擎类型。取值:
枚举值:
|
job_direction |
否 |
String |
迁移方向。取值:
枚举值:
|
task_type |
否 |
String |
迁移模式。取值:
枚举值:
|
net_type |
否 |
String |
网络类型。取值:
枚举值:
|
charging_mode |
否 |
String |
计费模式,默认按需。取值:
枚举值:
|
enterprise_project_id |
否 |
String |
企业项目ID。 缺省值:"0",表示"default"企业项目。 缺省值:0 |
description |
否 |
String |
任务描述。 约束:任务描述不能超过256位,且不能包含!<>&'"\特殊字符。 最小长度:0 最大长度:256 |
start_time |
否 |
String |
任务定时启动时间。 |
expired_days |
否 |
String |
任务处于异常状态一段时间后,将会自动结束。单位为天。(范围14-100),不传默认为14天。 缺省值:14 |
tags |
否 |
Array of objects |
标签信息,最多添加20个标签。 详情请参见表6。 |
is_open_fast_clean |
否 |
Boolean |
是否开启云数据库RDS for MySQL、MariaDB的Binlog快速清理。不传默认为false,不开启快速清理。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
key |
否 |
String |
标签键。 约束:最大长度36,只能包含字母、数字、下划线、中划线和中文。 最小长度:1 最大长度:36 |
value |
否 |
String |
标签值。 约束:最大长度43,只能包含字母、数字、下划线、中划线和中文。 最小长度:1 最大长度:43 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
db_type |
是 |
String |
数据库类型。取值:
枚举值:
|
endpoint_type |
是 |
String |
数据库实例类型。取值:
枚举值:
|
endpoint_role |
是 |
String |
数据库实例角色。取值:
枚举值:
|
endpoint |
是 |
Object |
数据库基本信息体。 详情请参见表8。 |
cloud |
否 |
Object |
数据库实例所在Region,项目等信息。 详情请参见表9. |
vpc |
否 |
Object |
数据库实例所在VPC,子网,安全组等信息,数据库实例类型为ECS时必填。 详情请参见表10。 |
config |
否 |
Object |
数据库基本设置信息体。 详情请参见表11。 |
ssl |
否 |
Object |
数据库SSL证书信息体。 详情请参见表12。 |
customized_dns |
否 |
Object |
客户自定义DNS服务。 详情请参见表13。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
id |
否 |
String |
数据库信息ID。 |
endpoint_name |
是 |
String |
数据库场景类型。取值:
枚举值:
|
ip |
否 |
String |
数据库IP。约束:
示例:
|
db_port |
否 |
String |
数据库端口。 约束:输入范围为1-65535之间的整数。 |
db_user |
是 |
String |
数据库用户名。 |
db_password |
是 |
String |
数据库密码。 |
instance_id |
否 |
String |
华为云数据库实例ID。 |
instance_name |
否 |
String |
华为云数据库实例名称。 |
db_name |
否 |
String |
指定数据库名称。例如:
|
source_sharding |
否 |
Array of objects |
物理源库信息。 详情请参见表8. |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
region |
是 |
String |
区域ID,当数据库实例类型为ecs(华为云ECS自建数据库),cloud(华为云数据库)时为必填项。获取方法请参见地区和终端节点。 注意:当该Region下存在子项目时,Region ID为区域项目ID与子项目ID,由“_”下划线拼接。 |
project_id |
是 |
String |
租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 |
az_code |
否 |
String |
数据库所在可用分区(AZ)名称。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
vpc_id |
是 |
String |
数据库实例所在的虚拟私有云ID,获取方法如下: 方法1:登录虚拟私有云服务的控制台界面,在虚拟私有云的详情页面查找VPC ID。 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询VPC列表。 |
subnet_id |
是 |
String |
数据库实例所在子网ID,获取方法如下: 方法1:登录虚拟私有云服务的控制台界面,单击VPC下的子网,进入子网详情页面,查找网络ID。 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询子网列表。 |
security_group_id |
否 |
String |
数据库实例所在的安全组ID,获取方法如下: 方法1:登录虚拟私有云服务的控制台界面,在安全组的详情页面查找安全组ID。 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询安全组列表。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
is_target_readonly |
否 |
Boolean |
目标实例是否设置为为只读。 MySQL迁移和灾备,且job_direction为up时设置有效。(灾备场景下,单主灾备且本云为备为必填且为true,不填默认设置为true)。 缺省值:true |
node_num |
否 |
Integer |
Redis集群到GeminiDB Redis迁移场景填写,连接源端Redis集群的子任务个数,输入值在1到16之间,且输入值不能大于源端Redis集群的分片个数,请根据源端Redis集群的规模合理选择。建议集群的每4个分片设置1个源端分片个数,即每1个子任务连接源端集群的4个分片。 最小值:1 最大值:16 缺省值:0 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
ssl_link |
否 |
Boolean |
是否SSL安全连接。如果数据库启用了SSL安全连接,参数值为true。 |
ssl_cert_name |
否 |
String |
SSL证书名字。 |
ssl_cert_key |
否 |
String |
SSL证书内容,用base64加密。 |
ssl_cert_check_sum |
否 |
String |
SSL证书内容checksum值,后端校验,源库安全连接必选。 |
ssl_cert_password |
否 |
String |
SSL证书密码,证书文件后缀为.p12时必填。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
is_set_dns |
是 |
Boolean |
是否设置客户自定义DNS。 |
set_dns_action |
是 |
String |
设置客户自定义DNS的行为。
枚举值:
|
dns_ip |
是 |
String |
设置客户自定义DNS IP。 最小长度:0 最大长度:15 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
period_type |
是 |
Integer |
订购周期类型。取值:
缺省值:3 枚举值:
|
period_num |
是 |
Integer |
订购周期数。根据period_type取值不同,代表不同周期数,例如:
|
is_auto_renew |
否 |
Integer |
是否自动续订。取值:
缺省值:0 枚举值:
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
spec |
是 |
Object |
任务实例规格信息体。 详情请参见表16。 |
vpc |
否 |
Object |
任务实例VPC信息体,自建任务必填。 详情请参见表17。 |
base_info |
否 |
Object |
任务实例VPC信息体,自建任务必填。 详情请参见表18。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
node_type |
是 |
String |
实例规格编码。取值:
枚举值:
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
vpc_id |
是 |
String |
任务实例所在虚拟私有云ID。 |
subnet_id |
是 |
String |
任务实例所在子网ID。 |
custom_node_ip |
否 |
String |
指定创建任务实例IP地址,多个IP端口之间请用“,”英文逗号分隔,目前仅支持设置IPv4地址,获取方法如下:
|
security_group_id |
否 |
String |
任务实例所在的安全组ID。 |
响应参数
状态码: 200
参数 |
参数类型 |
描述 |
---|---|---|
job |
Object |
创建任务响应体。 详情请参见表21。 |
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
任务ID。 |
name |
String |
任务名称。 |
status |
String |
任务状态。 |
create_time |
String |
任务创建时间。 |
is_clone_job |
String |
是否为克隆任务。 |
状态码: 400
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码。 最小长度:12 最大长度:12 |
error_msg |
String |
错误描述。 最小长度:1 最大长度:512 |
请求示例
- 创建Oracle到GaussDB分布式版按需实时同步任务,任务模式为全量+增量,公网网络类型。
https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs { "job" : { "base_info" : { "name" : "DRS-1234", "job_type" : "sync", "engine_type" : "oracle-to-gaussdbv5", "job_direction" : "up", "task_type" : "FULL_INCR_TRANS", "net_type" : "eip", "charging_mode" : "on_demand", "enterprise_project_id" : "0", "description" : "", "expired_days" : "14", "tags" : [ { "key" : "test", "value" : "test" } ] }, "source_endpoint" : [ { "db_type" : "oracle", "endpoint_type" : "offline", "endpoint_role" : "so", "endpoint" : { "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" : { "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-4c,cn-north-4g" }, "vpc" : { "vpc_id" : "2cb5d364-ae63-4fbb-85b7-7d59f4a88f8f", "subnet_id" : "2cb54324-ae63-4fbb-85b7-7d59f4a88f8f", "security_group_id" : "039a3s89-665a-43e2-9b4f-bda7d9ee148d" } } ], "node_info" : { "spec" : { "node_type" : "medium" }, "vpc" : { "vpc_id" : "2cb5d364-ae63-4fbb-85b7-7d59f4a88f8f", "subnet_id" : "2cb54324-ae63-4fbb-85b7-7d59f4a88f8f" } } } }
- 创建Oracle到GaussDB分布式版按需实时同步任务,指定公网IP。
https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs { "job": { "base_info": { "name": "DRS-1234", "job_type": "sync", "engine_type": "oracle-to-gaussdbv5", "job_direction": "up", "task_type": "FULL_INCR_TRANS", "net_type": "eip", "charging_mode": "on_demand", "enterprise_project_id": "0", "description": "", "expired_days": "14", "tags": [ { "key": "test", "value": "test" } ] }, "source_endpoint": [ { "db_type": "oracle", "endpoint_type": "offline", "endpoint_role": "so", "endpoint": { "endpoint_name": "oracle", "ip": "******", "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": { "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-4c,cn-north-4g" }, "vpc": { "vpc_id": "2cb5d364-ae63-4fbb-85b7-7d59f4a88f8f", "subnet_id": "2cb54324-ae63-4fbb-85b7-7d59f4a88f8f", "security_group_id": "039a3s89-665a-43e2-9b4f-bda7d9ee148d" } } ], "node_info": { "spec": { "node_type": "medium" }, "vpc": { "vpc_id": "2cb5d364-ae63-4fbb-85b7-7d59f4a88f8f", "subnet_id": "2cb54324-ae63-4fbb-85b7-7d59f4a88f8f" } }, "public_ip_list": [ { "id": "018d9e56-26d5-455a-97dc-e6f5f44a2cbd", "public_ip": "******", "type": "master" } ] } }
响应示例
状态码: 200
OK
{ "job" : { "id" : "c7debc9c-8e09-4a5d-8dd6-cc44f78jb20r", "name" : "DRS-1234", "status" : "CREATING", "create_time" : "2022-11-07T16:15:18Z" } }
状态码: 400
Bad Request
{ "error_code" : "DRS.10000001", "error_msg" : "Failed." }
状态码
状态码 |
描述 |
---|---|
200 |
OK |
400 |
Bad Request |
错误码
请参见错误码。