调用CloneDBInstance接口将历史数据恢复至一个新实例(称为克隆实例)。
调用该接口时,实例必须满足以下条件,否则将操作失败:
- 实例状态为运行中。
- 实例当前没有正在执行的迁移任务。
- 实例已开启日志备份(用于按时间点恢复)。
- 若要按备份集克隆实例,则主实例必须至少有一个已完成备份的备份集。
实例内数据库账号信息克隆以及其他功能的设置克隆将遵循如下方式:
- 实例内的白名单设置、SQL洞察(SQL审计)设置、阈值报警设置、备份设置、参数设置将和当前实例状态保持一致。
- 实例内的数据信息、账号信息与备份文件或时间点当时信息一致。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | CloneDBInstance | 系统规定参数。取值:CloneDBInstance。 |
RegionId | String | 否 | cn-hangzhou | 地域ID。可以通过接口DescribeRegions查看地域ID。 |
ZoneId | String | 否 | cn-hangzhou-b | 主可用区ID。可以通过接口DescribeRegions查看可用区ID。 说明 默认为源实例的可用区。 |
DBInstanceClass | String | 否 | mysql.n1.micro.1 | 实例规格,详见实例规格表。 说明 默认规格和主实例一致。 |
DBInstanceStorage | Integer | 否 | 1000 | 实例存储空间,单位:GB。每5GB进行递增,详见实例规格表。 说明 默认存储空间和主实例一致。 |
DbNames | String | 否 | test1,test2 | 数据库名称,格式如下: |
PayType | String | 是 | Postpaid | 付费类型,取值:
|
InstanceNetworkType | String | 否 | VPC | 实例的网络类型,取值:
说明 默认网络类型和主实例一致。 |
DBInstanceId | String | 是 | rm-uf6wjk5xxxxxxxxxx | 实例ID。 |
BackupId | String | 否 | 902**** | 备份集ID。 您可以通过DescribeBackups接口获取备份列表。 说明 BackupId和RestoreTime两者至少传入一个。 |
RestoreTime | String | 否 | 2011-06-11T16:00:00Z | 备份保留周期内的任意时间点。格式:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。 说明 BackupId和RestoreTime两者至少传入一个。 |
VPCId | String | 否 | vpc-uf6f7l4fg90xxxxxxxxxx | 专有网络VPC ID。 说明 请确保VPC属于对应的地域。 |
VSwitchId | String | 否 | vsw-uf6adz52c2pxxxxxxxxxx | 虚拟交换机ID。虚拟交换机所在的可用区必须和ZoneId中传入的可用区ID相对应。
|
PrivateIpAddress | String | 否 | 172.XX.XXX.69 | 新实例的内网IP,需要在指定交换机的IP地址范围内。系统默认通过VPCId和VSwitchId自动分配。 |
UsedTime | Integer | 否 | 1 | 购买时长,取值:
说明 若付费类型为Prepaid则该参数必须传入。 |
Period | String | 否 | Year | 预付费实例为包年或者包月类型,取值:
说明 若付费类型为Prepaid则该参数必须传入。 |
Category | String | 否 | HighAvailability | 实例系列,取值:
|
ZoneIdSlave1 | String | 否 | cn-hangzhou-c | 备节点可用区ID。如果和ZoneId相同,则为单可用区部署;如果和ZoneId不同,则为多可用区部署。 |
ZoneIdSlave2 | String | 否 | cn-hangzhou-d |
备节点或日志节点可用区ID。如果和ZoneId相同,则为单可用区部署;如果和ZoneId不同,则为多可用区部署。 |
DBInstanceStorageType | String | 是 | cloud_essd | 实例存储类型,取值:
|
RestoreTable | String | 否 | 1 | 是否进行库表恢复,取值为1时表示进行库表恢复,否则不填。 |
TableMeta | String | 否 | [{"type":"db","name":"testdb1","newname":"testdb1_new","tables":[{"type":"table","name":"testdb1table1","newname":"testdb1table1_new"}]}] | 进行库表恢复时,指定恢复的库表信息。格式:
|
DedicatedHostGroupId | String | 否 | dhg-7a9xxxxxxxx | 专属集群ID。 |
BackupType | String | 否 | FullBackup | 备份类型,取值:
|
DeletionProtection | Boolean | 否 | true | 是否开启释放保护功能。取值:
默认值:false |
ServerlessConfig | Object | 否 | Serverless选项。仅在需要将数据克隆至Serverless实例时传入。 |
|
AutoPause | Boolean | 否 | true | 是否开启Serverless实例的自动启停功能。10分钟无任何连接进入暂停状态,连接进入时会自动唤醒。取值:
|
MaxCapacity | double | 否 | 8 | 实例RCU(RDS Capacity Unit)的自动扩缩范围最大值。 |
MinCapacity | double | 否 | 0.5 | 实例RCU(RDS Capacity Unit)的自动扩缩范围最小值。 |
SwitchForce | Boolean | 否 | false | 是否开启Serverless实例的强制弹性扩缩容。实例RCU的弹性扩缩容通常会立刻生效,但在某些特殊情况下无法即时完成扩缩容,此时可开启本参数进行强制扩缩容。取值:
|
返回数据
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
DBInstanceId | String | rm-uf6wjk5xxxxxxx | 实例ID。 |
RequestId | String | 1E43AAE0-BEE8-43DA-860D-EAF2AA0724DC | 请求ID。 |
OrderId | String | 100789370**** | 订单ID。 |
示例
请求示例
http(s)://rds.aliyuncs.com/?Action=CloneDBInstance
&RegionId=cn-hangzhou
&ZoneId=cn-hangzhou-b
&DBInstanceClass=mysql.n1.micro.1
&DBInstanceStorage=1000
&DbNames=test1,test2
&PayType=Postpaid
&InstanceNetworkType=VPC
&DBInstanceId=rm-uf6wjk5xxxxxxxxxx
&BackupId=902****
&RestoreTime=2011-06-11T16:00:00Z
&VPCId=vpc-uf6f7l4fg90xxxxxxxxxx
&VSwitchId=vsw-uf6adz52c2pxxxxxxxxxx
&PrivateIpAddress=172.XX.XXX.69
&UsedTime=1
&Period=Year
&Category=HighAvailability
&ZoneIdSlave1=cn-hangzhou-c
&ZoneIdSlave2=cn-hangzhou-d
&DBInstanceStorageType=cloud_essd
&RestoreTable=1
&TableMeta=[{"type":"db","name":"testdb1","newname":"testdb1_new","tables":[{"type":"table","name":"testdb1table1","newname":"testdb1table1_new"}]}]
&DedicatedHostGroupId=dhg-7a9xxxxxxxx
&BackupType=FullBackup
&DeletionProtection=true
&ServerlessConfig={"AutoPause":true,"MaxCapacity":8.0,"MinCapacity":0.5,"SwitchForce":false}
&公共请求参数
正常返回示例
XML
格式
HTTP/1.1 200 OK
Content-Type:application/xml
<CloneDBInstanceResponse>
<DBInstanceId>rm-uf6wjk5xxxxxxx</DBInstanceId>
<RequestId>1E43AAE0-BEE8-43DA-860D-EAF2AA0724DC</RequestId>
<OrderId>100789370****</OrderId>
</CloneDBInstanceResponse>
JSON
格式
HTTP/1.1 200 OK
Content-Type:application/json
{
"DBInstanceId" : "rm-uf6wjk5xxxxxxx",
"RequestId" : "1E43AAE0-BEE8-43DA-860D-EAF2AA0724DC",
"OrderId" : "100789370****"
}
错误码
HttpCode | 错误码 | 错误信息 | 描述 |
---|---|---|---|
400 | InvalidAvZone.Format | Specified AvZone is not valid. | 指定的AvZone不合法,请检查该参数的正确性。 |
400 | InvalidAvZone.NotSupport | Specified availableArea multiZone does not support in RDS. | 指定的availableArea multiZone在RDS中不支持。 |
400 | CannotDecreaseEssdPerfLevel | cannot decrease cloud essd performance level. | 存储类型变更校验失败,SQL Server云盘实例只能转为云盘,SSD只能升级到SSD或ESSD。 |
400 | CannotDecreaseEssdPerfLevel | invalid cloud essd storage size. | 云essd存储大小无效。 |
400 | InvalidIPAddress.Conflict | IP address conflict. | IP地址冲突。 |
400 | CDDC.AvailableHostsNotEnoughInZone | Not enough available hosts are in the target zone. | 目标可用区没有足够的主机资源,请在可用区中创建主机。 |
400 | InvalidInstanceLevel.DiskType | Specified instance level not support request disk type | 当前实例规格不支持该存储类型。 |
400 | InvalidRecoveryDbInstance.StorageType | The disk local_ssd can not clone to cloud disk type | 本地盘无法克隆为云盘 |
400 | InvalidRecoveryDbInstance.StorageSize | The disk space of the new instance cannot be less than that of the current instance | 操作失败,新实例的磁盘空间不能小于当前实例的空间。 |
403 | IncorrectMinorVersion | Current engine minor version does not support operations. | 当前引擎小版本不支持此操作。 |
403 | IncorrectCharacterType | Current DB instance character type does not support this operation. | 当前实例字符类型不支持此操作。 |
访问错误中心查看更多错误码。