本页面介绍如何设置实例的数据库次要版本。 如需了解受支持的版本,请参阅数据库版本及版本政策。
在每次发布新的次要版本时,数据库提供商都会在其中发布新功能、安全补丁程序、问题修复和性能改进。此外,Cloud SQL 会在维护期间定期为您更新次要版本。
但 MySQL 8.0 不支持降级。因此,其次要版本升级不会自动包含在例行维护中。您可以在创建实例时指定 Cloud SQL for MySQL 8.0 的次要版本,也可以通过后续的某次升级流程指定次要版本,本页面介绍了这两种方式。
在升级到新的 MySQL 8.0 次要版本之前,请先自行熟悉其中的变化。请参阅 MySQL 8.0 版本说明。如果您使用的是 Cloud SQL for MySQL 5.6 或 5.7,Cloud SQL 会自动管理实例的次要版本。在您预配新实例时,Cloud SQL 会自动使用最新可用数据库版本配置您的实例。在例行维护期间,Cloud SQL 会自动将您的实例升级到最新的受支持版本。
要升级 MySQL 8.0 实例的数据库次要版本,您需要使用首选次要版本更新实例,而且这个版本必须高于当前安装的次要版本。预配实例后,您就不能再还原到未指定的次要版本。
升级之前
MySQL 8.0 不允许降级。因此,在升级主实例之前,请先执行以下步骤以确保数据安全。
在预演环境中对您的升级执行测试。
创建生产实例的克隆,用作预演实例。这将创建一个使用相同主要版本和次要版本的新数据库实例。
在预演实例上执行次要版本升级。
运行工作负载测试,以验证升级是否成功、应用是否按预期运行。在测试成功的情况下,继续升级您的读取副本实例。
升级您的读取副本实例。
将数据库中的所有读取副本升级到目标次要版本。
验证您的应用是否按预期工作。
备份您的主实例。
请备份您的主实例,就像执行任何重大数据库更新时一样。
升级次要版本
您可以使用 gcloud
或 REST API 指定一个现有实例的次要版本。在不使用数据库的时候执行次要版本升级。在此操作期间实例会重启,从而造成停机。如果当前安装的版本高于所请求的版本,则请求会被拒绝。
gcloud
使用带有 --database-version
标志的 gcloud sql instances patch
命令。
在运行命令之前替换以下变量:
- INSTANCE_NAME:实例的名称。
- DATABASE_VERSION:实例的数据库版本。如果您未指定此标志,则系统使用默认主要版本。
gcloud sql instances patch INSTANCE_NAME \ --database-version=DATABASE_VERSION
REST v1
将 PATCH 请求与 instances:patch 方法和 databaseVersion
标志结合使用。
在使用任何请求数据之前,请先进行以下替换:
- PROJECT-ID:项目 ID
- INSTANCE-ID:实例 ID
- DATABASE_VERSION:要升级到的数据库版本。
HTTP 方法和网址:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT-ID/instances/INSTANCE-ID
请求 JSON 正文:
{ "databaseVersion": "DATABASE_VERSION" }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "kind": "sql#operation", "targetLink": "https://content-sqladmin.googleapis.com/v1/projects/PROJECT-ID/instances/INSTANCE-ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2022-07-17T20:23:15.540Z", "operationType": "UPDATE", "name": "fa3f7304-ccf6-4d2f-a6f5-24df00000032", "targetId": "INSTANCE-ID", "selfLink": "https://content-sqladmin.googleapis.com/v1/projects/PROJECT-ID/operations/fa3f7304-ccf6-4d2f-a6f5-24df00000032", "targetProject": "PROJECT-ID" }
REST v1beta4
将 PATCH 请求与 instances:patch 方法和 databaseVersion
标志结合使用。
在使用任何请求数据之前,请先进行以下替换:
- PROJECT-ID:项目 ID
- INSTANCE-ID:实例 ID
- DATABASE_VERSION:要升级到的数据库版本。
HTTP 方法和网址:
https://sqladmin.googleapis.com/v1beta4/projects/PROJECT-ID/instances/INSTANCE-ID
请求 JSON 正文:
{ "databaseVersion": "DATABASE_VERSION" }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "kind": "sql#operation", "targetLink": "https://content-sqladmin.googleapis.com/v1beta4/projects/PROJECT-ID/instances/INSTANCE-ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2022-07-17T20:23:15.540Z", "operationType": "UPDATE", "name": "fa3f7304-ccf6-4d2f-a6f5-24df00000032", "targetId": "INSTANCE-ID", "selfLink": "https://content-sqladmin.googleapis.com/v1beta4/projects/PROJECT-ID/operations/fa3f7304-ccf6-4d2f-a6f5-24df00000032", "targetProject": "PROJECT-ID" }
检查数据库次要安装版本
查看实例摘要信息时,数据库次要安装版本会显示在“配置”部分中。
回滚升级
如果您在测试升级时发现存在问题,则可能需要回滚数据库,以恢复运行先前次要版本的数据库实例。
如需恢复升级前的备份,请完成以下步骤:
- 预配使用先前的次要版本的恢复数据库实例。
- 将该恢复数据库实例上的设置配置为升级前状态。
- 恢复您存储到恢复实例的升级前备份。
作为恢复备份的替代方案,您可以执行时间点恢复并创建新实例。