MySQL 实例操作指南

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

Cloud SQL for PostgreSQL 或 SQL Server 实例尚无操作指南,但这些原则同样适用。

简介

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

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

不计入 SLA 的配置

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

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

常规配置要求

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

数据库标志值

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

下表列出了其值会导致实例被排除在 SLA 之外的标志:

标志 说明 不计入 SLA 的设置 潜在影响 缓解措施
general_log 启用 MySQL 常规日志。 开启(log_output 标志设置为 TABLE 时) 重启速度缓慢。 log_output 标志设置为 FILE
slow_query_log 启用 MySQL 慢查询日志。 开启(log_output 标志设置为 TABLE 时) 重启速度缓慢。 log_output 标志设置为 FILE
max_heap_table_size 确定内存表的大小。 大于默认值。 实例因内存不足 (OOM) 错误而中断。 保留默认设置。
tmp_table_size 确定临时表的大小。 大于默认值。 实例因内存不足 (OOM) 错误而中断。 保留默认设置,或仔细规划工作负载,以避免超出实例容量。
query_cache_sizequery_cache_type 这些标志共同确定查询缓存的大小。 大于默认值。 实例因内存不足 (OOM) 错误而中断。 保留默认设置,或仔细规划工作负载,以避免超出实例容量。

资源限制条件

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

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

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

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

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

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

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

监控 CPU 使用量,并在必要时增加 CPU。请注意,更改实例层级需重启实例。
数据库表太多 如果一个实例包含 1 万个或更多数据库表,则可能导致实例无响应或无法执行维护操作,同时该实例也会被排除在 SLA 之外。 如需查看实例包含多少个表,请运行以下命令: SELECT COUNT(*) FROM information_schema.tables; 如需查看每个数据库包含多少个表,请运行以下命令: SELECT TABLE_SCHEMA,COUNT(*) FROM information_schema.tables group by TABLE_SCHEMA; 将表的数量减少到 1 万个以下。

如果无法立即减少表的数量,则可以将 innodb_file_per_table 标志设置为 OFF,以降低实例因表数过多而受到影响的可能性;但是,此设置并不会使实例恢复到 SLA 的涵盖范围之内。

如果数据架构需要很多表,请将数据拆分到多个实例之中。