# 恢复到已有实例 - RestoreExistInstance
#### 功能介绍
该章节介绍如何将数据库恢复到已有实例。
- 调用接口前，您需要了解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://console.huaweicloud.com/apiexplorer/#/openapi/RDS/doc?api=RestoreExistInstance)中调试该接口。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-rds/rds_10_0005.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
 
| 授权项                          | 访问级别   | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项 |
|:---|:---|:---|:---|:---|:---|
| rds:instance:restoreInPlace | write | -           | -   | -    | -      |
   
#### 接口约束
- 恢复RDS for SQL Server单个数据库到已有实例时，支持批量执行。
- 恢复到已有实例时，该接口存在如下约束：
  - 源实例和目标实例的数据库类型必须一致，例如都是MySQL。
  
  - 对于MySQL 5.7、5.6版本的实例，只可选择与原实例相同引擎，相同大版本下相同内核小版本或更高小版本的实例。
  
  - 对于MySQL 8.0版本的实例，只可选择与原实例相同引擎，相同大版本下相同内核小版本的实例。
  
  - 恢复RDS for PostgreSQL实例时，必须选择恢复到同版本实例。
  
  - 恢复RDS for PostgreSQL实例时，不支持恢复到已搭建容灾关系的主实例或灾备实例上。
  
  - RDS for SQL Server的原实例及目标实例的时区配置要完全一致，否则会有数据不一致风险。
  
  - RDS for 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 企业版 2012 web版 2012 标准版 2012 企业版 2014 web版 2014 标准版 2014 企业版 2016 web版 2016 标准版 2016 企业版 2017 web版 2017 标准版 2017 企业版 |
  | 2008 R2 企业版   | 2008 R2 企业版 2012 企业版 2014 企业版 2016 企业版 2017 企业版                                                                                                                                                                                                                                                                                                                                                                                                                            |
  | 2008 R2 标准版     | 2008 R2 标准版 2008 R2 企业版 2012 标准版 2012 企业版 2014 标准版 2014 企业版 2016 标准版 2016 企业版 2017 标准版 2017 企业版                                                                                                                                                                                                                      |
  | 2012 web版       | 2012 web版 2012 标准版 2012 企业版 2014 web版 2014 标准版 2014 企业版 2016 web版 2016 标准版 2016 企业版 2017 web版 2017 标准版 2017 企业版                                                                                                                                      |
  | 2012 标准版      | 2012 标准版 2012 企业版 2014 标准版 2014 企业版 2016 标准版 2016 企业版 2017 标准版 2017 企业版                                                                                                                                                                                                                                                                                                  |
  | 2012 企业版      | 2012 企业版 2014 企业版 2016 企业版 2017 企业版                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
  | 2014 web      | 2014 web版 2014 标准版 2014 企业版 2016 web版 2016 标准版 2016 企业版 2017 web版 2017 标准版 2017 企业版                                                                                                                                                                                                                                                                |
  | 2014 标准版         | 2014 标准版 2014 企业版 2016 标准版 2016 企业版 2017 标准版 2017 企业版                                                                                                                                                                                                                                                                                                                                                                                     |
  | 2014 企业版       | 2014 企业版 2016 企业版 2017 企业版                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
  | 2016 web     | 2016 web版 2016 标准版 2016 企业版 2017 web版 2017 标准版 2017 企业版                                                                                                                                                                                                                                                                                                                                                                          |
  | 2016 标准版       | 2016 标准版 2016 企业版 2017 标准版 2017 企业版                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
  | 2016 企业版      | 2016 企业版 2017 企业版                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
  | 2017 web版      | 2017 web版 2017 标准版 2017 企业版                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
  | 2017 标准版       | 2017 标准版 2017 企业版                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
  | 2017 企业版       | 2017 企业版                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
     
  
 
#### URI
- URI格式 POST /v3.1/{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。 **约束限制**： 不涉及。 **取值范围**： 该参数值可调用[查询数据库实例列表](https://support.huaweicloud.com/api-rds/rds_01_0004.html)接口，通过[表4](https://support.huaweicloud.com/api-rds/rds_01_0004.html#rds_01_0004__table2058713718267)中的"id"获取。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| type              | 否    | String               | **参数解释**： 实例的恢复方式。 **约束限制**： 不涉及。 **取值范围**： - "backup"，表示使用备份文件恢复，按照此方式恢复时，"type"字段为非必选，"backup_id"必选。  - "timestamp"，表示按时间点恢复，按照此方式恢复时，"type"字段必选，"restore_time"必选。   **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| backup_id            | 否      | String               | **参数解释**： 用于恢复的备份ID。 **约束限制**： - 当使用备份文件恢复时需要指定该参数。  - 不支持恢复增量备份的数据。   **取值范围**： 该参数值可调用[获取备份列表](https://support.huaweicloud.com/api-rds/rds_09_0005.html)接口，通过[表3](https://support.huaweicloud.com/api-rds/rds_09_0005.html#rds_09_0005__table52869820)中的"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"}, 错误原因如下： - 原数据库名称不可以等于新数据库名称。  - 新数据库名称相互之间冲突重复，新库名的集合中B1重复。  - 实例数据库名大小写不敏感情况下，D1与d1数据库名称冲突。    - 恢复当前或已有实例，恢复操作过程需要谨慎操作。   |
| restore_all_database | 否       | Boolean              | **参数解释**： 是否恢复所有数据库到目标实例。 **约束限制**： 该字段仅适用于SQL Server引擎。 **取值范围**： - true：恢复所有数据库到目标实例。  - false：不会恢复所有数据库到目标实例。   **默认取值**： 不填写该字段默认为false。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   
 表5target字段数据结构说明 
| 名称          | 是否必选 | 参数类型  | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| instance_id | 是    | String | **参数解释**： 恢复目标实例ID。 **约束限制**： 不涉及。 **取值范围**： 该参数值可调用[查询数据库实例列表](https://support.huaweicloud.com/api-rds/rds_01_0004.html)接口，通过[表4](https://support.huaweicloud.com/api-rds/rds_01_0004.html#rds_01_0004__table2058713718267)中的"id"获取。 **默认取值**： 不涉及。 |
   
#### 请求示例
- 使用备份文件将数据恢复到实例。
  ```
  POST https://{endpoint}/v3.1/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",
                  "restore_all_database":true
  },
  "target": {
  "instance_id": "d8e6ca5a624745bcb546a227aa3ae1cfin04"
  }
  }
  ```
  
- 将实例的数据恢复到指定时间点。
  ```
  {
  "source": {
  "instance_id": "d8e6ca5a624745bcb546a227aa3ae1cfin01",
  "type": "timestamp",
  "restore_time": 1532001446987
  },
  "target": {
  "instance_id": "d8e6ca5a624745bcb546a227aa3ae1cfin01"
  }
  }
  ```
  

- 将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)。
