PostgreSQL 实例操作指南

Cloud SQL 服务等级协议 (SLA) 排除“由 Google 的合理控制范围之外的因素引起的”中断。本页面介绍了一些由用户控制的配置,而由这些配置引起的 Cloud SQL 实例中断将被排除在 SLA 之外。

简介

Cloud SQL 致力于让您尽可能多地控制实例的配置方式。这包括一些会增加实例停机风险的配置,具体取决于负载和其他配置参数。 如果您的实例发生停机,但 Cloud SQL 判断这次停机出于未遵守本页所述的操作限制,那么此停机时段不会被纳入(也不会被计入)Cloud SQL SLA 协议的涵盖范围内。

这份操作限制列表旨在让您了解哪些配置存在这些风险,并提供了避免意外使用此类配置的方法,以及在您的业务环境需要此类配置时可以采取的风险缓解措施。

不计入 SLA 的配置

不计入 SLA 的配置分为以下几类:

  • 常规配置要求
  • 数据库标志值
  • 资源限制条件

常规配置要求

SLA 仅涵盖至少配有一个专用 CPU 的高可用性 Cloud SQL 实例。共享核心实例和单地区实例不在 SLA 的涵盖范围内。

如果实例的配置和使用方式会导致工作负载过载,则 SLA 不适用。此类情况的一些示例如下:

  • work_mem、特定工作负载查询和并行活跃连接数的组合会导致系统内存不足,从而导致 PostgreSQL 工作器后端崩溃,并导致由 postgreSQL 运行的恢复操作。
  • checkpoint_timeoutmax_wal_size 和高工作负载相结合,加上虚拟机容量不足,可能会导致恢复(WA 重放)需要很长时间才能完成。
  • 如果事务的运行时间非常长,并且与创建大量临时文件的工作负载协同工作,则会导致 autovacuum 难以继续运行,从而导致表膨胀和性能下降。

这些示例并未列出所有情况,因为会有很多方式造成 PostgreSQL 数据库过载。我们强烈建议您在 Cloud Monitoring 中设置提醒和监控。

数据库标志值

Cloud SQL 允许使用数据库标志配置实例。其中一些标志的设置方式可能会损害实例的稳定性或其数据的耐用性。

资源限制条件

为使实例保留在 SLA 的涵盖范围内,必须避免出现以下资源限制条件:

限制 说明 检测 补救措施 预防措施
存储空间已满 如果实例的存储空间不足,并且未启用存储空间自动扩容功能,则实例将进入离线状态;此类服务中断不计入 SLA。 您可以在 Cloud Console 的“实例详情”页面上查看实例正在使用的存储空间大小。了解详情

如需监控存储空间用量并在达到指定阈值时接收提醒,请设置 Stackdriver 提醒。了解详情

增加实例的存储空间容量。虽然可以增加存储空间容量,但不能减小存储空间容量。 为实例启用存储空间自动扩容功能。 了解详情
CPU 过载 如果 CPU 利用率超过 98% 的时间达到 6 个小时,则说明实例的大小不适合工作负载;此类情况不计入 SLA。 您可以在 Cloud Console 的“实例详情”页面上查看实例正在使用的可用 CPU 百分比。了解详情

如需监控 CPU 使用量并在达到指定阈值时接收提醒,请设置 Stackdriver 提醒。了解详情

增加实例的 CPU 数。请注意,更改 CPU 需要重启实例。

如果实例的 CPU 数已达到上限,则将数据库分成多个实例。

监控 CPU 使用量,并在必要时增加 CPU。请注意,更改实例 CPU 需重启实例。
内存过载 如果内存利用率连续 6 小时超过 90%,则说明实例的大小不适合工作负载;此类情况不计入 SLA。 您可以通过在 Google Cloud Console 中监控 total_usage 指标,查看实例正在使用的可用内存百分比。了解详情

如需监控内存用量并在达到指定阈值时接收提醒,请设置 Stackdriver 提醒。了解详情

增加实例的内存大小。请注意,更改内存大小需要重启实例。如果实例已达到内存大小上限,请将数据库分片到多个实例。 监控内存用量,并在必要时增加 CPU。请注意,更改实例内存需重启实例。
交易 ID 环绕 如果实例的事务 ID 已用尽,则实例将离线;此类服务中断不计入 SLA。 您可以在 Google Cloud Console 的“实例详情”页面上查看实例的事务 ID 用量。了解详情

如需监控交易 ID 使用情况并在达到指定阈值时接收提醒,请设置 Stackdriver 提醒。了解详情

调整和监控数据库实例有助于减少或避免与 vacuum 有关的问题。了解详情 监控实例的事务 ID 使用情况。根据实例上的工作负载启用和调整 autovacuum 参数。