
# 恢复到新实例 - CreateRestoreInstance
#### 功能介绍
从备份恢复到新实例。
#### 接口约束
- 原实例和目标实例的数据库类型必须一致，如都是MySQL。
- 原实例和目标实例的数据库版本必须一致。
- 数据库目标实例需大于或等于原实例的数据卷总大小。
 
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-rds/rds_10_0005.html)。

- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                 | 访问级别  | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | rds:instance:create | write | -           | -   | -  | -      |
     
  
 
#### URI
- URI格式 POST /v3/{project_id}/instances
  
- 参数说明
  表1参数说明 
  | 名称         | 是否必选 | 参数类型   | 说明                                                                                                                                                                                                                                                                                                                                                                                                      |
  |:---|:---|:---|:---|
  | project_id | 是    | String | **参数解释**： 租户在某一Region下的项目ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-flexusrds/rds_03_0002.html)。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。 |
     
  
 
#### 请求消息
表2参数说明 
| 名称                | 是否必选 | 参数类型             | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| name              | 是    | String           | **参数解释**： 实例名称。 **约束限制**： 同一租户下，同类型的实例名可重名。 **取值范围**： 实例名称长度最小为4字符，最大为64个字符，如果名称包含中文，则不超过64字节（注意：一个中文字符占用3个字节），必须以字母或中文开头，区分大小写，可以包含字母、数字、中划线、下划线、英文句号或中文，不能包含其他特殊字符。 **默认取值**： 不涉及。                                                                                                             |
| password          | 否    | String           | **参数解释：** 数据库密码。 **约束限制：** 建议您输入高强度密码，以提高安全性，防止出现密码被暴力破解等安全风险。如果您提供的密码被系统视为弱密码，您将收到错误提示，请提供更高强度的密码。 **取值范围：** 数据库支持的密码长度是8\~32个字符，至少包含大写字母、小写字母、数字、特殊字符三种字符的组合。允许输入\~!@#$%\^\*-_=+?,()\&特殊字符。 **默认取值：** 不涉及。                                                                           |
| flavor_ref        | 是    | String           | **参数解释**： 规格码。 **约束限制**： 不涉及。 **取值范围**： 非空。参考[查询数据库规格 - ListFlavors](https://support.huaweicloud.com/api-flexusrds/rds_06_0002.html)响应消息[表3](https://support.huaweicloud.com/api-flexusrds/rds_06_0002.html#rds_06_0002__table66531170)中的"spec_code"获取。 **默认取值**： 不涉及。                      |
| volume            | 是    | Object           | **参数解释：** 实例存储信息。详情请参见[表5]。 **约束限制：** 不涉及。                                                                                                                                                                                                                                                                                                                                         |
| availability_zone | 是    | String           | **参数解释：** 可用区ID。 **约束限制：** 对于数据库实例类型不是单机的实例，需要分别为实例所有节点指定可用区，并用逗号隔开。 **取值范围：** 非空，请参见[地区和终端节点](https://developer.huaweicloud.com/endpoint)。 **默认取值：** 不涉及。                                                                                                                          |
| restore_point     | 是    | Object           | **参数解释：** 恢复数据源对象。详情请参见[表6]。 **约束限制：** 不涉及。                                                                                                                                                                                                                                                                                                                                     |
| ha                | 否    | Object           | **参数解释：** HA配置参数，详情请参见[表3]。 **约束限制：** 仅创建主备实例时使用。                                                                                                                                                                                                                                                                                                                        |
| port              | 否    | String           | **参数解释：** 数据库端口信息。 **约束限制：** 不涉及。 **取值范围：** - 不传该参数时，默认3306。  - 传入该参数时，取值1024～65535（其中12017和33071被RDS系统占用不可设置）。   **默认取值：** 3306                |
| backup_strategy   | 否    | Object           | **参数解释：** 高级备份策略。详情请参见[表4]。 **约束限制：** 不涉及。                                                                                                                                                                                                                                                                                                                                  |
| region            | 否    | String           | **参数解释：** 区域ID。 **约束限制：** 不涉及。 **取值范围：** 非空，请参见[地区和终端节点](https://developer.huaweicloud.com/endpoint)。 **默认取值：** 不涉及。                                                                                                                                                                |
| charge_info       | 是    | Object           | **参数解释：** 包周期计费类型。详情请参见[表7]。 **约束限制：** 不涉及。                                                                                                                                                                                                                                                                                                                               |
| time_zone         | 否    | String           | **参数解释：** UTC时区。 **约束限制：** 不涉及。 **取值范围：** - 不传该参数，默认为UTC时间。  - 传入该参数，取值范围为UTC-12:00\~UTC+12:00，且只支持整段时间，如UTC+08:00，不支持UTC+08:30。   **默认取值：** UTC+08:00 |
| tags              | 否    | Array of objects | **参数解释：** 标签列表，根据标签键值对创建实例。 详情请参见[表8]。 **约束限制：** 如果创建实例时同时使用多个标签键值对，中间使用逗号分隔开，最多包含20组。                                                                                                                                                                                                                                                    |
| is_flexus         | 是    | boolean          | **参数解释：** 创建FlexusRDS实例。 **约束限制：** 不涉及。 **取值范围：** true **默认取值：** 不涉及。                                                                                                                                                                                                             |
   
 表3ha字段数据结构说明 
| 名称               | 是否必选 | 参数类型   | 说明                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| mode             | 是    | String | **参数解释：** 实例主备模式。 **约束限制：** 不涉及。 **取值范围：** HA，不区分大小写。 **默认取值：** 不涉及。                                                                                                                                                   |
| replication_mode | 是    | String | **参数解释：** 备机同步参数。 **约束限制：** 不涉及。 **取值范围：** - async：异步模式。  - semisync：半同步模式。   **默认取值：** 不涉及。 |
   
 表4backup_strategy字段数据结构说明 
| 名称         | 是否必选 | 参数类型    | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| start_time | 是    | String  | **参数解释：** 备份时间段。自动备份将在该时间段内触发。 **约束限制：** 不涉及。 **取值范围：** 非空，格式必须为hh:mm-HH:MM且有效，当前时间指UTC时间。 - HH取值必须比hh大1。  - mm和MM取值必须相同，且取值必须为00、15、30或45。   示例： - 08:15-09:15  - 23:00-00:00   **默认取值：** 不涉及。 |
| keep_days  | 否    | Integer | **参数解释：** 指定备份文件的可保存天数。 **约束限制：** 不涉及。 **取值范围：** - 不传该参数，默认7天。  - 传入该参数，0～732。取值为0，表示关闭自动备份策略。如果需要延长保留时间请联系客服人员申请，自动备份最长可以保留2562天。   **默认取值：** 7                                                                                                                                                                                                                                                         |
   
 表5volume字段数据结构说明 
| 名称   | 是否必选 | 参数类型    | 说明                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| type | 是    | String  | **参数解释：** 磁盘类型。 **约束限制：** 不涉及。 **取值范围：** CLOUDSSD：区分大小写，表示SSD云盘，仅支持通用型和独享型规格实例。 **默认取值：** 不涉及。            |
| size | 是    | Integer | **参数解释：** 磁盘大小。 **约束限制：** 新实例磁盘大小必须大于或等于原实例的磁盘大小。 **取值范围：** 40 GB\~4000 GB，必须为10的整数倍。 **默认取值：** 不涉及。 |
   
 表6restore_point字段数据结构说明 
| 名称           | 是否必选 | 参数类型    | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| instance_id  | 是    | String  | **参数解释：** 实例ID。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                 |
| type         | 是    | String  | **参数解释：** 恢复方式。 **约束限制：** 不涉及。 **取值范围：** - "backup"，表示使用备份文件恢复，按照此方式恢复时，当"type"字段为非必选时，"backup_id"必选。  - "timestamp"，表示按时间点恢复，按照此方式恢复时，当"type"字段必选时，"restore_time"必选。   **默认取值：** 不涉及。 |
| backup_id    | 否    | String  | **参数解释：** 用于恢复的备份ID。当使用备份文件恢复时需要指定该参数。 **约束限制：** 当"type"字段为非必选时，"backup_id"必选。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                      |
| restore_time | 否    | Integer | **参数解释：** 恢复数据的时间点，格式为UNIX时间戳，单位是毫秒，时区为UTC。 **约束限制：** 当"type"字段必选时，"restore_time"必选。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                  |
   
 表7charge_info字段数据结构说明 
| 名称            | 是否必选 | 参数类型    | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| charge_mode   | 是    | String  | **参数解释：** 计费模式。 **约束限制：** 不涉及。 **取值范围：** prePaid：预付费，即包年/包月。 **默认取值：** 不涉及。                                                                                                                                                                                    |
| period_type   | 是    | String  | **参数解释：** 订购周期类型。 **约束限制：** 不涉及。 **取值范围：** - month：包月。  - year：包年。   **默认取值：** 不涉及。                                       |
| period_num    | 否    | Integer | **参数解释：** 订购时长。 **约束限制：** 不涉及。 **取值范围：** - 当"period_type"为"month"时，取值为1\~9。  - 当"period_type"为"year"时，取值为1\~3。   **默认取值：** 不涉及。        |
| is_auto_renew | 否    | boolean | **参数解释：** 包周期实例是否自动续订，续订的周期和原周期相同，且续订时会自动支付。 **约束限制：** 不涉及。 **取值范围：** - true，为自动续订。  - false，为不自动续订，默认该方式。   **默认取值：** false |
| is_auto_pay   | 否    | boolean | **参数解释：** 是否自动从客户的账户中支付，此字段不影响自动续订的支付方式。 **约束限制：** 不涉及。 **取值范围：** - true，为自动支付。  - false，为手动支付，默认该方式。   **默认取值：** false     |
   
 表8tags字段数据结构说明 
| 名称    | 是否必选 | 参数类型   | 说明                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| key   | 是    | String | **参数解释：** 标签键。 **约束限制：** 不涉及。 **取值范围：** 长度为1-128个unicode字符。 可以包含任何语种字母、数字、空格和_.:=+-@，但首尾不能含有空格，不能以_sys_开头。 **默认取值：** 不涉及。 |
| value | 是    | String | **参数解释：** 标签值。 **约束限制：** 不涉及。 **取值范围：** 最大长度255个unicode字符，可以为空字符串。 可以包含任何语种字母、数字、空格和_.:=+-@。 **默认取值：** 不涉及。        |
   
#### 请求示例
- 将FlexusRDS备份文件恢复到新实例。
  ```
  POST https://{endpoint}/v3/0483b6b16e954cb88930a360d2c4e663/instances
  {
  "name": "targetInst",
  "availability_zone": "bbb,ccc",
  "ha": {
  "mode": "ha",
  "replication_mode": "async"
  },
  "flavor_ref": "rds.mysql.y1.xlarge.2.ha",
  "volume": {
  "type": "CLOUDSSD",
  "size": 40
  },
          "region": "aaa",
  "backup_strategy": {
  "keep_days": 2,
  "start_time": "19:00-20:00"
  },
  "password": "Demo@12345678",
  "time_zone": "UTC+04:00",
  "restore_point": {
  "instance_id": "d8e6ca5a624745bcb546a227aa3ae1cfin01",
  "type": "backup",
  "backup_id": "2f4ddb93-b901-4b08-93d8-1d2e472f30fe"
  }
  }
  ```
  

- 将FlexusRDS实例的数据恢复到指定时间点。
  ```
  {
  "name": "targetInst",
  "availability_zone": "bbb,ccc",
  "ha": {
  "mode": "ha",
  "replication_mode": "async"
  },
  "flavor_ref": "rds.mysql.y1.xlarge.2.ha",
  "volume": {
  "type": "CLOUDSSD",
  "size": 40
  },
  "backup_strategy": {
  "keep_days": 2,
  "start_time": "19:00-20:00"
  },
  "password": "Demo@12345678",
  "time_zone": "UTC+04:00",
  "restore_point": {
  "instance_id": "d8e6ca5a624745bcb546a227aa3ae1cfin01",
  "type": "timestamp",
  "restore_time": 1532001446987
  }
  }
  ```
  
 
#### 响应消息
- 正常响应要素说明
  表9要素说明 
  | 名称       | 参数类型   | 说明                                                                                                                                        |
  |:---|:---|:---|
  | instance | Object | **参数解释：** 实例信息。详情请参见[表10]。                                                   |
  | job_id   | String | **参数解释：** 实例创建的任务ID。仅按需实例时返回该参数。 **取值范围：** 不涉及。 |
     
   表10instance说明 
  | 名称                | 参数类型   | 说明                                                                                                                                                                                                                                                        |
  |:---|:---|:---|
  | id                | String | **参数解释：** 实例ID。 **取值范围：** 不涉及。                                                                                                                                    |
  | name              | String | **参数解释：** 实例名称。用于表示实例的名称，同一租户下，同类型的实例名称可相同。 **取值范围：** 与请求参数值相同。                                                                                                     |
  | status            | String | **参数解释：** 实例状态。 **取值范围：** BUILD，表示创建中。                                                                                                                              |
  | datastore         | Object | **参数解释：** 数据库信息。详情请参见[表11]。                                                                                                                                                                  |
  | ha                | Object | **参数解释：** HA配置参数，仅当您选择创建HA实例时该参数才可见。 详情请参见[表12]。                                                                                                         |
  | port              | String | **参数解释：** 数据库端口信息。 **取值范围：** 与请求参数值相同。                                                                                                                        |
  | backup_strategy   | Object | **参数解释：** 自动备份策略。详情请参见[表13]。                                                                                                                                                                |
  | flavor_ref        | String | **参数解释：** 规格ID。使用可参考[查询数据库规格 - ListFlavors](https://support.huaweicloud.com/api-flexusrds/rds_06_0002.html)响应消息[表3](https://support.huaweicloud.com/api-flexusrds/rds_06_0002.html#rds_06_0002__table66531170)中的"spec_code"。 |
  | volume            | Object | **参数解释：** volume信息。详情请参见[表14]。                                                                                                                                                             |
  | region            | String | **参数解释：** 区域ID。 **取值范围：** 与请求参数值相同。                                                                                                                             |
  | availability_zone | String | **参数解释：** 可用区ID。 **取值范围：** 与请求参数值相同。                                                                                                                            |
  | vpc_id            | String | **参数解释：** 虚拟私有云ID。 **取值范围：** vpc-default-smb                                                                                                                   |
  | subnet_id         | String | **参数解释：** 子网的网络ID信息。 **取值范围：** subnet-default-smb                                                                                                                  |
  | security_group_id | String | **参数解释：** 指定实例所属的安全组。 **取值范围：** sg-default-smb                                                                                                                |
  | charge_info       | Object | **参数解释：** 计费方式信息。详情请参见[表7]。                                                                                                                                                               |
     
   表11datastore字段数据结构说明 
  | 名称      | 是否必选 | 参数类型   | 说明                                                                                                                         |
  |:---|:---|:---|:---|
  | type    | 是    | String | **参数解释：** 数据库引擎。 **取值范围：** MySQL |
  | version | 是    | String | **参数解释：** 数据库版本。 **取值范围：** 5.7、8.0  |
     
   表12ha字段数据结构说明 
  | 名称               | 是否必选 | 参数类型   | 说明                                                                                                                                                                                                                                                                                                             |
  |:---|:---|:---|:---|
  | mode             | 是    | String | **参数解释：** 实例主备模式。 **取值范围：** HA，不区分大小写。                                                                                                                                                                               |
  | replication_mode | 是    | String | **参数解释：** 备机同步参数。 **取值范围：** - async：异步模式。  - semisync：半同步模式。   |
     
   表13backupStrategy字段数据结构说明 
  | 名称         | 是否必选 | 参数类型    | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
  |:---|:---|:---|:---|
  | start_time | 是    | String  | **参数解释：** 备份时间段。自动备份将在该时间段内触发。 **取值范围：** 非空，格式必须为hh:mm-HH:MM且有效，当前时间指UTC时间。 - HH取值必须比hh大1。  - mm和MM取值必须相同，且取值必须为00、15、30或45。   示例： - 08:15-09:15  - 23:00-00:00   如果请求体中"backup_strategy"为空，则响应体中 "start_time"默认返回"02:00-03:00"。 |
  | keep_days  | 否    | Integer | **参数解释：** 指定备份文件的可保存天数。 **取值范围：** 0～732。取值为0，表示关闭自动备份策略。如果需要延长保留时间请联系客服人员申请，自动备份最长可以保留2562天。 如果请求体中"backup_strategy"为空，则响应体中 "keep_days"默认返回"7"。                                                                                                                                                                                                                                                                                                                                                                                                               |
     
   表14volume字段数据结构说明 
  | 名称   | 是否必选 | 参数类型    | 说明                                                                                                                                                       |
  |:---|:---|:---|:---|
  | type | 是    | String  | **参数解释：** 磁盘类型。 **取值范围：** CLOUDSSD：区分大小写，表示SSD云盘，仅支持通用型和独享型规格实例。 |
  | size | 是    | Integer | **参数解释：** 磁盘大小。 **取值范围：** 40 GB\~4000 GB，必须为10的整数倍。               |
     
  ![](https://support.huaweicloud.com/api-flexusrds/public_sys-resources/note_3.0-zh-cn.png)
  响应样例中参数"region"和"availability_zone"的值为示例值。
  
- 正常响应样例 恢复FlexusRDS备份文件到新实例
  ```
  {
  "instance": {
  "id": "f5ffdd8b1c98434385eb001904209eacin01",
  "name": "demoname",
  "status": "BUILD",
  "datastore": {
  "type": "MySQL",
  "version": "5.7.31"
  },
  "port": "3306",
  "volume": {
  "type": "ULTRAHIGH",
  "size": "40"
  },
  "region": "aaa",
  "backup_strategy": {
  "start_time": "02:00-03:00",
  "keep_days": "7"
  },
  "flavor_ref": "rds.mysql.s1.large",
  "availability_zone": "bbb",
  "vpc_id": "19e5d45d-70fd-4a91-87e9-b27e71c9891f",
  "subnet_id": "bd51fb45-2dcb-4296-8783-8623bfe89bb7",
  "security_group_id": "23fd0cd4-15dc-4d65-bdb3-8844cc291be0"
  },
  "job_id": "bf003379-afea-4aa5-aa83-4543542070bc"
  }
  ```
  
- 异常响应 请参见[异常请求结果](https://support.huaweicloud.com/api-flexusrds/rds_01_0010.html)。
  
 
#### 状态码
- 正常 202
  
- 异常 请参见[状态码](https://support.huaweicloud.com/api-flexusrds/rds_10_0200.html)。
  
 
