Snowflake Postgres 维护¶
概述¶
维护是指对 Postgres 实例进行更新或更改其配置的过程。在某些情况下,平台会自动安排维护,例如当磁盘空间不足触发扩容操作时。Snowflake 还可以在需要时为实例安排维护,以确保实例安全。执行维护时,Postgres 实例将始终获得最新的 Postgres 次要版本、操作系统更新以及新功能和特性。
维护工作原理¶
某些维护操作可以直接在 Postgres 实例上执行,例如简单的服务重启。其他维护操作需要故障转移到新实例。
重启¶
可以通过 Manage 菜单直接在 Postgres 实例上重启 Postgres 服务或底层服务器。
-- Restart the Postgres service or the underlying server
ALTER POSTGRES INSTANCE <instance_name> RESTART { POSTGRES | SERVER }
小技巧
重新启动 Postgres 服务通常比重新启动整个实例更快。
故障转移¶
修改 Postgres 实例的配置需要进行故障转移才能应用更改。您可以修改实例类型、大小、存储和/或升级到较新的 Postgres 主要版本。
备注
当维护操作需要故障转移时,新实例将始终获得最新的 Postgres 次要 版本、操作系统更新以及新功能和特性。
当您启动对 Postgres 实例的更改时,系统会在后台使用新配置创建一个新实例。在此期间,您的原始实例将继续以其原始状态运行。当新实例上线时,它将与源实例同步。在新实例准备就绪之前,不会发生故障转移。
备注
发生故障转移时会出现短暂的服务中断,通常持续几秒到几分钟。
如果已设置维护时段,新实例将通过复制保持同步,直到达到维护时段,然后执行故障转移。如果未设置维护时段,平台将在新实例准备就绪后立即开始故障转移。
小技巧
当客户端保持连接并在源实例上执行写入时,故障转移可能会延迟。在故障转移发生之前,必须完成写前日志 (WAL) 的写入和归档。为了实现更快的故障转移,请将维护时段设置在应用程序的空闲时段。
假设故障转移成功,原始实例将自动被移除,因为它不再需要。如果故障转移因某种原因未能成功(例如在主版本升级期间可能发生),该操作将被中止,原始实例将保持不变。
自动维护¶
当可用磁盘空间变得严重不足时,平台将自动运行维护以增加实例的存储空间。当 Postgres 主要版本已弃用,并且实例在发布的截止日期前未升级到较新的主要版本时,也可能计划运行维护。
自动调整磁盘大小¶
过度使用 Postgres 实例的存储在运维上是危险的,因为在紧急情况下,服务器可能没有足够的磁盘空间进行恢复。当磁盘使用率达到临界水平时,实例将被置为只读模式,以在自动调整大小期间保护您的数据。
当满足以下条件时,将启动自动扩容操作:
磁盘使用率达到 85%,且剩余空间少于 50GB
磁盘使用率达到 90%
新的存储大小根据原始大小计算:
100GB 磁盘数将增加 50%(例如,10 GB 变为 15 GB)。
100GB 到 999GB 的磁盘数将增加 25%(例如,100 GB 变为 125 GB)。
大于 1000 GB 的磁盘将增加 15%(例如,1000 GB 变为 1150 GB)。
小技巧
请确保您的应用程序已配置为自动重新连接数据库,因为在故障转移发生时会出现短暂的服务中断。
检查维护状态¶
您可以通过在 Manage 菜单下选择 Modify 来为您的实例安排维护。当有待处理的维护操作时,您可以在实例详细信息页面上看到一个横幅:
点击 View details 按钮以查看有关维护的更多信息,例如旧配置和新配置。
