ALIYUN::RDS::DBInstance

ALIYUN::RDS::DBInstance类型用于创建RDS数据库实例。

语法

{
  "Type": "ALIYUN::RDS::DBInstance",
  "Properties": {
    "PeriodType": String,
    "Category": String,
    "PrivateIpAddress": String,
    "ResourceGroupId": String,
    "TargetDedicatedHostIdForSlave": String,
    "DBInstanceNetType": String,
    "DBTimeZone": String,
    "DedicatedHostGroupId": String,
    "EncryptionKey": String,
    "PreferredBackupPeriod": List,
    "SecurityIPList": String,
    "SecurityGroupId": String,
    "DBIsIgnoreCase": Integer,
    "DBInstanceStorage": Integer,
    "DBMappings": List,
    "Port": Integer,
    "ConnectionStringPrefix": String,
    "ConnectionStringType": String,
    "MultiAZ": Boolean,
    "MaintainTime": String,
    "Engine": String,
    "DBParamGroupId": String,
    "DBInstanceDescription": String,
    "Tags": Map,
    "TargetDedicatedHostIdForMaster": String,
    "EngineVersion": String,
    "ZoneId": String,
    "DBInstanceClass": String,
    "AllocatePublicConnection": Boolean,
    "PreferredBackupTime": String,
    "VSwitchId": String,
    "BackupPolicyMode": String,
    "Period": Integer,
    "PayType": String,
    "DBInstanceStorageType": String,
    "RoleARN": String,
    "MasterUserPassword": String,
    "MasterUserType": String,
    "VpcId": String,
    "MasterUsername": String,
    "ConnectionMode": String,
    "BackupRetentionPeriod": Number,
    "TargetDedicatedHostIdForLog": String,
    "SlaveZoneIds": List,
    "AutoRenew": Boolean,
    "SQLCollectorStatus": String,
    "SSLSetting": String,
    "LogBackupFrequency": String,
    "EnableBackupLog": Boolean,
    "ReleasedKeepPolicy": String,
    "ArchiveBackupRetentionPeriod": Integer,
    "ArchiveBackupKeepPolicy": String,
    "ArchiveBackupKeepCount": Integer,
    "LogBackupRetentionPeriod": Integer,
    "HighSpaceUsageProtection": String,
    "LocalLogRetentionSpace": Integer,
    "BackUpCategory": String,
    "CompressType": Integer,
    "LocalLogRetentionHours": Integer,
    "LogBackupLocalRetentionNumber": Integer,
    "ServerlessConfig": Map,
    "InstanceNetworkType": String,
    "StorageAutoScale": String,
    "StorageUpperBound": Number,
    "StorageThreshold": Number,
    "BurstingEnabled": Boolean,
    "IoAccelerationEnabled": String,
    "ColdDataEnabled": Boolean
  }
}

属性

属性名称

类型

必须

允许更新

描述

约束

ResourceGroupId

String

资源组ID。

Engine

String

数据库类型。

取值:

  • MySQL

  • SQLServer

  • PostgreSQL

  • PPAS

  • MariaDB

DBInstanceStorage

Integer

数据库存储空间。

取值:

  • MySQL:5~1000。

  • SQLServer:10~1000。

  • PostgreSQL:5~2000。

  • PPAS:5~2000。

单位:GB。

说明

每5 GB进行递增。

EngineVersion

String

数据库版本号。

取值:

  • MySQL:5.5、5.6、5.7、8.0。

  • SQLServer:2008r2、08r2_ent_ha、2012、2012_ent_ha、2012_std_ha、2012_web、2014_std_ha、2016_ent_ha、2016_std_ha、2016_web、2017_std_ha、2017_ent、2019_ent。

  • PostgreSQL:9.4、10.0、11.0、12.0。

  • PPAS:9.3、10.0。

  • MariaDB:10.3。

Port

Integer

实例端口。

ConnectionStringPrefix

String

连接地址的前缀。

连接地址前缀以小写字母开头,以小写字母或数字结尾,可包含小写字母、数字和连字符(-)。

