调用UpgradeDBInstanceMajorVersion接口发起RDS PostgreSQL实例大版本升级任务。

大版本升级会保留原实例,并创建一个新版本的实例,新实例在创建中不收费,创建成功后将会产生费用,计费方式为按量付费。新实例暂不继承原实例优惠,请确保在使用该接口前,已充分了解RDS产品的收费方式和价格,根据实际情况选择是否升级。

大版本升级前,必须先调用UpgradeDBInstanceMajorVersionPrecheck接口执行大版本升级检查,并且调用DescribeUpgradeMajorVersionPrecheckTask接口查询升级检查报告,确保结果为Success后,才可以使用该接口。

调用该接口时,实例必须满足以下条件:

  • 版本:PostgreSQL 12、11、10、9.4
  • 系列:高可用版、基础版
  • 网络类型:专有网络。如果网络类型为经典网络,请先切换为专有网络。关于如何查看或切换网络类型,请参见切换网络类型
  • 实例不是只读实例或专属集群实例。
  • 实例ID不是以pg-cn开头。

升级数据库大版本会造成分钟级业务闪断等影响,请在业务低峰期进行升级,升级前请仔细阅读升级数据库大版本

调试

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

请求参数

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

系统规定参数。取值:UpgradeDBInstanceMajorVersion

DBInstanceClass String pg.n2.medium.2c

升级后实例规格。CPU和内存配置必须大于等于原实例规格。

例如,原实例规格pg.n2.small.2c的CPU为1核,内存为2GB,可升级为pg.n2.medium.2c,CPU为2核,内存为4 GB。

说明 RDS PG的实例规格代码,请参见RDS PostgreSQL主实例规格列表
DBInstanceStorage Integer 20

升级后实例存储空间。

单位:GB

取值范围:必须大于等于原实例的存储空间,最大为3200 GB。

PayType String Postpaid

计费方式。固定配置为按量付费,取值Postpaid。

说明 升级后如果需要变更实例的计费方式,请参见按量付费转包年包月
InstanceNetworkType String VPC

升级后实例网络类型。固定配置为VPC,当前只支持专有网络实例进行大版本升级。

如果网络类型为经典网络,请先切换为专有网络。关于如何查看或切换网络类型,请参见切换网络类型

SwitchTimeMode String Immediate

该参数与SwitchOver配合使用,只有SwitchOver参数取值为true时有效。表示割接时间。

取值范围:

  • Immediate:立即生效。
  • MaintainTime:在可运维时间段内生效,可调用ModifyDBInstanceMaintainTime接口修改可运维时间段。
SwitchTime String 2021-07-10T13:15:12Z

预留参数,无需配置。

SwitchOver String false

割接配置,系统将创建一个新实例进行数据迁移。请选择迁移后是否自动切换至新实例。

取值范围:

  • true:割接,自动切换。
  • false:不割接,不自动切换。此选项一般用于正式升级之前测试当前业务在新版本中的兼容性。
说明
  • 如果选择了割接:
    • 割接后无法回退,请谨慎选择。
    • 切换过程中,原实例会被变为只读,业务无法写入,请务必在业务低峰期进行。
    • 如果原实例中创建了只读实例,则无法选择割接。只能通过不割接升级实例,且原只读实例不会被克隆。升级完成后,您需要在新版本实例中另行创建PostgreSQL只读实例。
  • 如果选择了不割接:
    • 迁移过程中,原实例的业务不会受到影响。
    • 如需通过不割接升级实例,需在迁移完成后把应用程序中的数据库连接地址改为新实例的连接地址。如何查看连接地址,请参见查看或修改内外网地址和端口
CollectStatMode String After

选择在哪个时间点对数据库执行统计信息收集。

  • Before:表示割接前收集,可以保证业务稳定性。如果实例数据量太大可能会导致升级时间较久。
  • After:表示割接后收集,实例升级速度较快。升级后访问未生成统计信息的表可能导致执行计划不准确,业务高峰期还可能导致数据库宕机。
说明 对于不割接场景,割接前收集表示新实例开放读写前收集,割接后收集表示新实例开放读写后收集。
TargetMajorVersion String 13.0

升级后实例目标大版本。必须与执行升级前检查时设置的目标版本一致。

说明 可通过调用UpgradeDBInstanceMajorVersionPrecheck接口执行大版本升级前检查。
DBInstanceId String pgm-bp1gm3yh0ht1****

原实例ID。

VPCId String vpc-bp1opxu1zkhn00gzv****

VPC ID。可以通过DescribeDBInstanceAttribute接口查看原实例的VPC ID。

VSwitchId String vsw-bp10aqj6o4lclxdrm****,vsw-bp10aqj6o4lclxdrm****
  • 当原实例为基础版实例时,配置目标实例交换机ID。
  • 当原实例为高可用版实例时,可以配置目标主备实例交换机ID,使用逗号(,)分隔。
