调用CreateDBInstance接口创建RDS实例。

请确保在使用该接口前,已充分了解RDS产品的收费方式和价格。更多信息,请参见价格、收费项与计费方式

关于RDS实例的规格,请参见实例规格表

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String CreateDBInstance

系统规定参数,取值:CreateDBInstance

RegionId String cn-hangzhou

地域ID。可以通过接口DescribeRegions查看可用的地域ID。

Engine String MySQL

数据库类型,取值:

  • MySQL
  • SQLServer
  • PostgreSQL
  • MariaDB
说明 如需创建Serverless实例,请传入MySQL
EngineVersion String 5.6

数据库版本,取值:

  • MySQL:5.55.65.78.0
  • SQL Server:2008r208r2_ent_ha20122012_ent_ha2012_std_ha2012_web2014_std_ha2016_ent_ha2016_std_ha2016_web2017_std_ha2017_ent2019_std_ha2019_ent
  • PostgreSQL:10.011.012.013.014.0
  • MariaDB:10.3
说明 如需创建Serverless实例,请传入8.0
DBInstanceClass String rds.mysql.s1.small

实例规格。详情请参见主实例规格表。您也可以调用DescribeAvailableResource接口查询目标地域中可用的实例规格列表。

说明 如需创建Serverless实例,请传入mysql.n2.serverless.1c
DBInstanceStorage Integer 100

实例存储空间。单位:GB。每5GB进行递增,取值范围请参见实例规格表。您也可以调用DescribeAvailableResource接口查询目标实例规格中可用的存储空间范围。

SystemDBCharset String gbk

字符集。该参数已弃用。

DBInstanceNetType String Internet

实例的网络连接类型,取值:

  • Internet:公网连接。
  • Intranet:内网连接。
DBInstanceDescription String 测试数据库

实例名称。长度为2~255个字符。以中文、英文字母开头,可以包含数字、中文、英文、下划线(_)、短横线(-)。

说明 不能以 http:// 和 https:// 开头。
SecurityIPList String 10.10.XX.XX/24

该实例的IP白名单。多条记录请以半角逗号(,)隔开,不可重复,最多1000条记录。支持如下两种格式:

  • IP地址形式,例如:10.10.XX.XX。
  • CIDR形式,例如:10.10.XX.XX/24(无类域间路由,24表示了地址中前缀的长度,范围为1~32)。
ClientToken String ETnLKlblzczshOTUbOCz*****

用于保证请求的幂等性,防止重复提交请求。由客户端生成该参数值,要保证在不同请求间唯一,最大值不超过64个ASCII字符,且该参数值中不能包含非ASCII字符。

PayType String Postpaid

实例的付费类型,取值:

  • Postpaid:后付费(按量付费)。
  • Prepaid:预付费(包年包月)。
  • Serverless:Serverless付费类型,仅支持MySQL实例。更多信息,请参见MySQL Serverless实例简介
    说明 系统会自动生成订单并自动完成支付,无需手动确认支付。
ZoneId String cn-hangzhou-b

主节点可用区ID。

说明
  • 指定了VPC和交换机时,此处必须传入目标交换机所在的可用区ID,否则无法创建成功。
  • 对于高可用版实例,还需传入ZoneIdSlave1,以此决定实例是单可用区部署还是多可用区部署。
  • 对于三节点企业版实例,还需传入ZoneIdSlave1ZoneIdSlave2,以此决定实例是单可用区部署还是多可用区部署。
ZoneIdSlave1 String cn-hangzhou-c

备节点可用区ID。如果和ZoneId相同,则为单可用区部署;如果和ZoneId不同,则为多可用区部署。

ZoneIdSlave2 String cn-hangzhou-d

日志节点可用区ID。如果和ZoneId相同,则为单可用区部署;如果和ZoneId不同,则为多可用区部署。

InstanceNetworkType String Classic

实例的网络类型,取值:

  • VPC:专有网络。
  • Classic:经典网络(默认)。