连接地址前缀至少包含8个字符、连接地址总长度(前缀+后缀)不得超过63个字符。

ConnectionStringType

String

连接地址的类型。

取值:

  • Inner:内网。

  • Public:公网。

DBTimeZone

String

UTC时区。

取值范围:-12:59~+13:00。

说明
  • 如果不指定该参数,默认时区为地域默认时区。

  • 本地SSD盘实例可以命名时区。

DBParamGroupId

String

参数模板ID。

Category

String

实例系列。

取值:

  • Basic:基础版。

  • HighAvailability:高可用版。

  • AlwaysOn:集群版。

  • Finance:三节点企业版。

说明

使用参数查询功能时,ZoneId,DBInstanceStorageType,Category建议必填,否则会导致校验不完全。

TargetDedicatedHostIdForMaster

String

在专属集群内创建实例时,指定主实例的主机ID。

DBIsIgnoreCase

Integer

表名是否区分大小写。

取值:

  • 0:区分大小写。

  • 1(默认值):不区分大小写。

EncryptionKey

String

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

传入该参数表示开启云盘加密(开启后无法关闭),并且需要传入RoleARN。

MaintainTime

String

实例的可维护时间段。

格式:HH:mmZ-HH:mmZ(UTC时间)。

TargetDedicatedHostIdForSlave

String

在专属集群内创建实例时,指定备份实例的主机ID。

DedicatedHostGroupId

String

在专属集群内创建实例时,指定专属集群ID。

DBInstanceStorageType

String

实例存储类型。

实例存储类型,取值:

  • local_ssd:本地 SSD 盘(推荐)。

  • cloud_ssd:SSD 云盘(不推荐,部分地域已经停止售卖)。

  • cloud_essd:ESSD PL1 云盘。

  • cloud_essd2:ESSD PL2 云盘。

  • cloud_essd3:ESSD PL3 云盘。

  • general_essd:通用云盘。

本参数的默认值根据DBInstanceClass参数中传的规格代码自动判断:

  • 规格代码为本地盘规格:默认值为local_ssd

  • 规格代码为云盘规格:默认值为cloud_essd

说明

使用参数查询功能时,ZoneId,DBInstanceStorageType,Category建议必填,否则会导致校验不完全。

Serverless 实例仅支持 ESSD PL1 云盘,必须传入cloud_essd

RoleARN

String

角色ARN。RDS通过该角色访问KMS。

更多信息,请参见授权PolarDB访问KMS

DBInstanceClass

String

实例规格。

更多信息,请参见主实例规格列表

SecurityIPList

String

允许访问该实例下所有数据库的IP白名单。

多个IP以半角逗号(,)间隔,不可以重复。最多支持1000个。

支持格式:

  • IP地址形式,例如:10.23.XX.XX。

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

SecurityGroupId

String

关联的安全组ID。

最多支持关联3个安全组,多个安全组用半角逗号(,)隔开。清空安全组请指定空字符串。

MultiAZ

Boolean

该数据库实例是否支持多可用区。

取值:

  • true:支持多可用区。

  • false:不支持多可用区。

说明

使用参数查询功能时,MultiAZ建议设置为 false,否则会导致校验不完全。

VpcId

String

专有网络ID。

DBMappings

List

实例下创建新的数据库。

更多信息,请参见DBMappings属性

DBInstanceDescription

String

实例的描述或备注信息。

长度为2~256个字符。以英文字母或汉字开头,不能以http://https://开头。可包含汉字、英文字母、数字、下划线(_)和短划线(-)。

ConnectionMode

String

数据库的连接模式。

取值:

  • Standard:标准访问模式。

  • Safe:高安全访问模式。

如果未指定该参数,则默认由RDS系统分配。

说明

SQL Server 2012/2016/2017只支持标准访问模式。

MasterUsername

String

数据库实例的主账号名称。

名称需要全局唯一。长度不超过16个字符。以英文字母开头,可包含英文字母、数字和下划线(_)。

