
# 恢复到已有实例
#### 功能介绍
该章节介绍如何将数据库恢复到已有实例。
**当前页面API为历史版本API，未来可能停止维护。建议及时切换到新接口[恢复到已有实例 - RestoreExistInstance](https://support.huaweicloud.com/api-rds/rds_09_0009.html)。**
- 调用接口前，您需要了解API[认证鉴权](https://support.huaweicloud.com/api-rds/rds_03_0001.html)。
- 调用接口前，您需要了解[请求Header参数说明](https://support.huaweicloud.com/api-rds/rds_03_0005.html#rds_03_0005__section479119143310)。
 
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=RDS&api=RestoreToExistingInstance)中调试该接口。
#### 接口约束
- 恢复SQL Server单个数据库到已有实例时，支持批量执行。
- 该接口不支持RDS for PostgreSQL数据库实例。
- 恢复到已有实例时，该接口存在如下约束：
  - 源实例和目标实例的数据库类型必须一致，如都是MySQL。
  
  - 目标实例数据库版本必须高于或等于源实例的数据库版本，如MySQL 5.7.25-\>5.7.27，SQL Server版本约束，详见[表1]。
  
  - RDS for MySQL数据库目标实例的存储空间大于或等于源实例的存储空间总大小。
  
  - 不支持跨区域恢复操作。
  
  - 恢复RDS for MySQL数据库到已有实例时，目标实例与原实例表名大小写设置不一致，可能会导致恢复失败。
   
- 恢复到当前实例时，该接口存在如下约束： 该接口仅支持实例的数据库引擎MySQL和Microsoft SQL Server。
   表1RDS for SQL Server恢复支持的版本规则 
  | 原数据库版本      | 可恢复到的版本                                                                                                                                           |
  |:---|:---|
  | 2008 R2 web | 2008 R2 WEB 2008 R2 企业版                                                                  |
  | 2008 R2 企业版 | 2008 R2 企业版                                                                                                                                       |
  | 2012 web版   | 2012 web版 2012 标准版 2012 企业版 |
  | 2012 标准版    | 2012 标准版 2012 企业版                                                                      |
  | 2012 企业版    | 2012 企业版                                                                                                                                          |
  | 2014 web    | 2014 web 2014 标准版 2014 企业版     |
  | 2014 标准版    | 2014 标准版 2014 企业版                                                                        |
  | 2014 企业版    | 2014 企业版                                                                                                                                          |
  | 2016 web    | 2016 web 2016 标准版 2016 企业版      |
  | 2016 标准版    | 2016 标准版 2016 企业版                                                                      |
  | 2016 企业版    | 2016 企业版                                                                                                                                          |
  | 2017 web版   | 2017 web版 2017 标准版 2017 企业版    |
  | 2017 标准版    | 2017 标准版 2017 企业版                                                                       |
  | 2017 企业版    | 2017 企业版                                                                                                                                          |
     
  
 
#### URI
- URI格式 POST /v3/{project_id}/instances/recovery
  
- 参数说明
  表2参数说明 
  | 名称         | 是否必选 | 说明                                                                                                                                                         |
  |:---|:---|:---|
  | project_id | 是    | 租户在某一region下的project ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-rds/rds_03_0002.html)。 |
     
  
 
#### 请求消息
参数说明
表3参数说明 
| 名称     | 是否必选 | 参数类型   | 说明                                                                                                                                             |
|:---|:---|:---|:---|
| source | 是    | Object | 恢复数据源对象。 详情请参见[表4]。    |
| target | 是    | Object | 恢复目标对象。 详情请参见[表5]。 |
   
 表4source字段数据结构说明 
| 名称            | 是否必选 | 参数类型                  | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| instance_id   | 是    | String                | 实例ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| type          | 否    | String                | 表示恢复方式，枚举值： - "backup"，表示使用备份文件恢复，按照此方式恢复时，"type"字段为非必选，"backup_id"必选。  - "timestamp"，表示按时间点恢复，按照此方式恢复时，"type"字段必选，"restore_time"必选。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| backup_id     | 否    | String                | 用于恢复的备份ID。当使用备份文件恢复时需要指定该参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| restore_time  | 否    | Integer               | 恢复数据的时间点，格式为UNIX时间戳，单位是毫秒，时区为UTC。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| database_name | 否    | Map\<String, String\> | 仅适用于SQL Server引擎，当有此参数时表示支持局部恢复和重命名恢复，恢复数据以局部恢复为主。 - 不填写该字段时，默认恢复全部数据库。  - 新数据库名可填写多个，用英文逗号分隔，新数据库名称中可包含原库名。  - 新数据库名称填写限制如下： - 新库名不可以与原库名相同，为空时，默认恢复与原库名相同。  - 根据创建实例时所选择的字符集判断数据库名称是否大小写敏感，保证新数据库名称之间不可以重复。  - 所有新数据库名称数量与目标实例数据库数量总数不可以超出数据库数量配额，数据库数量配额参数名：rds_databases_quota。  - 新数据库名不能包含rdsadmin、master、msdb、tempdb、model或resource字段（不区分大小写）。  - 新数据库名称长度在1\~64个字符之间，包含字母、数字，下划线或中划线，不能包含其他特殊字符，如恢复多个新数据库，可通过英文逗号分隔。  - 新数据库名称与源实例数据库名称不可以冲突。  - 新数据库名称与恢复到已有或当前的实例下的数据库名称不可以冲突。     **示例：** ``` "database_name":{"原数据库名称":"新数据库名称"} ``` 正确示例："database_name":{"A":"A,A1,A2","B":"B1,B2","C":""} 错误示例："database_name":{"A":"A","B":"B1,B2","C":"B1,C1","D":"D1,d1"}, 错误原因如下： 1. 原数据库名称不可以等于新数据库名称。  2. 新数据库名称相互之间冲突重复，新库名的集合中B1重复。  3. 实例数据库名大小写不敏感情况下，D1与d1数据库名称冲突。   - 恢复当前或已有实例，恢复操作过程需要谨慎操作。   须知： 恢复前请评估恢复后的数据大小是否超出目标实例购买的磁盘大小，如果磁盘容量不足，请先扩容磁盘，避免恢复过程中由于磁盘容量限制导致恢复失败。 |
   
 表5target字段数据结构说明 
| 名称          | 是否必选 | 参数类型   | 说明        |
|:---|:---|:---|:---|
| instance_id | 是    | String | 恢复目标实例ID。 |
   
#### 请求示例
**使用备份文件恢复：**
**MySQL：**
```
https://{endpoint}/v3/0483b6b16e954cb88930a360d2c4e663/instances/recovery
{
"source": {
"instance_id": "d8e6ca5a624745bcb546a227aa3ae1cfin01",
"type": "backup",
"backup_id": "2f4ddb93-b901-4b08-93d8-1d2e472f30fe"
},
"target": {
"instance_id": "d8e6ca5a624745bcb546a227aa3ae1cfin01"
}
}
```
**SQL Server：**
```
{
"source": {
"instance_id": "61879e6085bc44d1831b0ce62d988fd9in04",
"type": "backup",
"backup_id": "b021670e69ba4538b7b2ed07257306aebr04",
"database_name": {
"db1": "dbtest1",
"db2": ""
}
},
"target": {
"instance_id": "d8e6ca5a624745bcb546a227aa3ae1cfin04"
}
}
```
**按时间点恢复：**
**MySQL：**
```
{
"source": {
"instance_id": "d8e6ca5a624745bcb546a227aa3ae1cfin01",
"type": "timestamp",
"restore_time": 1532001446987
},
"target": {
"instance_id": "d8e6ca5a624745bcb546a227aa3ae1cfin01"
}
}
```
**Microsoft SQL Server：**
```
{
"source": {
"instance_id": "61879e6085bc44d1831b0ce62d988fd9in04",
"type": "timestamp",
"restore_time": 1532001446987,
"database_name": {
"db1": "dbtest1,dbtest2",
"db2": "db2,db02",
                        "db3": ""
}
},
"target": {
"instance_id": "d8e6ca5a624745bcb546a227aa3ae1cfin04"
}
}
```
#### 响应消息
- 正常响应要素说明
  表6要素说明 
  | 名称     | 参数类型   | 说明       |
  |:---|:---|:---|
  | job_id | String | 本次任务的ID。 |
     
  
- 正常响应样例
  ```
  {
  "job_id": "ff80808157127d9301571bf8160c001d"
  }
  ```
  
- 异常响应 请参见[异常响应结果](https://support.huaweicloud.com/api-rds/rds_01_0010.html)。
  
 
#### 状态码
- 正常 200
  
- 异常 请参见[状态码](https://support.huaweicloud.com/api-rds/rds_10_0200.html)。
  
 
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-rds/rds_10_0201.html)。
