IBM Cloud Docs
升级到新的主要版本

升级到新的主要版本

当数据库的主要版本处于其生命周期结束 (EOL) 时,最好升级到当前主要版本。

IBM Cloud 目录 页面中,从 Cloud Databases CLI 插件命令 ibmcloud cdb deployables-show或从 Cloud Databases API /deployables 端点查找 Databases for PostgreSQL 的可用版本。

升级到新实例时,还需要更改应用程序中的连接信息。

从PostgreSQL v12升级到新的PostgreSQL主版本的要求

如果已安装 pg_repack,那么在执行升级之前需要将其除去。 可以使用类似如下的命令来完成此操作:

DROP EXTENSION pg_repack;

升级后,重新安装 pg_repack。 可以使用以下命令来完成:

CREATE EXTENSION pg_repack;

如果您正在使用 PostGIS,,则必须先升级到 PostGIS,然后再升级 PostgresSQL。 可以针对已安装 PostGIS 的数据库运行以下命令来实现。

SELECT postgis_extensions_upgrade();

使用以下查询验证 Postgis 扩展升级。

SELECT postgis_full_version();

从只读副本升级

通过 配置只读副本 进行升级。 使用与部署相同的数据库版本供应只读副本,并在复制所有数据时等待。 当您的部署及其副本已同步时,请将只读副本提升并升级到运行新版本数据库的完整独立部署。 要执行升级和提升步骤,请在请求主体中使用要升级到的版本的对 /deployments/{id}/remotes/promotion 端点的 POST 请求。

此请求类似于:

curl -X POST \
  https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/remotes/promotion \
  -H 'Authorization: Bearer <>'  \
 -H 'Content-Type: application/json' \
 -d '{
    "promotion": {
        "version": "14",
        "skip_initial_backup": false
    }
}' \

skip_initial_backup 是可选的。 如果设置为 true,那么在提升完成时,新部署不会执行初始备份。 您的新部署在较短的时间内可用,其代价是在下一次自动备份运行之前不备份,或者您执行随需应变备份。

干运行提升和升级

要评估主要版本升级的影响,请触发干运行。 干运行会模拟提升和升级,并将结果打印到数据库日志中。 通过 日志分析集成 访问和查看数据库日志。 这将确保您当前使用其扩展运行的版本可以成功升级到预期版本。

必须在将 skip_initial_backup 设置为 false 并定义 version 的情况下运行干运行。

该命令如下所示:

curl -X POST \
  https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/remotes/promotion \
  -H 'Authorization: Bearer <>'  \
 -H 'Content-Type: application/json' \
 -d '{
    "promotion": {
        "version": "14",
        "skip_initial_backup": false,
        "dry_run": true
    }
}' \

备份和恢复升级

您可以通过将数据的备份 复原 到正在运行新数据库版本的新部署来升级数据库版本。

在 UI 中升级

从 _部署仪表板_的 备份 菜单 复原备份 时升级到新版本。 单击备份上的 Restore 进入新选项卡上的调配页面,在此可更改新部署的某些选项。 其中一个选项是数据库版本,将自动填充可供您升级到的版本。 选择一个版本,然后单击 Create 启动供应和还原过程。

通过 CLI 进行升级

要通过 IBM Cloud CLI 从备份升级和复原,请使用资源控制器中的供应命令。

ibmcloud resource service-instance-create <DEPLOYMENT_NAME_OR_CRN> <SERVICE_ID> <SERVICE_PLAN_ID> <REGION>

参数 service-nameservice-idservice-plan-idregion 都是必需的。 您还可以在 JSON 对象中提供具有版本和备份标识参数的 -p。 在备份时,将使用与源部署相同的磁盘和内存自动调整新部署的大小。

此命令类似于:

ibmcloud resource service-instance-create example-upgrade databases-for-postgresql standard us-south \
-p \ '{
  "backup_id": "crn:v1:bluemix:public:databases-for-postgresql:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
  "version":14
}'

通过 API 进行升级

Complete the necessary steps to use the 资源控制器 API before you use it to upgrade from a backup. 然后,向 API 发送 POST 请求。 参数 nametargetresource_groupresource_plan_id 都是必需的。 您还提供版本和备份标识。 新部署与备份时的源部署具有相同的内存和磁盘分配。

此命令类似于:

curl -X POST \
  https://resource-controller.cloud.ibm.com/v2/resource_instances \
  -H 'Authorization: Bearer <>' \
  -H 'Content-Type: application/json' \
    -d '{
    "name": "my-instance",
    "target": "bluemix-us-south",
    "resource_group": "5g9f447903254bb58972a2f3f5a4c711",
    "resource_plan_id": "databases-for-postgresql-standard",
    "backup_id": "crn:v1:bluemix:public:databases-for-postgresql:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
    "version":14
  }'

强制升级

在生命周期结束日期之后,所有使用过时版本的活动Databases for PostgreSQL部署都将被强制升级到下一个受支持的版本。 例如,PostgreSQL版本 12(已废弃)升级到版本 13。

在报废日期前进行升级,以避免以下风险:

  • 此类强制升级不提供服务水平协议。
  • 您可能会丢失一些数据。
  • 您的应用程序可能会经历长时间停机。
  • 如果与新版本不兼容,您的应用程序可能会停止工作。
  • 您无法控制在部署过程中何时进行升级。
  • 这种强制升级没有回滚程序。

有关报废日期,请参阅 版本政策页面

主要 PostgreSQL 版本的更改日志