MasterUserPassword

String

数据库实例的主账号密码。

长度为8~32个字符。可包含英文字母、数字和下划线(_)。

ZoneId

String

可用区ID。

说明

使用参数查询功能时,ZoneId,DBInstanceStorageType,Category建议必填,否则会导致校验不完全。

DBInstanceNetType

String

数据库实例的网络类型。

取值

  • Internet:公网访问。

  • Intranet(默认值):私网访问。

VSwitchId

String

交换机ID。

多个值用半角逗号(,)隔开。

如果数据库类型为MariaDB,该参数必须指定。

BackupPolicyMode

String

备份类型。

取值:

  • DataBackupPolicy:数据备份。

  • LogBackupPolicy:日志备份。

AllocatePublicConnection

Boolean

是否申请实例的外网连接串。

取值:

  • true:申请实例的外网连接串。

  • false:不申请实例的外网连接串。

PreferredBackupTime

String

备份时间。

格式:HH:mmZ- HH:mmZ

取值:00:00Z-01:00Z、01:00Z-02:00Z、02:00Z-03:00Z、03:00Z-04:00Z、04:00Z-05:00Z、05:00Z-06:00Z、06:00Z-07:00Z、07:00Z-08:00Z、08:00Z-09:00Z、09:00Z-10:00Z、10:00Z-11:00Z、11:00Z-12:00Z、12:00Z-13:00Z、13:00Z-14:00Z、14:00Z-15:00Z、15:00Z-16:00Z、16:00Z-17:00Z、17:00Z-18:00Z、18:00Z-19:00Z、19:00Z-20:00Z、20:00Z-21:00Z、21:00Z-22:00Z、22:00Z-23:00Z、23:00Z-24:00Z。

BackupRetentionPeriod

Number

备份保留天数。

取值范围:7~30。

单位:天。

默认值:7。

PrivateIpAddress

String

VSwitchId下的私网IP。

如果不指定该参数,系统将自动分配私网IP。

PreferredBackupPeriod

List

备份周期。

取值:

  • Monday

  • Tuesday

  • Wednesday

  • Thursday

  • Friday

  • Saturday

  • Sunday

MasterUserType

String

主账号类型。

取值:

  • Normal(默认值):普通账号。

  • Super:高权限账号。

  • Sysadmin:管理员账号。

    说明

    管理员账号只支持SQLServer数据库。

Tags

Map

Tag列表,包括TagKey和TagValue。

TagKey不能为空,TagValue可以为空。

格式示例:{“key1”:”value1”,“key2”:””}

PeriodType

String

周期类型。

取值:

  • Month(默认值)

  • Year

PayType

String

实例的付费类型。

取值:

  • Postpaid:后付费,即按量付费。

  • Prepaid:预付费,即包年包月。

Period

Integer

预付费时长。

取值:

  • 当参数PeriodType取值为Year时:1~3。

  • 当参数PeriodType取值为Month:1~9。

TargetDedicatedHostIdForLog

String

在专属集群内创建实例时,指定日志实例的主机ID。

SlaveZoneIds

List

高可用版或三节点企业版的备可用区。

最多指定两个备可用区,例如: ["zone-b"]["zone-b", "zone-c"]

为每个主可用区或者备可用区指定一个交换机,例如:ZoneId="zone-a"并且SlaveZoneIds=["zone-c", "zone-b"],VSwitchID取值为

"vsw-zone-a,vsw-zone-c,vsw-zone-b"

SQLCollectorStatus

String

是否开启SQL洞察(SQL审计)。

取值:

  • Enable:开启SQL洞察。

  • Disabled:关闭SQL洞察。

SSLSetting

String

实例的安全套接层(SSL)链接设置。

取值:

  • Disabled(默认值):禁用SSL。

  • EnabledForPublicConnection:公网连接地址将受SSL证书保护。

    说明

    该参数取值为EnabledForPublicConnection时,AllocatePublicConnection取值必须为true。

  • EnabledForInnerConnection:私网连接地址将受SSL证书保护。

