Snowflake Postgres 版本升级

Postgres 使用 X.Y 版本方案,其中 X 为主版本,Y 为该主版本中的次版本。

Postgres 主要版本升级

Snowflake Postgres 允许您通过实例 修改 操作安排主版本升级,这需要 :ref:` 故障转移维护 <label-sfpg-maintenance-failover>`。

要发起主要版本升级,您必须使用已被授予该实例 OWNERSHIP 或 OPERATE 权限的角色。

备注

您只能升级到更高版本的主版本。您无法降级到以前的主版本。

您可以通过在选择新版本号的同时选择新的实例大小、存储大小或两者,将主版本升级与实例调整大小结合起来。

小技巧

由于升级维护故障转移可能比其他实例 修改 维护故障转移(见下文)花费更长的时间,且您无法将实例降级到以前的主版本,因此 Snowflake 强烈建议在对活动生产实例进行主版本升级之前,先通过实例的 分支 充分测试主版本升级。

  1. 在导航菜单中,选择 Postgres

  2. 选择您的 Snowflake Postgres 实例。

  3. 在右上角的 Manage 菜单中,选择 Modify

  4. 如果有可用新版本,您将可从 Postgres 版本下拉菜单中进行选择。

  5. 选择 Save 按钮以确认更改。

通过主要版本升级修改 Snowflake Postgres 实例

备注

如果您没有设置维护窗口,并且在通过 SQL 创建升级操作时未通过 APPLY ON '<timestamp>' 指定运行时间,则升级维护故障转移将在新实例填充并准备就绪后立即进行,就像通过 SQL 创建升级操作时使用 APPLY IMMEDIATELY 一样。

使用 APPLY ON '<timestamp> 安排指定未来时间的升级维护故障转移时,该时间距离当前时间最多不能超过三天。

主版本升级维护的工作原理

Postgres 主要版本升级的运作方式与其他实例管理操作不同。启动该过程后,Snowflake Postgres 将执行以下步骤:

  1. 与其他 修改 操作一样,系统会为升级配置一个隐藏副本。

  2. 当到达计划的维护时间时:

    • 当前主实例将被锁定以防止写入。

    • 使用 pg_upgrade (https://www.postgresql.org/docs/current/pgupgrade.html) 对隐藏副本进行升级。持续时间取决于数据库中的 对象数量,而不是数据大小。

  3. 升级完成后,故障切换到新升级的实例。

重要注意事项

  • 主要版本变更可能会影响应用程序兼容性。我们建议在升级前,将您的应用程序在新 PostgreSQL 版本上进行测试。

  • 只读副本的的主版本无法与其主实例分开升级。相反,在对其主实例执行主版本升级时,它们会自动升级,但前提是其主实例已完成升级并进行了新的备份。在此之前,副本将保持可用,但处于过时状态。

  • HA 实例(如果存在)也会在其主实例升级并进行新备份后自动升级。在此之前,主实例将没有有效的 HA 实例存在。

  • 维护故障转移引起的服务中断将比其他 修改 操作所需的时间更长,但通常不会超过几分钟。

  • 如果升级失败,您的实例将自动回退至原始实例。

Postgres 次版本升级

随着时间的推移,Snowflake 将使用新的 Postgres 次版本自动升级您的数据库。

随着每个 Postgres 版本的发布,我们会检查所有安全相关问题和错误。对于任何被视为严重的问题,我们将优先为您进行升级,以确保您的数据安全。如果需要紧急更新,我们将在您的维护窗口期内执行该更新。

对于非严重修复,我们将通过以下方式之一逐步更新数据库:

  • 在需要替换实例的实例管理操作(例如资源更改)期间更新您的实例

  • 在 HA 故障转移后更新您的高可用性备用实例。如果发生 HA 故障转移,新建的 HA 实例将获得最新的点版本。

实例 刷新 还将确保您的实例和 HA 实例(如果存在)升级到最新的可用次版本。