说明
  • MySQL云盘实例只支持专有网络,此参数必须配置为VPC
  • PostgreSQL和MariaDB TX实例只支持专有网络,此参数必须配置为VPC
  • SQL Server单机版和Web版实例支持经典网络和专有网络。其余实例只支持专有网络,此参数必须配置为VPC
ConnectionMode String Standard

实例的访问模式,取值:

  • Standard:标准访问模式。
  • Safe:数据库代理模式。

默认为RDS系统分配。

说明 SQL Server 2012/2016/2017只支持标准访问模式。
VPCId String vpc-*****

专有网络(VPC) ID。

说明 网络类型InstanceNetworkType取值为VPC时生效。
VSwitchId String vsw-*****

虚拟交换机(vSwitch) ID。虚拟交换机所在的可用区必须和ZoneId中传入的可用区ID相对应。

说明 需要网络类型InstanceNetworkType=VPC
PrivateIpAddress String 172.16.XX.XX

设置实例的内网IP。需要在指定交换机的IP地址范围内。系统默认通过VPCIdvSwitchId自动分配。

UsedTime String 2

指定购买时长,取值:

  • 当参数Period=Year时,UsedTime取值为1~5
  • 当参数Period=Month时,UsedTime取值为1~11
说明 若付费类型为Prepaid则该参数必须传入。
Period String Year

指定预付费实例为包年或者包月类型,取值:

  • Year:包年。
  • Month:包月。
说明 若付费类型为Prepaid则该参数必须传入。
ResourceGroupId String rg-acfmy*****

资源组ID。

DBInstanceStorageType String cloud_essd

实例存储类型,取值:

  • local_ssd:本地SSD盘(推荐)。
  • cloud_ssd:SSD云盘(不推荐,部分地域已经停止售卖)。
  • cloud_essd:ESSD PL1云盘。
  • cloud_essd2:ESSD PL2云盘。
  • cloud_essd3:ESSD PL3云盘。
说明 本参数的默认值根据DBInstanceClass参数中传的规格代码自动判断:
  • 规格代码为本地盘规格:默认值为local_ssd
  • 规格代码为云盘规格:默认值为cloud_essd
BusinessInfo String 121436975448952

业务扩展参数。

EncryptionKey String 0d24*****-da7b-4786-b981-9a164dxxxxxx

同地域内的云盘加密的密钥ID。您可以在密钥管理服务控制台查看密钥ID,也可以创建新的密钥。详情请参见创建密钥

说明 传入此参数表示开启云盘加密(开启后无法关闭),并且需要传入RoleARN
RoleARN String acs:ram::1406xxxxxx:role/aliyunrdsinstanceencryptiondefaultrole

主账号授权RDS云服务账号访问KMS权限的全局资源描述符(ARN)。您可以在RAM访问控制台复制ARN的内容。

说明 在控制台自助授权请参见授权RDS访问KMS
AutoRenew String true

实例是否自动续费,仅在创建包年包月实例时传入,取值:

  • true
  • false
说明
  • 按月购买,则自动续费周期为1个月。
  • 按年购买,则自动续费周期为1年。
Category String HighAvailability

实例系列,取值:

  • Basic:基础版。
  • HighAvailability:高可用版。
  • AlwaysOn:集群版。
  • Finance:三节点企业版。
  • Serverless_basic:Serverless基础版。
DedicatedHostGroupId String dhg-4n*****

专属集群主机组ID。

在专属集群内创建RDS实例时需要指定。

说明
TargetDedicatedHostIdForMaster String i-bp*****1

专属集群中主实例的主机ID。

在专属集群内创建RDS实例时需要指定。如不指定该参数,系统默认自动分配主机。

说明
TargetDedicatedHostIdForSlave String i-bp*****2

专属集群中备实例的主机ID。

在专属集群内创建RDS高可用版或三节点企业版实例时需要指定。如不指定该参数,系统默认自动分配主机。

说明
TargetDedicatedHostIdForLog String i-bp*****3