AutoRenew

Boolean

是否自动续费。

仅在创建包年包月实例时传入。

取值:

  • true:自动续费。

  • false:不自动续费。

说明
  • 按月购买,则自动续费周期为1个月。

  • 按年购买,则自动续费周期为1年。

LogBackupFrequency

String

日志备份频率。

取值:LogInterval,表示每30分钟备份一次。 LogBackupFrequency的默认值与数据备份周期PreferredBackupPeriod相同。

说明

参数LogBackupFrequency仅适用于SQL Server。

EnableBackupLog

Boolean

是否启用日志备份功能。

取值:

  • true:启用日志备份功能。

  • false:关闭日志备份功能

说明

当BackupPolicyMode参数设置为LogBackupPolicy时,必须指定该参数。

ReleasedKeepPolicy

String

实例释放后的归档备份保留策略。

取值:

  • Lastest:仅保留最后存档的备份。

  • All:保留所有已存档的备份。

ArchiveBackupRetentionPeriod

Integer

归档备份的保留天数。

取值范围:30~1095。

单位:天。

ArchiveBackupKeepPolicy

String

归档备份的保留周期。

取值:

  • ByMonth

  • ByWeek

  • KeepAll

ArchiveBackupKeepCount

Integer

归档备份的保留个数。

取值:

  • 当ArchiveBackupKeepPolicy取值为ByMonth时:1~31。

  • 当ArchiveBackupKeepPolicy取值为ByWeek时:1~7。

  • 当ArchiveBackupKeepPolicy取值为KeepAll时:无需指定该参数。

默认值:1。

LogBackupRetentionPeriod

Integer

日志备份保留天数。

取值范围:7~730。

日志备份保留期不能长于数据备份保留期。

说明

如果启用了日志备份功能,您可以指定日志备份的保留期限。

HighSpaceUsageProtection

String

指定当磁盘空间不足(实例超过80%或剩余空间少于5 GB)时是否强制删除日志备份文件 。

取值:

  • Enable

  • Disable

当BackupPolicyMode取值为LogBackupPolicy时,必须指定该参数。

LocalLogRetentionSpace

Integer

实例上允许存储日志备份文件的最大空间百分比。

取值范围:0~50。

如果日志备份文件的空间使用率超过该百分比,系统会提前删除记录备份文件,直到空间使用率降至此百分比以下。

说明

当BackupPolicyMode取值为LogBackupPolicy时,必须指定该参数。

BackUpCategory

String

是否开启秒级备份。

取值:

  • Flash:开启。

  • Standard:关闭。

CompressType

Integer

备份压缩方式。

取值:

  • 1:使用zlib工具将备份压缩到.tar.gz文件中。

  • 4:使用QuickLZ工具将备份压缩到.xb.gz文件中。仅当实例运行MySQL 5.6或5.7时,才支持此压缩格式。它可用于还原单个数据库和表。

  • 8:使用QuickLZ工具将备份压缩为.xb.gz文件。仅当实例运行MySQL 8.0时,才支持此压缩格式。它不能用于还原单个数据库或表。

LocalLogRetentionHours

Integer

本地日志备份保留小时数。

取值范围:0~168。

单位:小时。

0表示不在实例上保留日志备份文件。

说明

当BackupPolicyMode取值为LogBackupPolicy时,必须指定该参数。

LogBackupLocalRetentionNumber

Integer

实例上可以保留的日志备份文件数。

取值范围:6~100。

默认值:60。

ServerlessConfig

Map

RDS Serverless实例的相关设置。

更多信息,请参见ServerlessConfig属性

InstanceNetworkType

String

实例的网络类型。

取值:

  • VPC:专有网络。

  • Classic:经典网络。

说明

MySQL云盘实例只支持专有网络,此参数必须配置为VPC

PostgreSQL和MariaDB实例只支持专有网络,此参数必须配置为VPC

SQL Server单机版和Web版实例支持经典网络和专有网络。其余实例只支持专有网络,此参数必须配置为VPC