说明 配置的目标实例交换机需要与原实例处于同一可用区。可调用DescribeVSwitches接口查询获取。
PrivateIpAddress String 172.16.XX.XX

无需配置,表示目标实例的内网IP。系统默认通过VPCId和vSwitchId自动分配。

UsedTime String 1

预留参数,无需配置。

Period String Month

预留参数,无需配置。

DBInstanceStorageType String cloud_essd

表示升级后实例的存储类型。

取值范围:

  • cloud_ssd:SSD云盘
  • cloud_essd:ESSD PL1云盘
  • cloud_essd2:ESSD PL2云盘
  • cloud_essd3:ESSD PL3云盘

版本升级功能基于云盘快照,当前升级后支持选择的存储类型如下。

  • 当原实例为SSD云盘时,可选SSD云盘。
  • 当原实例为ESSD云盘时,可选ESSD PL1云盘、ESSD PL2 云盘、ESSD PL3 云盘。
  • 当原实例为本地SSD盘时,可选ESSD PL1云盘、ESSD PL2 云盘、ESSD PL3 云盘。
ZoneId String cn-hangzhou-h

目标主可用区ID。可以通过DescribeRegions接口查看可用区ID。

RDS PostgreSQL支持升级后将新的实例配置到与原实例同一地域的其他可用区。

ZoneIdSlave1 String cn-hangzhou-h

仅当原实例为高可用版时,该参数可配置,表示目标实例备可用区ID。

RDS PostgreSQL支持升级后将新的备实例配置到与原实例同一地域的其他可用区。

可以通过DescribeRegions接口查看可用区ID。

ZoneIdSlave2 String cn-hangzhou-h

预留参数,无需配置。

返回数据

名称 类型 示例值 描述
DBInstanceId String pgm-bp1gm3yh0ht1****

实例ID。

RequestId String 006729E5-2A33-5955-89E3-651D3F44EBE6

请求ID。

OrderId String 21128667463****

订单ID。

TaskId Long 416980000

预留参数。

示例

请求示例

http(s)://rds.aliyuncs.com/?Action=UpgradeDBInstanceMajorVersion
&PayType=Postpaid
&<公共请求参数>

正常返回示例

XML格式

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

<UpgradeDBInstanceMajorVersion>
    <RequestId>006729E5-2A33-5955-89E3-651D3F44EBE6</RequestId>
    <DBInstanceId>pgm-bp1gm3yh0ht1****</DBInstanceId>
    <OrderId>21128667463****</OrderId>
</UpgradeDBInstanceMajorVersion>

JSON格式

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

{
  "RequestId" : "006729E5-2A33-5955-89E3-651D3F44EBE6",
  "DBInstanceId" : "pgm-bp1gm3yh0ht1****",
  "OrderId" : "21128667463****"
}

错误码

HttpCode 错误码 错误信息 描述
400 InvalidUpgradePrecheckResult The upgrade precheck failed. No successful precheck task found in the past 7 days 升级前置检查失败,无七天内预检查成功任务
400 TargetEngineVersion.Parameters.NotFound targetEngineVersion is missing in the request. 请求缺少目标数据库版本参数
400 InvalidDBInstanceStorageType The specified DBInstanceStorageType is invalid. 指定的数据库实例存储类型无效
400 InvalidInstanceNetworkType The specified InstanceNetworkType is invalid. 指定的实例网络类型无效
400 InvalidVPCId The specified VPCId is invalid. 指定的虚拟专有网络无效
400 InvalidDedicatedHostGroupId The specified DedicatedHostGroupId is invalid. 指定的专用主机组ID无效
400 InvalidPayType The specified PayType is invalid. 指定的付款类型无效
400 InvalidEngineVersion The specified EngineVersion is invalid. 指定的数据库版本号无效
400 InvalidDBInstanceStorage The specified DBInstanceStorage is invalid. 指定的数据库实例存储无效
400 InvalidSwitchOver The specified SwitchOver is invalid. 指定的割接模式无效
400 PrimaryInstanceWithReadonlyNotSupport The specified primary instance with the read-only instance does not support the operation. 具有只读实例的指定主实例不支持此操作
400 InvalidSwitchTimeMode The specified SwitchTimeMode is invalid. 指定的升级时间模式无效
400 InvalidSwitchTime The specified SwitchTime is invalid. 指定的割接时间无效
400 InvalidCollectStats The specified CollectStats is invalid. 指定的统计信息收集模式无效
400 IncorrectDBInstanceState The current instance state does not support this operation. 当前实例状态不支持此操作。
400 InvalidDBinstanceClass.ValueNotSupported The specified parameter DBinstanceClass is invalid. 指定的参数“实例规格”无效
404 InvalidDBInstanceName.NotFound The database instance does not exist. 数据库实例名称不存在。请确认数据名称是否正确。
404 IncorrectDBInstanceLockMode Current DB instance lock mode does not support this operation. 操作失败,实例处于锁定状态。

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