更新时间:2024-07-11 GMT+08:00

批量修改任务

功能介绍

批量修改任务名称或描述,设置异常通知信息。

调试

您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。

接口约束

  • 源库和目标库均测试连接成功之后需要调用该接口,请按照示例填写源库、目标库信息,否则可能导致后续任务发生错误。
  • 修改名称、描述、异常通知时,任务不处于结束或者删除状态时可以调用。
  • 源库和目标库均测试连接成功之后调用,需要任务处于CONFIGURATION状态,双主灾备时父任务不支持调用。
  • 为保证接口调用性能,建议批量调用数量不超过10个。

URI

PUT /v3/{project_id}/jobs/batch-modification

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

租户在某一Region下的Project ID。

获取方法请参见获取项目ID

请求参数

表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。

description

String

任务描述,修改任务描述时必填。

最小长度:0

最大长度:256

name

String

任务名称,需要修改任务名称时填写。

alarm_notify

Object

设置异常通知信息。

详情请参见表5

task_type

String

任务模式,取值:

  • FULL_TRANS:全量
  • INCR_TRANS:增量
  • FULL_INCR_TRANS:全量+增量
    说明:

    目前仅支持MySQL到GaussDB(for MySQL)同步任务在配置中或者增量中时修改。

source_endpoint

Object

源库信息,测试连接之后调用必填。

详情请参见表7

target_endpoint

Object

目标库信息,测试连接之后调用必填。

详情请参见表7

node_type

String

Node规格类型,测试连接之后修改调用时必填。

缺省值:high

取值:high

engine_type

String

DRS任务引擎类型,测试连接之后修改调用时必填。

取值:

  • mysql:MySQL到MySQL迁移,MySQL到MySQL同步
  • mongodb:MongoDB到DDS迁移
  • cloudDataGuard-mysql:MySQL到MySQL灾备
  • gaussdbv5GaussDB同步
  • mysql-to-kafka:MySQL到Kafka同步
  • taurus-to-kafka:GaussDB(for MySQL)到Kafka同步
  • gaussdbv5ha-to-kafkaGaussDB主备版到Kafka同步
  • postgresql:PostgreSQL到PostgreSQL同步

详细取值可参考引擎类型说明

net_type

String

网络类型,测试连接之后调用必填。取值:

  • vpn
  • vpc
  • eip

store_db_info

Boolean

是否保存数据库信息,测试连接之后调用必填。

is_recreate

Boolean

是否为重建任务。

job_direction

String

任务方向,测试连接之后调用必填。

取值:

  • up:入云 ,灾备场景时对应本云为备。
  • down:出云,灾备场景时对应本云为主。
  • non-dbs:自建。

is_target_readonly

Boolean

目标实例是否限制为只读。

replace_definer

Boolean

所有Definer是否迁移到该用户下,MySQL数据库支持该设置,测试连接之后修改调用时必填。取值:

  • true:迁移后,所有源数据库对象的Definer都会迁移至该用户下,其他用户需要授权后才具有数据库对象权限
  • false:迁移后,将保持源数据库对象Definer定义不变,选择此选项,需要配合下一步用户权限迁移功能,将源数据库的用户全部迁移,这样才能保持源数据库的权限体系完全不变。

tags

Array of object

标签信息。

详情请参见表9

db_use_type

String

迁移类型。

取值:

  • migration:实时迁移
  • sync:实时同步
  • cloudDataGuard:实时灾备

product_id

String

产品ID。

表5 alarm_notify字段数据结构说明

参数

是否必选

参数类型

描述

delay_time

Long

订阅延迟时间(单位为s)。

  • 最小值:1
  • 最大值:3600
  • 缺省值:0

rto_delay

Long

RTO(Recovery Time Objective)延迟时间(单位为s)。

  • 最小值:1
  • 最大值:3600
  • 缺省值:0

rpo_delay

Long

RPO(Recovery Point Objective)延迟时间(单位为s)。

  • 最小值:1
  • 最大值:3600
  • 缺省值:0

alarm_to_user

Boolean

异常告警是否通知用户,缺省值:false

subscriptions

Array of objects

收件方式与信息体,最多填写两个。

详情请参见表6

表6 subscriptions字段数据结构说明

参数

是否必选

参数类型

描述

endpoints

Array of strings

手机号或者邮箱列表,多个用逗号分隔,最多支持10个。

protocol

String

收件方式。取值:

  • sms:短信。
  • email:邮件。
表7 source_endpoint和target_endpoint字段数据结构说明

参数

是否必选

参数类型

描述

db_type

String

数据库类型,测试连接之后修改调用时必填。取值:

  • mysql:MySQL
  • mongodb:MongoDB
  • gaussdbv5:GaussDB分布式版
  • taurus:GaussDB(for MySQL)
  • gaussdbv5ha:GaussDB主备版
  • kafka:Kafka
  • postgresql:PostgreSQL

az_code

String

数据库所在可用区azCode。

region

String

数据库实例所在Region,数据库为云上实例时,比如RDS实例时必填(灾备场景下job_direction为down时source_endpoint中该值为必填,job_direction为up时target_endpoint中该值为必填)。

inst_id

String

数据库实例ID,数据库为云上实例时,比如RDS实例时必填(灾备场景下job_direction为down时source_endpoint中该值为必填,job_direction为up时target_endpoint中该值为必填)。

