AWS RDS PostgreSQL 在线升级大版本

AWS CLI PostgreSQL About 2,459 words

查看升级版本

查看当前版本可以升级到哪些版本。

--engine-version指定当前PostgreSQL的版本。

aws rds describe-db-engine-versions --engine postgres --engine-version 15.17 \
  --query 'DBEngineVersions[].ValidUpgradeTarget[].[EngineVersion,IsMajorVersionUpgrade]' \
  --output table

输出

$ aws rds describe-db-engine-versions --engine postgres --engine-version 15.17 \
  --query 'DBEngineVersions[].ValidUpgradeTarget[].[EngineVersion,IsMajorVersionUpgrade]' \
  --output table
--------------------------
|DescribeDBEngineVersions|
+-----------+------------+
|  15.18    |  False     |
|  15.19    |  False     |
|  16.13    |  True      |
|  16.14    |  True      |
|  16.15    |  True      |
|  17.9     |  True      |
|  17.10    |  True      |
|  17.11    |  True      |
|  18.3     |  True      |
|  18.4     |  True      |
|  18.6     |  True      |
+-----------+------------+

查看配置参数

如果输出default.postgresxx,则不用备份参数配置。

aws rds describe-db-instances --db-instance-identifier <instance-id> \
  --query 'DBInstances[0].[DBParameterGroups[0].DBParameterGroupName,BackupRetentionPeriod]'

输出

$ aws rds describe-db-instances --db-instance-identifier test-postgres-eujga12345 \
  --query 'DBInstances[0].[DBParameterGroups[0].DBParameterGroupName,BackupRetentionPeriod]'
[
    "default.postgres15",
    1
]

升级

把<18.x>换成第一步查到的版本。

aws rds modify-db-instance \
  --db-instance-identifier <instance-id> \
  --engine-version <18.x> \
  --allow-major-version-upgrade \
  --db-parameter-group-name default.postgres18 \
  --apply-immediately

输出

aws rds modify-db-instance \
  --db-instance-identifier test-postgres-eujga12345 \
  --engine-version 18.6 \
  --allow-major-version-upgrade \
  --db-parameter-group-name default.postgres18 \
  --apply-immediately

说明

不加--apply-immediately的话,会等到维护窗口才执行。

参看升级状态

会有:upgrading、backing-up、available三个状态。

aws rds describe-db-instances --db-instance-identifier <instance-id> \
  --query 'DBInstances[0].[DBInstanceStatus,EngineVersion]'

输出

$ aws rds describe-db-instances --db-instance-identifier test-postgres-eujga12345 \
  --query 'DBInstances[0].[DBInstanceStatus,EngineVersion]'
[
    "upgrading",
    "15.17"
]

$ aws rds describe-db-instances --db-instance-identifier test-postgres-eujga12345 --query 'DBInstances[0].[DBInstanceStatus,EngineVersion]'
[
    "backing-up",
    "18.6"
]

$ aws rds describe-db-instances --db-instance-identifier test-postgres-eujga12345 --query 'DBInstances[0].[DBInstanceStatus,EngineVersion]'
[
    "available",
    "18.6"
]
Views: 5 · Posted: 2026-10-20

———         Thanks for Reading         ———

Give me a Star, Thanks:)

https://github.com/fendoudebb/LiteNote

扫描下方二维码关注公众号和小程序↓↓↓

扫描下方二维码关注公众号和小程序↓↓↓
Prev Post
Today In History
Browsing Refresh