华为云用户手册

  • 响应参数 状态码: 202 表4 响应Body参数 参数 参数类型 描述 params_list Array of objects 查询数据库参数响应体。 详情请参见表5。 count Integer 总数。 表5 params_list字段数据结构说明 参数 参数类型 描述 params Array of objects 数据参数信息体。 详情请参见表6。 表6 params字段数据结构说明 参数 参数类型 描述 compare_result String 参数对比结果。取值: true false data_type String 参数类型 group String 分组。取值: common:常规参数。 performance:性能参数。 key String 参数名。 need_restart String 是否需要重启。取值: true false source_value String 源数据库参数值。 target_value String 目标数据库参数值。 value_range String 参数范围。 error_code String 错误码。 error_message String 错误信息。
  • 接口约束 目前仅MySQL迁移和MySQL灾备支持参数对比的功能。 job_direction为up时才能调用,任务状态为CONFIGURATION才能调用。 双主灾备时父任务不支持。 对于上述参数“innodb_buffer_pool_size”,参数对比功能对应用到目标数据库的值做了内控,最大不会超过目标数据库总内存的70%。所以有时候是无法完全和源数据库该参数取值一致,这是为了避免目标数据库设置过大,而导致数据库无法启动,如果您觉得上述最大值偏小,可以在数据库中通过执行命令手动设置更大的值,具体可参考参数对比详细介绍 。
  • 请求参数 表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 批量查询任务请求体。 refresh 是 String 是否重新获取数据库参数,1代表是,0代表否(从缓存中获取),第一次调用时请设置为1。
  • URI POST /v3/{project_id}/jobs/{type}/batch-struct-detail 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 type 是 String 数据库支持迁移对象类型。取值: database schema table view procedure trigger index table_indexs table_structure
  • 请求参数 表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 当前页, 不能超过item数量除每页任务数量的最大页,缺省值:1。 per_page 否 Integer 每页item数量,填0获取全部item。 最小值:0 最大值:100 缺省值:5
  • 请求示例 批量查询灾备初始化对象详情示例: https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/database/batch-struct-detail { "jobs" : [ "0ea5c5a0-e1b5-4421-80a9-7c9ff27jb502" ], "page_req" : { "cur_page" : 1, "per_page" : 10 } }
  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 count Integer 总数。 results Array of objects 批量查询灾备初始化对象详情返回列表。 详情请参见表6。 表6 results字段数据结构说明 参数 参数类型 描述 job_id String 任务ID。 error_code String 错误码。 error_message String 错误信息。 struct_detail Object 灾备初始化对象详情信息。 详情请参见表7。 表7 struct_detail字段数据结构说明 参数 参数类型 描述 total_record Long 任务总数。 create_time String 数据生成时间。 list Array of objects 对比结果。 详情请参见表8。 表8 list字段数据结构说明 参数 参数类型 描述 progress Integer 进度。 src_DB String 源数据库名称。如果源数据库存在三层结构,格式为:database.schema。 src_TB String 源对象名称。 dst_DB String 目标数据库名称。 dst_TB String 目标对象名称。
  • 响应示例 状态码: 200 OK { "count" : 1, "results" : [ { "job_id" : "8d0e8e36-a618-490d-8a46-8c61ac9jb502", "struct_detail" : { "list" : [ { "progress" : 100, "src_DB" : "test1", "src_TB" : "test1", "dst_DB" : "test1", "dst_TB" : "test1" } ], "total_record" : 1, "create_time" : "1608429484785" } } ] }
  • 响应示例 状态码: 200 OK { "count" : 1, "results" : [ { "job_id": "8ee21a0b-fff5-46b4-a6dd-6c54d5djb201", "struct_process" : { "result" : [ { "type" : "table", "status" : 2, "src_count" : 0, "dst_count" : 0, "start_time" : 1608097599000, "end_time" : 1608097600000 }, { "type" : "view", "status" : 2, "src_count" : 0, "dst_count" : 0, "start_time" : 1608097599000, "end_time" : 1608097600000 }, { "type" : "table_structure", "status" : 2, "src_count" : 0, "dst_count" : 0, "start_time" : 1608097599000, "end_time" : 1608097600000 }, { "type" : "database", "status" : 2, "src_count" : 1, "dst_count" : 1, "start_time" : 1608097599000, "end_time" : 1608097600000 }, { "type" : "function", "status" : 2, "src_count" : 0, "dst_count" : 0, "start_time" : 1608097599000, "end_time" : 1608097600000 }, { "type" : "procedure", "status" : 2, "src_count" : 0, "dst_count" : 0, "start_time" : 1608097599000, "end_time" : 1608097600000 }, { "type" : "table_indexs", "status" : 2, "src_count" : 0, "dst_count" : 0, "start_time" : 1608097599000, "end_time" : 1608097600000 } ], "create_time" : "1608429670521" } } ] }
  • 请求参数 表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 批量查询任务请求体。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 results Array of objects 批量查询灾备初始化进度返回列表。 详情请参见表5。 count Integer 总数。 表5 results字段数据结构说明 参数 参数类型 描述 job_id String 任务ID。 error_code String 错误码。 error_message String 错误信息。 struct_process Object 灾备初始化进度信息。 详情请参见表6。 表6 struct_process字段数据结构说明 参数 参数类型 描述 create_time String 数据生成时间。 result Array of objects 对比结果。 详情请参见表7。 表7 result字段数据结构说明 参数 参数类型 描述 type String 对象类型。 status Integer 状态。 src_count Integer 源对象数量。 dst_count Integer 目标对象数量。 start_time Long 开始时间。 end_time Long 结束时间。
  • 请求示例 查询对比结果请求示例: https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/query-compare-result { "job_id" : "94800607-3cd8-4f7d-a340-63a10f8jb502", "object_level_compare_id" : "dc1683d9-bdf2-4be9-967f-6ef0953369bc", "line_compare_id" : "d45d569d-0a80-4cef-a412-da2a3bcdc9b7", "content_compare_id" : "79e206e6-13eb-4556-8cd5-c994c9cbd4e6", "current_page" : 1, "per_page" : 2 }
  • 响应示例 状态码: 200 OK { "job_id" : "c6e65e6a-de99-4112-9697-7c1923ajb201", "object_level_compare_results" : { "compare_task_id" : "dc1683d9-bdf2-4be9-967f-6ef0953369bc", "object_compare_overview" : [ { "object_type" : "DB", "object_compare_result" : "CONSISTENT", "source_count" : 1, "target_count" : 1, "diff_count" : 0 }, { "object_type" : "INDEX", "object_compare_result" : "CONSISTENT", "source_count" : 12, "target_count" : 12, "diff_count" : 0 }, { "object_type" : "TABLE", "object_compare_result" : "CONSISTENT", "source_count" : 6, "target_count" : 6, "diff_count" : 0 } ], "object_compare_details" : { "TABLE" : [ { "source_db_name" : "may_5", "target_db_name" : "may_5", "source_db_value" : "add_table_name_0", "target_db_value" : "add_table_name_0" }, { "source_db_name" : "may_5", "target_db_name" : "may_5", "source_db_value" : "table_name_3", "target_db_value" : "table_name_3" } ], "INDEX" : [ { "source_db_name" : "may_5", "target_db_name" : "may_5", "source_db_value" : "`add_table_name_0`.`PRIMARY`", "target_db_value" : "`add_table_name_0`.`PRIMARY`" }, { "source_db_name" : "may_5", "target_db_name" : "may_5", "source_db_value" : "`add_table_name_0`.`bak0`", "target_db_value" : "`add_table_name_0`.`bak0`" } ], "DB" : [ { "source_db_name" : "may_5", "target_db_name" : "may_5", "source_db_value" : "may_5", "target_db_value" : "may_5" } ] } }, "line_compare_results" : { "compare_task_id" : "d45d569d-0a80-4cef-a412-da2a3bcdc9b7", "line_compare_overview" : [ { "source_db_name" : "may_5", "target_db_name" : "may_5", "line_compare_result" : "INCONSISTENT" } ], "line_compare_overview_count" : 1, "line_compare_details" : [ { "source_db_name" : "may_5", "line_compare_detail" : [ { "source_table_name" : "table_name_0", "source_row_num" : 0, "target_table_name" : "table_name_0", "target_row_num" : 1, "diff_row_num" : 1, "line_compare_result" : "INCONSISTENT" }, { "source_table_name" : "table_name_1", "source_row_num" : 0, "target_table_name" : "table_name_1", "target_row_num" : 0, "diff_row_num" : 0, "line_compare_result" : "CONSISTENT" } ], "line_compare_detail_count" : 2 } ] }, "content_compare_results" : { "compare_task_id" : "79e206e6-13eb-4556-8cd5-c994c9cbd4e6", "content_compare_overview" : [ { "source_db_name" : "may_5", "target_db_name" : "may_5", "content_compare_result" : "INCONSISTENT" } ], "content_compare_overview_count" : 1, "content_compare_details" : [ { "source_db_name" : "may_5", "content_compare_detail" : [ { "source_db_name" : "may_5", "target_db_name" : "may_5", "source_table_name" : "table_name_0", "target_table_name" : "table_name_0", "source_row_num" : 0, "target_row_num" : 1, "diff_row_num" : 1, "line_compare_result" : "INCONSISTENT", "content_compare_result" : "INCONSISTENT" }, { "source_db_name" : "may_5", "target_db_name" : "may_5", "source_table_name" : "table_name_1", "target_table_name" : "table_name_1", "source_row_num" : 0, "target_row_num" : 0, "diff_row_num" : 0, "line_compare_result" : "CONSISTENT", "content_compare_result" : "CONSISTENT" } ], "content_compare_detail_count" : 2, "content_uncompare_detail" : [ ], "content_uncompare_detail_count" : 0 } ], "content_compare_diffs" : [ { "source_db_name" : "may_5", "source_table_name" : "table_name_0", "content_compare_diff" : [ { "target_key_value" : [ "5" ], "target_select_sql" : "select * from may_5.table_name_0 where id = 5" } ], "content_compare_diff_count" : 1 } ] }, "compare_task_list_results" : { "compare_task_list_count" : 8, "compare_task_list" : [ { "compare_task_id" : "08cad1f8-9de2-42fa-b8ce-6c36daf730f6", "compare_type" : "contents", "compare_task_status" : "SUC CES SFUL", "create_time" : "1607766111833", "end_time" : "1607766310812" }, { "compare_task_id" : "dc1683d9-bdf2-4be9-967f-6ef0953369bc", "compare_type" : "object_comparison", "compare_task_status" : "SUCCESSFUL", "create_time" : "1607766110535", "end_time" : "1607766127373" } ] } }
  • 请求参数 表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参数 参数 是否必选 参数类型 描述 job_id 是 String 任务id。 object_level_compare_id 否 String 请求查询结果的对象级对比任务id。 line_compare_id 否 String 请求查询结果的行对比任务id。 content_compare_id 否 String 请求查询结果的内容对比任务id。 current_page 是 Integer 分页查询的当前页码,对查询对比任务的结果生效。 per_page 是 Integer 分页查询的每页个数,对查询对比任务的结果生效。
  • 响应参数 状态码: 200 表8 响应Body参数 参数 参数类型 描述 job_id String 任务id。 object_level_compare_create_result Object 创建对象级对比的结果。 详情请参见表9。 data_level_compare_create_result Object 创建数据级对比的结果。 详情请参见表9。 error_code String 错误码。 error_msg String 错误信息。 表9 object_level_compare_create_result和data_level_compare_create_result字段数据结构说明 参数 参数类型 描述 compare_task_id String 对比任务创建成功后,返回对比任务的id,用于查询该对比任务的结果。 error_code String 错误码。 error_msg String 错误信息。
  • 响应示例 状态码: 200 OK { "job_id" : "94800607-3cd8-4f7d-a340-63a10f8jb502", "object_level_compare_create_result" : { "compare_task_id" : "dc1683d9-bdf2-4be9-967f-6ef0953369bc" }, "data_level_compare_create_result" : { "compare_task_id" : "08cad1f8-9de2-42fa-b8ce-6c36daf730f6" } }
  • 请求示例 创建对象级对比和数据级行对比任务: https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/create-compare-task { "job_id" : "94800607-3cd8-4f7d-a340-63a10f8jb502", "object_level_compare_type" : "objects", "data_level_compare_info" : { "conflict_policy" : "keep", "compare_type" : "lines", "compare_mode" : null, "start_time" : null, "compare_object_infos" : [ { "db_name" : "may_5", "table_name" : [ "table_name_0", "table_name_1" ] } ] } }
  • 请求参数 表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参数 参数 是否必选 参数类型 描述 job_id 是 String 任务ID。 object_level_compare_type 否 String 对象级对比类型,取值为空代表不创建对象级对比。object_level_compare_type和data_level_compare_info都为空时,只查询已创建的对比任务列表。 取值:objects data_level_compare_info 否 Object 数据级对比信息,不创建数据级对比时可以不传。object_level_compare_type和data_level_compare_info都为空时,只查询已创建的对比任务列表。 详情请参见表4。 表4 data_level_compare_info字段数据结构说明 参数 是否必选 参数类型 描述 conflict_policy 是 String 一个任务只允许有一个未完成的数据级对比任务,该字段决定对未完成数据级对比任务的处理方式。cancel:取消后重新创建。keep:保持未完成的不再创建。 取值: cancel keep compare_type 是 String 数据级对比类型,lines:行对比,contents:内容对比。 取值: lines contents 说明: 不能同时进行对象级对比和内容对比。 compare_mode 否 String 数据级对比模式,取值为空时需要在compare_object_infos或者compare_object_infos_with_token传对象信息,quick_comparison-快速对比,需要加入该功能的白名单才能使用。 缺省值:quick_comparison 取值:quick_comparison start_time 否 String 对比任务启动时间,取值为空代表立即启动。 compare_object_infos 否 Array of objects 数据级对比的对象。非“快速对比”模式时,compare_object_infos和compare_object_infos_with_token根据链路二选一传值,不允许都为空。 详情请参见表5。 compare_object_infos_with_token 否 Array of objects 数据级对比的对象(Cassandra灾备专用,带token信息)。非“快速对比”模式时,compare_object_infos和compare_object_infos_with_token根据链路二选一传值,不允许都为空。 详情请参见表6。 表5 compare_object_infos字段数据结构说明 参数 是否必选 参数类型 描述 db_name 是 String 库名。 table_name 否 Array of strings 该库下的表名列表。 表6 compare_object_infos_with_token字段数据结构说明 参数 是否必选 参数类型 描述 db_name 是 String 库名。 table_name_with_token 否 Array of objects 该库下的表信息列表(带token)。 详情请参见表7。 表7 table_name_with_token字段数据结构说明 参数 是否必选 参数类型 描述 table_name 是 String 表名。 min_token 否 String 该表的min token。 max_token 否 String 该表的max token。
  • 请求参数 表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 批量设置replaceDefiner请求列表。 详情请参见表4。 表4 jobs字段数据结构说明 参数 是否必选 参数类型 描述 job_id 是 String 任务ID。 replace_definer 是 Boolean 是否使用目标库的用户替换掉definer。
  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 count Integer 总数。 results Array of objects 批量修改任务返回列表。 详情请参见表6。 表6 results字段数据结构说明 参数 参数类型 描述 id String 任务ID。 status String 状态。取值: success:成功。 failed:失败。 error_code String 错误码。 error_msg String 错误信息。
  • 请求示例 批量设置指定任务的definer https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-replace-definer { "jobs" : [ { "job_id" : "7c685701-bfb5-4bb9-89f1-d0567f5jb502", "replace_definer" : true } ] }
  • 请求参数 表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字段数据结构说明 参数 是否必选 参数类型 描述 db_password 是 String 数据库密码。 end_point_type 是 String 类型。so:源库;ta:目标库。 取值: so ta job_id 是 String 任务ID。 kerberos 否 Object kerberos认证需要的信息。 详情请参见表5。 表5 kerberos字段数据结构说明 参数 是否必选 参数类型 描述 krb5_conf_file 否 String krb5配置文件。 key_tab_file 否 String key文件。 domain_name 否 String 域名 。 user_principal 否 String Kerberos用户对象。
  • 响应参数 状态码: 200 表6 响应Body参数 参数 参数类型 描述 count Integer 总数。 results Array of objects 批量修改任务返回列表。 详情请参见表7。 表7 results字段数据结构说明 参数 参数类型 描述 id String 任务ID。 status String 状态。取值: success:成功。 failed:失败。 end_point_type String 类型。so:源库;ta:目标库。 error_code String 错误码。 error_msg String 错误信息。
  • 响应示例 状态码: 200 OK { "results" : [ { "id" : "8d0e8e36-a618-490d-8a46-8c61ac9jb502", "status" : "success", "end_point_type" : "so" }, { "id" : "8d0e8e36-a618-490d-8a46-8c61ac9jb502", "status" : "success", "end_point_type" : "ta" } ], "count" : 2 }
  • 请求示例 批量修改指定任务的源库和目标库密码 https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-modify-pwd { "jobs" : [ { "db_password" : "********", "end_point_type" : "so", "job_id" : "25df459d-a37c-41b9-bc2b-8c00ba32jb52" }, { "db_password" : "********", "end_point_type" : "ta", "job_id" : "25df459d-a37c-41b9-bc2b-8c00ba32jb52" } ] }
  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 results Array of objects 批量暂停返回列表。 详情请参见表6。 count Integer 总数。 表6 results字段数据结构说明 参数 参数类型 描述 id String 任务ID。 status String 暂停结果。 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 不能包含空对象。 集合中的job_id取值严格匹配UUID规则。 详情请参见表4。 表4 jobs字段数据结构说明 参数 是否必选 参数类型 描述 job_id 是 String 任务ID。 pause_mode 是 String 暂停类型,target:停回放,all:停日志抓取和回放。 取值: target all
  • 请求参数 表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。 is_sync_re_edit 否 Boolean 任务再编辑之后启动时必填,为true。
  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 results Array of objects 批量续传返回列表。 详情请参见表6。 count Integer 总数。 表6 results字段数据结构说明 参数 参数类型 描述 id String 任务ID。 status String 状态。 error_code String 错误码。 error_msg String 错误信息。
  • 请求示例 修改数据库binlog_stmt_cache_size参数值为32678、bulk_insert_buffer_size值为8388608 https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/140b5236-88ad-43c8-811c-1268453jb101/params { "group" : "performance", "params" : [ { "key" : "binlog_stmt_cache_size", "target_value" : "32678" }, { "key" : "bulk_insert_buffer_size", "target_value" : "8388608" } ] }
共100000条