StorageAutoScale

String

存储空间自动扩容开关。

仅MySQL和PostgreSQL支持,取值:

  • Enable:开启。

  • Disable:关闭(默认)。

说明

您也可以在实例创建完成之后,调用ModifyDasInstanceConfig进行调整。更多信息,请参见设置存储空间自动扩容

StorageUpperBound

Number

存储空间自动扩容的总存储空间上限值。

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

说明

取值需大于等于 0。

StorageAutoScaleEnable时必填。

StorageThreshold

Number

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

取值:

  • 10

  • 20

  • 30

  • 40

  • 50

说明

StorageAutoScaleEnable时该参数必填。

BurstingEnabled

Boolean

通用云盘 IO 突发功能开关。

取值:

  • true:开启 IO 突发功能。

  • false:关闭 IO 突发功能。

说明

了解通用云盘的 IO 突发功能的更多信息,请参见什么是通用云盘

IoAccelerationEnabled

String

是否开启通用云盘 IO 加速功能。

取值:

  • 1:开启

  • 0:不开启

说明

通用云盘的 IO 加速功能的更多信息,请参见通用云盘IO加速功能

ColdDataEnabled

Boolean

通用云盘数据归档功能开关。

取值:

  • true:开启。

  • false:关闭。

通用云盘的数据归档功能信息,请参见通用云盘数据归档功能

ServerlessConfig语法

"ServerlessConfig": {
    "SwitchForce": Boolean,
    "MaxCapacity": Number,
    "MinCapacity": Number,
    "AutoPause": Boolean
  }

ServerlessConfig属性

属性名称

类型

必须

允许更新

描述

约束

SwitchForce

Boolean

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

取值:

  • true:开启。

  • false(默认):不开启。

说明
  • 开启该参数后,实例进行强制扩容和缩容时会有1分钟以内的闪断,请您根据实际情况谨慎使用。

  • 实例RCU的弹性扩容和缩容通常会立刻生效,但在某些特殊情况下(例如:大事务执行中)无法即刻完成扩容和缩容,此时可开启本参数进行强制扩容和缩容。

MaxCapacity

Number

实例RCU(RDS Capacity Unit)自动扩容和缩容范围的最大值。

取值:0.5~8。

说明

该参数的值必须大于等于MinCapacity参数。

MinCapacity

Number

实例RCU自动扩容和缩容范围的最小值。

取值:0.5~8。

说明

该参数的值必须小于等于MaxCapacity参数。

AutoPause

Boolean

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

取值:

  • true:开启。

  • false(默认):不开启。

说明

如果10分钟无任何连接将进入暂停状态,当连接进入时会自动唤醒。

DBMappings语法

"DBMappings": [
  {
    "DBDescription": String,
    "CharacterSetName": String,
    "DBName": String
  }
]

DBMappings属性

属性名称

类型

必须

允许更新

描述

约束

CharacterSetName

String

字符集。

取值:

  • MySQL类型:

    • utf8

    • gbk

    • latin1

    • utf8mb4(适用于5.5版和5.6版)

  • SQLServer类型:

    • Chinese_PRC_CI_AS

    • Chinese_PRC_CS_AS

    • SQL_Latin1_General_CP1_CI_AS

    • SQL_Latin1_General_CP1_CS_AS

    • Chinese_PRC_BIN

DBName

String

数据库名称。

名称需要全局唯一。

长度不超过64个字符。以英文字母开头,可包含英文字母、数字和下划线(_)。

DBDescription

String

数据库描述。

长度为2~256个字符。以英文字母或汉字开头,不能以http://https://开头。可包含汉字、英文字母、数字、下划线(_)和短划线(-)。

返回值

Fn::GetAtt

  • DBInstanceId:数据库实例ID。

  • InnerPort:数据库实例的内网端口。

  • InnerIPAddress:内网IP。

  • InnerConnectionString:内网连接地址。

  • PublicPort:数据库实例公网端口。

  • PublicConnectionString:公网连接地址。

  • PublicIPAddress:公网IP。

