创建备份迁移任务
功能介绍
该接口主要用于三种常见场景下备份迁移任务的配置。
备份迁移支持如下的常见场景:
- 通过OBS桶备份文件进行全量数据迁移。
- 通过OBS桶备份文件进行全量+增量数据迁移。
- 通过RDS全量备份进行全量数据迁移。
URI
POST /v5/{project_id}/backup-migration-jobs
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
Content-Type |
是 |
String |
发送的实体的MIME类型。推荐用户默认使用application/json,如果API是对象、镜像上传等接口,媒体类型可按照流类型的不同进行确定。 |
X-Auth-Token |
是 |
String |
从IAM服务获取的用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 |
X-Language |
否 |
String |
请求语言类型。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
base_info |
是 |
BackupJobBaseInfo object |
创建备份迁移任务基本信息体。 |
target_db_info |
是 |
BackupJobEndpointInfo object |
备份迁移任务恢复目标RDS for SQL Server实例信息。 |
backup_info |
是 |
BackupInfo object |
备份文件信息。 |
options |
是 |
BackupRestoreOptionInfo object |
备份迁移相关配置参数。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
是 |
String |
任务名称。 约束:任务名称在4位到50位之间,不区分大小写,可以包含字母、数字、中划线或下划线,不能包括其他特殊字符。 - 最小长度:4 - 最大长度:50 |
engine_type |
是 |
String |
数据库引擎。 - sqlserver:RDS for SQL Server引擎 |
description |
否 |
String |
任务描述。 |
tags |
否 |
Array of ResourceTag objects |
标签信息。 标签的值可以包含任意语种字母、数字、空格和_ . : / = + - @。 |
enterprise_project_id |
否 |
String |
企业项目ID。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
key |
否 |
String |
标签键。 约束:最大长度36,只能包含字母、数字、下划线、中划线和中文。 |
value |
否 |
String |
标签值。标签的值可以包含任意语种字母、数字、空格和_ . : / = + - @。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
target_instance_id |
是 |
String |
备份迁移任务恢复目标RDS for SQL Server实例ID。 |
ms_file_stream_status |
否 |
String |
目标实例是否开启FileStream模式。可通过RDS for SQL Server详情接口获取。 |
file_id |
否 |
String |
RDS for SQL Server备份文件的文件ID,通过RDS全量恢复时必填。可通过云数据库RDS备份管理页面获取。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
file_source |
是 |
String |
备份文件来源:(全部大写)
|
bucket_name |
否 |
String |
OBS桶名称,使用OBS桶备份文件恢复时必填。 约束:长度范围为3~63个字符,仅支持小写字母、数字、中划线(-)、点(.),且只能以字母或数字开头和结尾,禁止使用IP地址。 如果选择从OBS桶获取备份文件必填,参考登录客户端登录OBS Browser客户端,首页为OBS桶列表,可以获取到备份文件所在桶的名称。 |
files |
是 |
Array of BackupFileInfo objects |
备份文件信息列表。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
是 |
String |
备份文件名称。 |
obs_path |
否 |
String |
OBS桶中文件路径。 OBS场景:必选 RDS场景:缺省 |
rds_version |
否 |
String |
bak文件数据库版本。 OBS场景:缺省 RDS场景:必选 |
rds_source_instance_id |
否 |
String |
bak文件所属实例。 OBS场景:缺省 RDS场景:必选 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
is_cover |
否 |
Boolean |
是否覆盖目标数据库,不填默认为false。 值为“true”表示覆盖。 值为“false”表示不覆盖。 |
is_default_restore |
否 |
Boolean |
是否默认恢复,默认恢复所有数据库。 “true”是代表默认恢复还原备份文件中的全部数据库。 “false”代表需要在db_names这个字段中指定需要恢复的数据库名。 |
is_last_backup |
是 |
Boolean |
一次典型的增量恢复过程,会涉及多次恢复增量备份。每个增量备份恢复均会使目标数据库保持还原中状态,此时数据库不可读写,直至最后一个增量备份恢复完成后,数据库才能变成可用状态。此后数据库将无法继续进行增量恢复,所以确定为最后一个备份的场景有: 一次性全量迁移,后续将不再进行增量恢复时,设置该字段值为“true”。 增量恢复流程中,确定为最后割接阶段的最后一个增量备份时,设置该字段值为“false”。 |
is_precheck |
是 |
Boolean |
是否执行预校验。 true:执行。 false:不执行。 |
recovery_mode |
是 |
String |
恢复模式: “full”表示全量迁移。 “incre”表示增量迁移 。 |
db_names |
否 |
Array of strings |
数据库名称。 |
reset_db_name_map |
否 |
Map<String,String> |
该字段为一个map,目前使用格式key是"",value是新数据库名字。 该功能将忽略备份文件中原有的数据库名,通过DRS将其恢复为指定的新数据库名。 使用条件:
|
is_delete_backup_file |
否 |
Boolean |
该参数控制使用OBS桶中备份文件恢复时,当任务结束时是否删除下载到RDS for SQL server磁盘中的OBS备份文件,默认删除。
|
响应参数
状态码: 200
参数 |
参数类型 |
描述 |
---|---|---|
job_id |
String |
任务ID。 |
状态码: 400
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码。 |
error_msg |
String |
错误描述。 |
请求示例
- 通过OBS备份文件进行全量备份恢复。
https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/backup-migration-jobs { "base_info" : { "name" : "DRS-7526", "engine_type" : "sqlserver", "enterprise_project_id" : "0", "description" : "目标RDS实例名称:rds-sqlserver-2022-stand", "tags" : [ ] }, "target_db_info" : { "target_instance_id" : "0a3182607bc549bcb46cc9a8755761a6in04", "ms_file_stream_status" : "off", "file_id" : "" }, "backup_info" : { "file_source" : "OBS", "bucket_name" : "zyy-obs", "files" : [ { "name" : "1706510914000_0_Test_Database.bak", "obs_path" : "", "size" : "8.75 MB" } ] }, "options" : { "is_cover" : true, "recovery_mode" : "full", "is_default_restore" : true, "is_last_backup" : true, "reset_db_name_map" : { }, "is_precheck" : true, "is_delete_backup_file" : true, "db_names" : [ "" ] } }
- RDS备份文件备份恢复。
https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/backup-migration-jobs { "base_info" : { "name" : "DRS-7526", "engine_type" : "sqlserver", "enterprise_project_id" : "0", "description" : "miao'shu", "tags" : [ ] }, "target_db_info" : { "target_instance_id" : "0a3182607bc549bcb46cc9a8755761a6in04", "ms_file_stream_status" : "off", "file_id" : "0d87037d934848999fdc10bbabb08e6fbr04" }, "backup_info" : { "file_source" : "RDS", "files" : [ { "obs_path" : "", "size" : "211.10MB", "rds_version" : "2019_EE", "rds_source_instance_id" : "7fb189b57339473a929d41dabb3878a2in04", "file_name" : "sqlserver-Auto-Single-Sqlserver2019-tar-sense-20240827181001498" } ] }, "options" : { "is_precheck" : true, "reset_db_name_map" : { "db_test12" : "", "db_hailiang_schema" : "", "db_sqls2v5_01" : "" }, "db_names" : [ "db_test12", "db_hailiang_schema", "db_sqls2v5_01" ] } }
- 通过OBS桶备份文件进行全量+增量备份恢复。
首先进行一次全量迁移,is_last_backup选择“false”。
https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/backup-migration-jobs { "base_info" : { "name" : "DRS-7527", "engine_type" : "sqlserver", "enterprise_project_id" : "0", "description" : "描述", "tags" : [ ] }, "target_db_info" : { "target_instance_id" : "0a3182607bc549bcb46cc9a8755761a6in04", "ms_file_stream_status" : "off", "file_id" : "" }, "backup_info" : { "file_source" : "OBS", "bucket_name" : "zyy-obs", "files" : [ { "name" : "ims.bak", "obs_path" : "floder/", "size" : "8.75 MB" } ] }, "options" : { "is_cover" : true, "recovery_mode" : "full", "is_default_restore" : true, "is_last_backup" : false, "reset_db_name_map" : { }, "is_precheck" : true, "is_delete_backup_file" : true, "db_names" : [ "" ] } }
- 通过OBS桶备份文件进行全量+增量备份恢复。
全量迁移完成后,然后进行一次增量迁移。如果不止一个增量备份文件,is_last_backup依然选择“false”。
https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/backup-migration-jobs { "base_info" : { "name" : "DRS-7527", "engine_type" : "sqlserver", "enterprise_project_id" : "0", "description" : "描述", "tags" : [ ] }, "target_db_info" : { "target_instance_id" : "0a3182607bc549bcb46cc9a8755761a6in04", "ms_file_stream_status" : "off", "file_id" : "" }, "backup_info" : { "file_source" : "OBS", "bucket_name" : "zyy-obs", "files" : [ { "name" : "ims_log1.bak", "obs_path" : "floder/", "size" : "1.75 MB" } ] }, "options" : { "is_cover" : true, "recovery_mode" : "incre", "is_default_restore" : true, "is_last_backup" : false, "reset_db_name_map" : { }, "is_precheck" : true, "is_delete_backup_file" : true, "db_names" : [ "" ] } }
- 通过OBS桶备份文件进行全量+增量备份恢复。
停止数据库业务,进行最后一次增量迁移,is_last_backup选择“true”。
https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/backup-migration-jobs { "base_info" : { "name" : "DRS-7527", "engine_type" : "sqlserver", "enterprise_project_id" : "0", "description" : "描述", "tags" : [ ] }, "target_db_info" : { "target_instance_id" : "0a3182607bc549bcb46cc9a8755761a6in04", "ms_file_stream_status" : "off", "file_id" : "" }, "backup_info" : { "file_source" : "OBS", "bucket_name" : "zyy-obs", "files" : [ { "name" : "ims_log2.bak", "obs_path" : "floder/", "size" : "1.75 MB" } ] }, "options" : { "is_cover" : true, "recovery_mode" : "incre", "is_default_restore" : true, "is_last_backup" : true, "reset_db_name_map" : { }, "is_precheck" : true, "is_delete_backup_file" : true, "db_names" : [ "" ] } }
响应示例
状态码: 200
OK
{ "job_id" : "0667845a-6291-4e2a-95b0-190c0abjb703" }
状态码: 400
Bad Request
{ "error_code" : "DRS.10000001", "error_msg" : "Failed." }
状态码
状态码 |
描述 |
---|---|
200 |
OK |
400 |
Bad Request |
错误码
请参见错误码。