本页面介绍了如何将数据迁移至运行较新版本的 MySQL 的实例。在继续此方法之前,请考虑就地升级数据库主要版本。
您可以使用以下两种方式通过迁移数据来升级 Cloud SQL for MySQL 实例的数据库主要版本。
- 选项 1。使用 Database Migration Service (DMS)。DMS 支持从 Cloud SQL MySQL 实例进行迁移。您还可以使用它升级 MySQL 版本。
- 方法 2.如需将数据从 MySQL 的一个版本迁移到另一个版本,请通过从当前实例导出数据并将其导入一个运行 MySQL 更高版本的新实例。此过程需要关停实例;在开始导出数据之前,请将当前实例置于只读模式。
本页介绍了第二种方案。
规划主要版本升级
选择目标主要版本。
请参阅 Cloud SQL 支持的版本列表。
请考虑每个 MySQL 版本中提供的功能并解决不兼容问题。
新的主要版本引入了不兼容的更改,您可能需要修改应用代码、架构或数据库设置,然后才能升级数据库实例。查看目标主要版本的版本说明,以确定您需要解决的不兼容问题。如果您要跳过主要版本,请解决为每个要跳过的版本列出的不兼容性问题。
在 MySQL 8.0 中检查用户授权更改
Cloud SQL for MySQL 8.0 版使用名为
partial_revokes
的新系统标志,该标志默认设置为ON
。与 MySQL 5.7 不同,此标志消除了在数据库GRANT
命令中使用通配符的功能。为了确保数据库用户能够访问正确的数据库架构,请在升级到 MySQL 8.0 之前修改数据库用户权限。更新用户权限以使用所需数据库架构的全名,而不是使用通配符。如需详细了解此标志在 MySQL 8.0 中的工作原理,请参阅 MySQL 8.0 中的 partial_revoke。
通过试运行测试升级。
在升级生产数据库之前,请使用测试实例执行端到端升级流程的试运行。建议使用克隆(而非生产数据库)测试升级,以免导出对生产工作负载造成任何性能影响。
除了验证升级是否成功完成之外,运行测试还可以确保应用在升级后的数据库上按预期运行。如果您尚未启用存储空间自动扩容功能,请记下升级后的试运行实例使用的磁盘存储空间,以确定升级前是否需要增加生产实例的存储空间容量。
确定何时升级。
迁移数据
要将数据迁移到运行较新数据库版本的 Cloud SQL 实例,请按照以下步骤操作:
使用所需的数据库主要版本创建目标实例。
确保目标实例符合以下条件:
- 存储空间足以容纳当前实例的所有数据。
- 拥有与当前实例相同的已获授权的网络。了解详情。
- 拥有相同用户账号以及相同的 MySQL 权限和密码。
如需了解详情,请参阅创建实例。
确认您可以使用本地 MySQL 工具连接到新实例,并在必要情况下进行更新。
通过将
read_only
数据库标志设置为On
,将当前的 Cloud SQL 实例置于只读模式。如需了解相关信息,请参阅配置数据库标志。
按照导出数据以导入到 Cloud SQL 中的说明,将当前实例的数据导出到 SQL 转储文件。
不要导出
mysql
系统数据库。根据需要创建 Cloud Storage 存储桶,并将您的 SQL 转储文件上传到存储桶。
按照从 Cloud Storage 导入 MySQL 数据库中的说明,将数据导入目标实例。
可选。完成升级过程后,使用外部服务器在源实例和目标实例之间设置复制,以使用自上次转储作业以来发生的所有更改来更新目标。两个实例同步后,您可以提升目标实例。
如需了解如何使用外部服务器实现持续复制,请参阅从外部服务器复制。
更新您的应用以连接到新实例。
如果您确定新实例已成功运行,请删除旧实例。
后续步骤
- 详细了解影响升级到 MySQL 5.6 的更改。
- 详细了解影响升级到 MySQL 5.7 的更改。
- 详细了解影响升级到 MySQL 8.0 的更改。
- 详细了解迁移到新实例类型。
- 了解 Database Migration Service。
- 了解导入和导出数据。
- 了解连接到实例的选项。
- 了解如何设置 MySQL 标志。