vpc_id

String

数据库所在的虚拟私有云ID。

subnet_id

String

数据库所在的子网ID。

security_group_id

String

数据库所在的安全组ID。

project_id

String

如果数据库为云上实例时,填写数据库实例所在Region下的Project ID。否则,填写当前任务所在Region下的Project ID。

获取方法请参见获取项目ID

db_name

String

服务名serviceName,源库为Oracle场景时必填。

如果设置,需要手动在数据库中创建对应的库。

约束:不能超过128位,不能包含!<>&'"\特殊字符。

db_password

String

数据库密码。

说明:

除不需要密码的引擎,其他引擎测试连接之后修改调用时必填。

db_port

Integer

数据库端口。约束:输入范围为1-65535之间的整数。

db_user

String

数据库用户。

说明:

除不需要用户名的引擎,其他引擎测试连接之后修改调用时必填。

inst_name

String

RDS实例名称。

ip

String

数据库IP。

说明:

测试连接之后修改调用时必填。

mongo_ha_mode

String

mongo ha模式。

safe_mode

Integer

MRS集群运行模式,取值:

  • 0普通集群
  • 1安全集群

ssl_cert_password

String

SSL证书密码,证书文件后缀为.p12。

ssl_cert_check_sum

String

SSL证书内容checksum值,后端校验,源库安全连接必选。

ssl_cert_key

String

SSL证书内容,用base64加密。

ssl_cert_name

String

SSL证书名字。

ssl_link

Boolean

是否SSL安全连接。

topic

String

kafka topic名称。

cluster_mode

String

MongoDB集群4.0及以上版本,当集群实例无法获取到分片节点的IP时,source_endpoint中需要填写,值为:Sharding4.0+。

缺省值:Sharding4.0+

取值:Sharding4.0+

kafka_security_config

Object

Kafka安全认证相关,非安全认证不需要此参数。

表8

表8 kafka_security_config字段数据结构说明

参数

是否必选

参数类型

描述

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

证书密码,证书设置了密码时必填。

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证书密码,证书设置了密码时需要。对应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。

表9 tags字段数据结构说明

参数

是否必选

参数类型

描述

key

String

标签键,最大长度36,只能包含字母、数字、下划线、中划线和中文,需要修改标签时填写。

value

String

标签值,最大长度43,只能包含字母、数字、下划线、中划线和中文,需要修改标签时填写。

响应参数

状态码: 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"
      } ]
    }
  • MySQL任务测试连接成功之后调用
    https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-modification
    
    {
    	"jobs": [{
    		"job_id": "1fded2ab-ce99-4b0e-9cc9-9ce7e17jb101",
    		"name": "DRS-5646-linxiaolu",
    		"source_endpoint": {
    			"ip": "192.168.0.27",
    			"db_port": "3306",
    			"db_user": "root",
    			"db_password": "********",
    			"ssl_link": false,
    			"db_type": "mysql",
    			"project_id": "054ba152d480d55b2f5dc0069e7ddef0"
    		},
    		"target_endpoint": {
    			"region": "cn-xianhz-1",
    			"db_type": "mysql",
    			"db_user": "root",
    			"db_password": "********",
    			"project_id": "054ba152d480d55b2f5dc0069e7ddef0",
    			"inst_id": "3def1ac7f8ab4ae48d7c025339f80414in01"
    		},
    		"node_type": "high",
    		"engine_type": "mysql",
    		"store_db_info": true,
    		"net_type": "eip",
                    "job_direction":"up",
    		"replace_definer": true
    	}]
    }
  • MongoDB->DDS迁移任务测试连接成功之后调用
    https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-modification
    
    {
    	"jobs": [{
                    "job_id": "741d91cf-67e8-4126-ad0f-32f6cccjb105",
    		"name": "DRS-4513",
    		"source_endpoint": {
    			"ip": "192.168.11.231:8635,192.168.10.12:8635",
    			"db_port": 0,
    			"db_user": "rwuser",
    			"db_password": "********",
    			"ssl_link": false,
    			"db_type": "mongodb",
    			"project_id": "0549a6a31000d4e82fd1c00c3d6f2d76",
    			"db_name": "admin"
    		},
    		"target_endpoint": {
    			"region": "cn-xianhz-1",
    			"db_type": "mongodb",
    			"db_user": "rwuser",
    			"db_password": "********",
    			"project_id": "0549a6a31000d4e82fd1c00c3d6f2d76",
    			"inst_id": "3cadd5a0ef724f55ac7fa5bcb5f4fc5fin02"
    		},
    		"node_type": "high",
    		"engine_type": "mongodb",
    		"net_type": "eip",
                    "job_direction":"up",
    		"store_db_info": true
    
    	}]
    }
  • 批量修改指定任务模式
    https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-modification
    
    {
      "jobs": [
        {
          "job_id": "140b5236-88ad-43c8-811c-1268453jb101",
          "task_type": "FULL_INCR_TRANS"
        }
      ]
    }

响应示例

状态码: 200

OK

{
  "results" : [ {
    "id" : "efa2bd29-8780-494f-a2ee-188b003ejb11",
    "status" : "success"
  } ],
  "count" : 1
}

状态码

状态码

描述

200

OK

400

Bad Request

错误码

请参见错误码