专属集群中日志实例的主机ID。

在专属集群内创建RDS三节点企业版实例时需要指定。如不指定该参数,系统默认自动分配主机。

说明
DBParamGroupId String rpg-sys-*****

参数模板ID。可调用DescribeParameterGroups查询。

说明
  • 如需创建MySQL基础版X-Engine实例,请调用上述接口,在返回结果中找到mysql_xengine_8.0_basic_normal_safe的系统模板ID并传入本参数。
  • 如需创建MySQL高可用版X-Engine的实例,请调用上述接口,在返回结果中找到mysql_xengine_8.0_standard_normal_safe的系统模板ID并传入本参数。
DBTimeZone String +08:00

设置实例的时区,仅在EngineMySQLPostgreSQL时生效。

  • EngineMySQL
    • 此参数配置UTC时区。取值范围为-12:59 ~ +13:00
    • 本地SSD盘实例可以使用命名时区,例如Asia/Hong_Kong。命名时区的详细信息,请参见命名时区参考
  • EnginePostgreSQL
    • 此参数配置命名时区,不支持UTC时区。命名时区的详细信息,请参见命名时区参考
    • 仅当实例为PostgreSQL云盘时,该参数可配置。
说明
  • 购买主实例时支持设置时区,只读实例不支持设置时区,只读实例将继承主实例时区。
  • 如果不配置此参数,系统将根据您购买实例的地域,选择默认时区。
DBIsIgnoreCase String true

表名是否区分大小写,取值:

  • true:不区分大小写(默认)。
  • false:区分大小写。
TargetMinorVersion String rds_20200229

指定创建的RDS实例的内核小版本,仅在创建MySQL或PostgreSQL实例时需要传入。

格式:

  • MySQL:<实例版本>_<数字版本号>。例如rds_20200229xcluster_20200229xcluster80_20200229。说明如下:
    • rds:高可用版或基础版。
    • xcluster:MySQL 5.7三节点企业版。
    • xcluster80:MySQL 8.0三节点企业版。
说明 数字版本号可通过调用DescribeDBMiniEngineVersions接口查询。各版本差异,请参见AliSQL 小版本Release Notes
说明 如果基础资源配置中选中了启用Babelfish,则RDS PostgreSQL实例小版本格式为:rds_postgres_大版本00_AliPG内核小版本_babelfish
StorageAutoScale String Disable

存储空间自动扩容开关,取值:

  • Enable:开启。
  • Disable:关闭(默认)。
说明 您也可以在实例创建完成之后,调用ModifyDasInstanceConfig进行调整。更多信息,请参见设置存储空间自动扩容
StorageThreshold Integer 50

存储空间自动扩容触发阈值(百分比),取值:

  • 10
  • 20
  • 30
  • 40
  • 50
说明 StorageAutoScaleEnable时该参数必填。
StorageUpperBound Integer 2000

存储空间自动扩容的总存储空间上限值,即自动扩容不会导致实例总存储空间超过该值。单位:GB。

  • 取值需大于等于0。
  • StorageAutoScaleEnable时必填。
DryRun Boolean false

是否对本次创建实例的操作执行预检查,取值:

  • true:执行预检查操作,不创建实例。检查项目包含请求参数、请求格式、业务限制和库存等。
  • false:发送正常请求,通过检查后直接创建实例(默认)。
UserBackupId String 67798*****

用户备份ID。可调用ListUserBackupFiles接口查询。传入该参数,可基于用户备份创建实例。

说明 如需传入此参数,有如下限制:
  • PayType参数必须为Postpaid
  • Engine参数必须为MySQL
  • EngineVersion参数必须为5.7
  • Category参数必须为Basic
Amount Integer 2

指定需要创建的RDS MySQL实例数量。本参数仅适用于批量创建RDS MySQL实例。

取值范围:1~20;默认值:1

