如何在兼容 Aurora PostgreSQL 的全局数据库中执行主要版本升级?

2 分钟阅读
0

我想对我的 Amazon Aurora Global Cluster 执行主要版本升级。或者由于版本不匹配,我无法在 Aurora Global Cluster 中进行失效转移。

简短描述

通过执行 Amazon Aurora Global Database 的主要版本升级,您可以升级全局数据库集群,而非其包含的集群。升级过程会同时升级构成 Aurora 全局数据库的所有数据库集群。在生产 Aurora 全局数据库中执行升级之前,请务必在升级版本上测试应用程序,这一点很重要。升级过程需要停机,建议您在计划的维护时段内执行升级。

解决方法

使用 Amazon RDS 控制台关闭 rds.global_db_rpo

如果您的全局数据库集群设置了恢复点目标(RPO),请在升级到新的主要版本之前重置 rds.global_db_rpo 参数。如果启用 RPO,则主要版本升级将失败,并且您会收到与以下类似的错误:

“Error: We're sorry, your request to modify global database GlobalCluster-GCTest has failed.Primary cluster cannot have RPO setting enabled during major version upgrade.”(错误提示:很抱歉,您修改全局数据库 GlobalCluster-GCTest 的请求失败。在主要版本升级期间,主集群无法启用 RPO 设置。)

使用以下步骤通过 Amazon Relational Database Service (Amazon RDS) 控制台关闭 rds.global_db_rpo。

注意:默认情况下,此参数处于关闭状态。因此,如果您尚未开启 RPO,请跳过这些步骤。

  1. 登录 Amazon RDS 控制台
  2. 在导航窗格中,选择 Parameter groups(参数组)。
  3. 选择您的主数据库集群参数组。
  4. 选择 Edit parameters(编辑参数)。
  5. 选择 rds.global_db_rpo 参数旁边的复选框。
  6. 选择重置(Reset)。
  7. 重置数据库参数组中的参数(Reset parameters in DB parameter group)下,选择重置参数(Reset parameters)。

有关如何使用控制台重置参数的更多信息,请参阅修改数据库集群参数组中的参数

使用 AWS CLI 关闭 rds.global_db_rpo

您也可以使用 AWS 命令行界面(AWS CLI)运行 reset-db-cluster-parameter-group command来关闭 RPO。

对于 Linux、macOS 或 Unix:

aws rds reset-db-cluster-parameter-group \

    --db-cluster-parameter-group-name global_db_cluster_parameter_group \

    --parameters "ParameterName=rds.global_db_rpo,ApplyMethod=immediate"

对于 Windows:

aws rds reset-db-cluster-parameter-group ^

    --db-cluster-parameter-group-name global_db_cluster_parameter_group ^

    --parameters "ParameterName=rds.global_db_rpo,ApplyMethod=immediate"

使用控制台执行主要版本升级

在执行以下步骤之前,请确保遵循在将生产数据库集群升级到新的主要版本之前中的建议。

  1. 登录 Amazon RDS 控制台
  2. 在导航窗格中,选择数据库,然后选择要升级的全局 Aurora 集群。注意:确保在 “数据库” 下选择顶级项目。要确认这一点,请选择角色,然后确认您看到的是全局数据库
  3. 选择 Modify(修改)。
  4. 在修改数据库集群页面上,对于引擎版本,选择最新版本。
  5. 选择 Continue(继续),然后查看修改摘要。
  6. 要立即应用更改,请选择 Apply immediately(立即应用)。选择此选项可能会导致中断
  7. 选择 修改集群以保存您的更改。

使用 AWS CLI 执行主要版本升级

要开始升级 Aurora 全局数据库,请使用 AWS CLI 运行 modify-global-cluster 命令:

aws rds modify-global-cluster --global-cluster-identifier <cluster global identifier> --engine-version <engnie_version> --allow-major-version-upgrade

升级 Aurora 全局数据库的限制

以下限制适用于升级 Aurora 全局数据库:

  • 在执行 Aurora 全局数据库的主要版本升级时,您无法将自定义参数组应用于全局数据库集群。在全局群集的每个区域中创建您的自定义参数组,然后在升级后将其手动应用于区域集群。
  • 使用基于 PostgreSQL 的 Aurora 全局数据库,如果启用 RPO,则无法执行 Aurora 数据库引擎的主要版本升级。有关 RPO 功能的信息,请参阅管理基于 Aurora PostgreSQL 的全局数据库的 RPO

相关信息

将 Aurora PostgreSQL 数据库引擎升级到新的主要版本

升级 Amazon Aurora Global Database

全球数据库的重大升级

AWS 官方
AWS 官方已更新 2 年前