示例

YAML格式

ROSTemplateFormatVersion: '2015-09-01'
Description: Test RDS DBInstance
Parameters:
  VpcId:
    AssociationProperty: ALIYUN::ECS::VPC::VPCId
    Type: String
    Description:
      en: Please search the ID starting with (vpc-xxx) from console-Virtual Private Cloud
      zh-cn: 现有虚拟专有网络的实例ID
    Label:
      en: VPC ID
      zh-cn: 专有网络VPC实例ID
  VSwitchId:
    AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
    AssociationPropertyMetadata:
      VpcId: ${VpcId}
      ZoneId: ${VSwitchZoneId}
    Type: String
    Description:
      en: Instance ID of existing business network switches, console-Virtual Private Cloud-VSwitches under query
      zh-cn: 现有业务网络交换机的实例ID
    Label:
      en: VSwitch ID
      zh-cn: 交换机实例ID
Resources:
  RDSInstance:
    Type: ALIYUN::RDS::DBInstance
    Properties:
      VpcId:
        Ref: VpcId
      VSwitchId:
        Ref: VSwitchId
      EngineVersion: '5.6'
      DBInstanceClass: rds.mysql.s2.large
      SecurityIPList: 0.0.0.0/0
      DBInstanceStorage: 5
      Engine: MySQL
      DBMappings:
        - CharacterSetName: utf8
          DBName: DBTest
Outputs:
  DBInstanceId:
    Value:
      Fn::GetAtt:
        - RDSInstance
        - DBInstanceId

JSON格式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": "Test RDS DBInstance",
  "Parameters": {
    "VpcId": {
      "AssociationProperty": "ALIYUN::ECS::VPC::VPCId",
      "Type": "String",
      "Description": {
        "en": "Please search the ID starting with (vpc-xxx) from console-Virtual Private Cloud",
        "zh-cn": "现有虚拟专有网络的实例ID"
      },
      "Label": {
        "en": "VPC ID",
        "zh-cn": "专有网络VPC实例ID"
      }
    },
    "VSwitchId": {
      "AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
      "AssociationPropertyMetadata": {
        "VpcId": "${VpcId}",
        "ZoneId": "${VSwitchZoneId}"
      },
      "Type": "String",
      "Description": {
        "en": "Instance ID of existing business network switches, console-Virtual Private Cloud-VSwitches under query",
        "zh-cn": "现有业务网络交换机的实例ID"
      },
      "Label": {
        "en": "VSwitch ID",
        "zh-cn": "交换机实例ID"
      }
    }
  },
  "Resources": {
    "RDSInstance": {
      "Type": "ALIYUN::RDS::DBInstance",
      "Properties": {
        "VpcId": {
          "Ref": "VpcId"
        },
        "VSwitchId": {
          "Ref": "VSwitchId"
        },
        "EngineVersion": "5.6",
        "DBInstanceClass": "rds.mysql.s2.large",
        "SecurityIPList": "0.0.0.0/0",
        "DBInstanceStorage": 5,
        "Engine": "MySQL",
        "DBMappings": [
          {
            "CharacterSetName": "utf8",
            "DBName": "DBTest"
          }
        ]
      }
    }
  },
  "Outputs": {
    "DBInstanceId": {
      "Value": {
        "Fn::GetAtt": [
          "RDSInstance",
          "DBInstanceId"
        ]
      }
    }
  }
}

用户需要创建多可用区的RDS时,可以通过以下两种方式实现:

1.配置MultiAZ 为 true,ZoneId 设置为空,创建时会自动为RDS实例选择多可用区。

2.配置MultiAZ为 false 或者不配置MultiAZ,通过配置ZoneId+ZoneIdSlave的方式设置RDS多可用区。

更多示例,请参见创建数据库实例、创建管理数据库的账号、授权账号访问数据库、修改数据库参数列表、修改实例访问白名单、为某个实例创建一个只读实例和在实例下创建数据库的组合示例:YAML示例