说明
  • 创建多个RDS MySQL实例时,可以考虑通过Tag.KeyTag.Value参数给同一批次的实例打上标签,以方便创建完成后通过标签管理该批次的实例。
  • 完成多个RDS MySQL实例的创建后,接口只会返回TaskIdRequestIdMessage参数,不会返回其他详情参数。如需查询个体实例的详情,可调用DescribeDBInstanceAttribute接口。
  • engine参数非MySQL,而本参数的值大于1时,接口会调用失败并返回错误码InvalidParam.Engine
CreateStrategy String Atomicity

批量创建实例策略。本参数仅在Amount参数大于1时生效,取值:

  • Atomicity:原子性。即同一批次的实例要么全部创建成功,若有一个创建失败,则所有实例创建失败。
  • Partial:非原子性。即实例的创建不受同一批次中其他实例的影响。
说明 默认值:Atomicity
Tag.N.Key String testkey1

标签键。传入此参数为实例绑定标签。

说明
  • 若传入的标签键已存在,则直接为实例绑定该标签键。可调用ListTagResources查询已创建的标签。
  • 若传入的标签键不存在,则先创建再为实例绑定该标签键。
  • 不允许传入空字符串。
  • 该参数与Tag.Value参数为配套参数,不可单独使用。
Tag.N.Value String testvalue1

标签键对应的标签值。传入此参数为实例绑定标签。

说明
  • 若对应的标签键中存在传入的标签值,则直接为实例绑定该标签值。可调用ListTagResources查询已创建的标签。
  • 若对应的标签键中不存在传入的标签值,则先创建再为实例绑定该标签值。
  • 该参数与Tag.Key参数为配套参数,不可单独使用。
DeletionProtection Boolean true

是否开启RDS释放保护功能,取值:

  • true:开启。
  • false:关闭(默认)。
BabelfishConfig String {"babelfishEnabled":"true","migrationMode":"single-db","masterUsername":"babelfish_user","masterUserPassword":"Babelfish123!"}

Babelfish for RDS PostgreSQL配置信息。

配置格式:{"babelfishEnabled":"true","migrationMode":"xxxxxxx","masterUsername":"xxxxxxx","masterUserPassword":"xxxxxxxx"}

参数含义如下:

  • babelfishEnabled:是否开启Babelfish,开启为true,该参数不配置默认不开启。
  • migrationMode:数据库模式,单数据库模式配置为single-db,多数据库模式配置为multi-db
  • masterUsername:初始化管理账号。由小写字母、数字、下划线组成,以字母开头,以字母或数字结尾,最多63个字符,且不能以pg开头。
  • masterUserPassword:管理账号的密码。由大写、小写、数字、特殊字符组成,至少包含三种,长度为8-32位;特殊字符包括! @ # $ % ^ & * () _ + - =
说明 该参数仅适用于RDS PostgreSQL实例,Babelfish for RDS PostgreSQL的更多介绍,请参见Babelfish简介
ServerlessConfig Object

RDS Serverless实例的相关设置。创建Serverless实例时必传。

说明 Serverless相关配置仅适用于RDS MySQL实例。
MaxCapacity double 8

实例RCU(RDS Capacity Unit)自动扩缩范围的最大值。取值:0.5~8

说明 该参数的值必须大于等于MinCapacity
MinCapacity double 0.5

实例RCU自动扩缩范围的最小值。取值:0.5~8

说明 该参数的值必须小于等于MaxCapacity
AutoPause Boolean true

是否开启Serverless实例的智能暂停和启动。取值:

  • true:启用。
  • false:不启用(默认)。
说明 如果10分钟无任何连接将进入暂停状态,当连接进入时会自动唤醒。
SwitchForce Boolean false

是否开启Serverless实例的强制弹性扩缩容。取值:

  • true:启用。
  • false:不启用(默认)。
说明
  • 开启该参数后,实例进行强制扩缩容时会有1分钟以内的闪断,请根据实际情况谨慎使用。
  • 实例RCU的弹性扩缩容通常会立刻生效,但在某些特殊情况下(例如大事务执行中)无法即刻完成扩缩容,此时可开启本参数进行强制扩缩容。
ConnectionString String rm-uf6wjk5*****.mysql.rds.aliyuncs.com

数据库连接地址。

说明 参数DBInstanceNetType决定该地址为内网或外网。

返回数据

名称 类型 示例值 描述
DryRunResult Boolean true

创建实例预检查是否通过。返回值:

  • true:通过
  • false:未通过
    说明
    • 如不执行预检查,则不返回该参数。
    • 如预检查未通过,则返回对应错误。
TagResult Boolean true

实例是否成功绑定标签。返回值:

  • true:成功。
  • false:失败。
说明 如不为实例绑定标签,则不返回该参数。
RequestId String 1E43AAE0-BEE8-43DA-860D-EAF2AA0724DC

请求ID。

ConnectionString String rm-uf6wjk5*****.mysql.rds.aliyuncs.com

数据库连接地址。

说明 参数DBInstanceNetType决定该地址为内网或外网。
Message String Batch Create DBInstance Task Is In Process.

批量创建任务的提示信息。

说明 该参数仅在Amount参数大于1时返回。
DBInstanceId String rm-uf6wjk5*****

实例ID。若给Amount参数指定大于1的值, 将返回与该值对应的实例ID个数,以逗号分隔。

例如Amount参数为3,则返回3个实例ID。示例:

rm-uf6wjk5*****1,rm-uf6wjk5*****2,rm-uf6wjk5*****3
Port String 3306

数据库连接端口。

说明 参数DBInstanceNetType决定该端口为内网或外网。
TaskId String s2365879-a9d0-55af-fgae-f2*****

批量创建任务的任务ID。

说明
  • 仅在Amount参数大于1时返回。
  • 当前暂不支持通过TaskId的值查看任务。
DryRun Boolean true

表示当前请求需要在创建实例前执行预检查。

说明
  • 返回值固定为true
  • 如不执行预检查,则不返回该参数。
OrderId String 1007893702*****

订单ID。

说明 使用新版SDK包调用本接口时,由于SDK内部的客户端默认超时时间和服务端的不一致,因此可能返回请求超时的错误,但实际上接口已调用成功。如需避免这个问题,您可以在调用前设置ReadTimeout参数为20000。
设置调用超时时间

示例

请求示例

http(s)://rds.aliyuncs.com/?Action=CreateDBInstance
&RegionId=cn-hangzhou
&Engine=MySQL
&EngineVersion=5.6
&DBInstanceClass=rds.mysql.s1.small
&DBInstanceStorage=100
&DBInstanceNetType=Internet
&PayType=Postpaid
&SecurityIPList=10.23.XX.XX/24
&<公共请求参数>

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<CreateDBInstanceResponse>
    <OrderId>1007893702*****</OrderId>
    <ConnectionString>rm-uf6wjk5*****.mysql.rds.aliyuncs.com</ConnectionString>
    <DBInstanceId>rm-uf6wjk5*****</DBInstanceId>
    <Port>3306</Port>
    <RequestId>1E43AAE0-BEE8-43DA-860D-EAF2AA0724DC</RequestId>
</CreateDBInstanceResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "OrderId" : "1007893702*****",
  "ConnectionString" : "rm-uf6wjk5*****.mysql.rds.aliyuncs.com",
  "DBInstanceId" : "rm-uf6wjk5*****",
  "Port" : 3306,
  "RequestId" : "1E43AAE0-BEE8-43DA-860D-EAF2AA0724DC"
}

错误码

HttpCode 错误码 错误信息 描述
400 InvalidInstanceLevel.DiskType Specified instance level not support request disk type 当前实例规格不支持该存储类型。
400 RR309 We have detected a security risk with your payment method. Please proceed with verification via the link in your email or console message and re-submit your order after verification. 我们检测到您的付款方式存在安全风险。请通过电子邮件或控制台消息中的链接继续验证,并在验证后重新提交订单。
400 InvalidZoneId.NotSupported The Specified vpc Zone not supported. 当前可用区不支持创建VPC网络类型实例,请更换可用区。
400 InvalidZone.NotSupportedForStorageType The specified zone is closed or invalid for Specified DBInstanceStorageType. 指定的区域已关闭或对于指定的DBInstanceStorageType无效。
400 InvalidZone.NotSupported The Specified Zone not supported. 区域无效。
400 InvalidEssdStorageSize invalid cloud essd storage size. 云盘存储规格有误,请检查存储规格配置。
400 IncompleteAccountInfo Your information is incomplete. Complete your information before the operation. 操作失败,账号信息中带*为必填项,请补充填写。路径:账号中心-基本信息。
400 IncompleteTaxInfo Your tax information is incomplete. Complete your information before the operation. 操作失败,税务信息尚未完善。请补充信息。
400 InvalidPaymentMethod.Incomplete No payment method is specified for your account. We recommend that you add a payment method. 您的账户暂无有效支付方式,请添加支付方式。
400 InvalidPaymentMethod.Missing No payment method is specified for your account. We recommend that you add a payment method. 您的账户暂无有效支付方式,请添加支付方式。
400 InsuffcientBalanceOrBankAccount Add a payment method or add funds to the prepayment balance. Get started by creating an instance. 当前账户暂无有效支付方式,请添加支付方式或给预付款充值。
400 VswitchIpExhausted Vswitch IP exhausted. 操作失败,vSwitch IP耗尽。
400 InvalidPrivateIpAddress.AlreadyUsed The specified IP is already used. ip已被使用。
400 InvalidConcurrentOperate Concurrent operation is detected. 存在并发操作,请等待上一操作完成后再重试。
400 ZoneId.NotMatchWithCategory The number of ZoneId specified does not match with category. 可用区数量与数据库类型或实例系列不匹配。请重新设置。
400 InvalidSecurityIPList.Format The specified parameter securityIPList is not valid. 指定的安全IP列表格式不符合要求,请检查格式规范。
400 InvalidEngineVersion.Malformed The specified parameter EngineVersion is not valid. 数据库引擎版本无效,请确认后重试。
400 CreditPayInsufficientBalance Insufficient credit pay limit. Please contact your channel partner to increase the limit. 额度不足,请联系您的渠道合作伙伴提升额度。
400 InvalidTagKey.Malformed The Tag.N.Key parameter is empty. Tag.N.Key参数为空
400 InvalidTagValue.Malformed The Tag.N.Value parameter is empty. Tag.N.Value参数为空
400 Duplicate.TagKey The Tag.N.Key contains duplicate keys. Tag.N.Key包含重复键
400 NumberExceed.Tags The maximum number of Tags is exceeded. The maximum is 20. 标签参数数量超过限制,有效数量:20。
400 MissingParameter.ResourceIds The parameter ResourceIds.N must not be null. 参数ResourceIds.N不能为空。
400 InvalidParameter.TagKey The Tag.N.Key parameter is invalid. Tag.N.Key参数无效.
400 InvalidParameter.TagValue The Tag.N.Value parameter is invalid. Tag.N.Value参数无效。
400 NoPermission.SystemTag You have no permission to use system tags. 不能使用系统标签。
400 InvalidParam.Amount Amount is allowed from 1 to 20. 数量支持1到20的数值。
400 InvalidParam.CreateStrategy Only Atomicity and Partial are allowed. 只支持Atomicity和Partial参数
401 CannotDecreaseEssdPerfLevel cannot decrease cloud essd performance level. 存储类型变更校验失败,SQL Server云盘实例只能转为云盘,SSD只能升级到SSD或ESSD。
403 AliCroup2CloudUserCannotBuyNotInnerCommodity There is no group cloud commodity label, and users within the group are not allowed to purchase. 无集团上云商品标签,不允许集团内部用户购买。

访问错误中心查看更多错误码。