您可以使用通过 Percona XtraBackup for MySQL 实用程序创建的物理数据库备份文件,将 MySQL 数据库迁移到 Cloud SQL。与使用逻辑备份文件的迁移相比,使用物理备份文件迁移可以提高数据恢复速度。这使其非常适合用于迁移包含数 TB 数据的大型数据库。
此迁移流包含以下任务:
使用 Percona XtraBackup for MySQL 实用程序备份源 MySQL 实例并准备物理备份文件。
将备份文件上传到 Cloud Storage 存储桶。
在 Database Migration Service 中创建并运行迁移作业。
根据您的具体情况,您可以自行创建目标实例,也可以让 Database Migration Service 在迁移作业创建流程中为您创建目标实例。如需了解详情,请参阅配置和运行迁移作业步骤。
在数据完全迁移后提升迁移作业。
离线迁移
本指南介绍了适用于可确保源数据库实例与目标数据库实例之间网络连接的环境的迁移场景。
您可以执行测试迁移,在这种情况下,Database Migration Service 不会连接到您的源实例。不过,Database Migration Service 只会读取您上传到 Cloud Storage 存储分区的备份文件,并将其内容复制到 Cloud SQL for MySQL 目标位置。不建议在生产环境迁移中使用不使用网络连接的迁移流程,因为 Database Migration Service 无法完全执行数据验证。
如果您想尝试执行离线迁移作业,请按以下方式调整相应流程:
创建来源连接配置文件时,请使用示例 IP 地址、端口、用户名和密码。例如:
- IP:
0.0.0.0
- 端口:
1234
- 迁移用户名:
test-user
- IP:
创建迁移作业时:
- 使用公共 IP 连接。请勿配置任何其他网络选项。
- 使用一次性迁移作业类型。
限制
本部分列出了使用 Percona XtraBackup 物理文件的迁移的限制:
不支持使用物理备份文件迁移到 MySQL 5.6 或 8.4。请参阅已知限制。
跨版本注意事项:
- 您只能在同一数据库主要版本内进行迁移,例如从 MySQL 8.0.30 迁移到 MySQL 8.0.35,或从 MySQL 5.7.0 迁移到 MySQL 5.7.1。
您无法从 MySQL 5.7 迁移到 MySQL 8.0。
不支持迁移到早期的数据库主要版本或次要版本。例如,您无法从 MySQL 8.0 迁移到 5.7 或从 MySQL 8.0.36 迁移到 8.0.16。
您必须使用 Percona XtraBackup 将数据备份到 Cloud Storage 存储桶。不支持其他备份实用程序。
只有本地或自行管理的虚拟机 MySQL 数据库支持从 Percona XtraBackup 物理文件迁移数据库。不支持从 Amazon Aurora 或 MySQL on Amazon RDS 数据库进行迁移。
您只能从完整备份进行迁移。不支持其他备份类型,例如增量备份或部分备份。
数据库迁移不包括数据库用户或权限。
您必须将二进制日志格式设置为
ROW
。如果您将二进制日志配置为任何其他格式(例如STATEMENT
或MIXED
),则复制可能会失败。不支持任何表大小超过 5 TB 的数据库。
Cloud Storage 将您可以上传到存储分区的文件大小限制为 5 TB。 如果您的 Percona XtraBackup 物理文件超过 5 TB,则必须将备份文件拆分为较小的文件。
确保将备份文件上传到不包含任何其他文件的专用 Cloud Storage 文件夹。
您必须仅通过一个使用默认数据文件名
ibdata1
的数据文件来配置innodb_data_file_path
参数。如果数据库配置了两个数据文件或具有使用不同名称的数据文件,则您无法使用 Percona XtraBackup 物理文件迁移数据库。例如,系统不支持使用innodb_data_file_path=ibdata01:50M:autoextend
配置的数据库进行迁移。源实例的
innodb_page_size
参数必须使用默认值16384
进行配置。您无法从外部数据库迁移任何插件。
费用
对于向 Cloud SQL 进行的同构迁移,使用 Database Migration Service 无需额外付费。不过,Cloud SQL 和 Cloud Storage 价格适用于网络流量费用,以及为迁移目的而创建的 Cloud SQL 和 Cloud Storage 实体。
在本文档中,您将使用 Google Cloud 的以下收费组件:
- Cloud Storage
- Cloud SQL
您可使用价格计算器根据您的预计使用情况来估算费用。
准备工作
- 考虑要在哪个区域创建目标数据库。Database Migration Service 是一款完全区域性产品,这意味着与迁移相关的所有实体(源和目标连接配置文件、迁移作业、目标数据库、存储分区)都必须保存在单个区域中。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Database Migration Service, Compute Engine, and Cloud SQL Admin APIs.
所需的角色
如需获得使用物理备份文件执行同质 MySQL 迁移所需的权限,请让管理员向您授予项目的以下 IAM 角色:
-
执行迁移的用户账号:
-
Database Migration Admin (
roles/datamigration.admin
) -
Storage Object Viewer (
roles/storage.objectViewer
) -
Cloud SQL Editor (
roles/cloudsql.editor
)
-
Database Migration Admin (
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含使用物理备份文件执行同质 MySQL 迁移所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需使用物理备份文件执行同种 MySQL 迁移,您需要拥有以下权限:
-
执行迁移的用户账号:
-
datamigration.*
-
resourcemanager.projects.get
-
resourcemanager.projects.list
-
cloudsql.instances.create
-
cloudsql.instances.get
-
cloudsql.instances.list
-
compute.machineTypes.list
-
compute.machineTypes.get
-
compute.projects.get
-
storage.buckets.create
-
storage.buckets.list
-
第 1 步:考虑您的网络连接要求
您可以使用不同的网络方法来配置源实例与 Cloud SQL 目标实例之间的连接。您可能需要在迁移过程中执行额外的步骤,具体取决于您使用的迁移方法。
在继续执行后续步骤之前,请考虑哪种连接方法适合您的场景,因为您的选择可能会影响您需要使用的设置。如需了解详情,请参阅 配置连接性。
第 2 步:准备源数据
若要为迁移准备数据,请执行以下步骤:
- 在源实例上安装适当的 Percona XtraBackup 实用程序版本。您必须使用与源实例版本相同或更高版本的 Percona XtraBackup。
如需了解详情,请参阅 Percona XtraBackup 文档中的
服务器版本和备份版本比较。
- 对于 MySQL 5.7,请安装 Percona XtraBackup 2.4。
- 对于 MySQL 8.0,请安装 Percona XtraBackup 8.0。
- 使用 Percona XtraBackup 导出并准备源实例的物理备份文件。如需详细了解如何使用 Percona XtraBackup,请参阅该工具的
文档。您还可以展开即可下部分,查看推荐步骤示例。
使用 Percona XtraBackup 创建和准备物理备份文件的建议步骤示例
在使用下面的任何命令数据之前,请先进行以下替换:
- TARGET_DIR 替换为您要保存输出备份文件的路径。
- USERNAME 替换为对源实例具有
BACKUP_ADMIN
权限的用户。 - PASSWORD 替换为 USERNAME 账号的密码。
- 对源实例执行完整的物理备份。运行以下命令:
xtrabackup --backup \ --target-dir=TARGET_DIR \ --user=USERNAME \ --password=PASSWORD
- 备份文件准备就绪后,请使用
--prepare
命令确保文件一致性。运行以下命令:xtrabackup --prepare --target-dir=TARGET_DIR
- 创建存储桶,用于存储备份文件。确保您使用的区域与您打算创建目标 Cloud SQL for MySQL 实例的区域相同。
Database Migration Service 是一款完全区域性产品,这意味着与迁移相关的所有实体(源和目标连接配置文件、迁移作业、目标数据库、备份文件存储分区)都必须保存在单个区域中。
- 将备份文件上传到您的 Cloud Storage 存储桶。确保将备份文件上传到不包含任何其他文件的专用 Cloud Storage 文件夹。 请参阅 Cloud Storage 文档中的 从文件系统上传对象。
- 为源数据库实例创建来源连接配置文件。
控制台
如需创建来源连接配置文件,请按以下步骤操作:
- 前往 Google Cloud 控制台中的连接配置文件页面。
- 点击 Create profile(创建配置文件)。
- 在创建连接配置文件页面上,从数据库引擎下拉菜单中,选择 MySQL
- 在连接配置文件名称字段中,为连接配置文件输入一个可读取的名称。此值会显示在连接配置文件列表中。
- 保留自动生成的连接配置文件 ID。
- 输入主机名或 IP 地址。
如果源数据库托管在 Google Cloud中,或者使用反向 SSH 隧道将目标数据库连接到源数据库,请为源数据库指定专用(内部)IP 地址。 Cloud SQL 目标位置将能够访问此地址。如需了解详情,请参阅 使用 VPC 对等互连配置连接。
对于其他连接方法(例如 IP 许可名单),请提供公共 IP 地址。
- 输入用于访问主机的端口。MySQL 的默认端口为 3306。
- 输入目标数据库的用户名和密码。 用户账号必须具有访问您的数据所需的权限。 如需了解详情,请参阅 配置源数据库。
- 在该页面的连接配置文件区域部分,选择您要在其中保存连接配置文件的区域。
可选:如果连接是通过公共网络(使用 IP 许可名单)建立的,则我们建议对源数据库和目标数据库之间的连接使用 SSL/TLS 加密。
您可以从该页面的保护您的连接部分中选择三种 SSL/TLS 配置选项:
- 无:Cloud SQL 目标实例在不加密的情况下连接到源数据库。
仅服务器身份验证:当 Cloud SQL 目标实例连接到源数据库时,该实例会对源数据库进行身份验证,从而确保实例安全地连接到正确的主机。 这样可以防止中间人攻击。对于仅限服务器的身份验证,源不会对实例进行身份验证。
如需使用仅限服务器的身份验证,您必须提供签署外部服务器证书的证书授权机构 (CA) 的 x509 PEM 编码证书。
- 服务器-客户端身份验证:当目标实例连接到源时,实例会对源进行身份验证,并且源会对实例进行身份验证。
服务器-客户端身份验证提供最高级别的安全防护。但是,如果您不想在创建 Cloud SQL 目标实例时提供客户端证书和私钥,则仍可以使用仅限服务器的身份验证。
如需使用服务器-客户端身份验证,您必须在创建目标连接配置文件时提供以下内容:
- 签署源数据库服务器证书的 CA 的证书(CA 证书)。
- 实例用来对源数据库服务器进行身份验证的证书(客户端证书)。
- 与客户端证书关联的私钥(客户端密钥)。
- 点击创建。 您的连接配置文件现已创建。
gcloud
此示例使用可选的
--no-async
标志,以便同步执行所有操作。这意味着某些命令可能需要一段时间才能完成。您可以跳过--no-async
标志以异步运行命令。如果您使用的是该版本,则需要使用gcloud database-migration operations describe
命令来验证操作是否成功。在使用下面的命令数据之前,请先进行以下替换:
- CONNECTION_PROFILE_ID,其中包含连接配置文件的机器可读标识符。
- 将 REGION 替换为您要在其中保存连接配置文件的区域的标识符。
- HOST_IP_ADDRESS,其中包含 Database Migration Service 可以访问源数据库实例的 IP 地址。此值可能会因您用于迁移的 连接方法而异。
- PORT_NUMBER,其中包含源数据库接受传入连接的端口号。默认的 MySQL 端口为 3306。
- USERNAME 为您希望 Database Migration Service 以哪个数据库用户账号的身份连接到源数据库实例的名称。
- 将 PASSWORD 替换为数据库用户账号的密码。
- (可选)CONNECTION_PROFILE_NAME,用于为连接配置文件指定一个直观易懂的名称。此值会显示在 Google Cloud 控制台中。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud database-migration connection-profiles \ create mysql CONNECTION_PROFILE_ID \ --no-async \ --region=REGION \ --host=HOST_IP_ADDRESS \ --port=PORT_NUMBER \ --username=USERNAME \ --password=PASSWORD \ --display-name=CONNECTION_PROFILE_NAME
Windows (PowerShell)
gcloud database-migration connection-profiles ` create mysql CONNECTION_PROFILE_ID ` --no-async ` --region=REGION ` --host=HOST_IP_ADDRESS ` --port=PORT_NUMBER ` --username=USERNAME ` --password=PASSWORD ` --display-name=CONNECTION_PROFILE_NAME
Windows (cmd.exe)
gcloud database-migration connection-profiles ^ create mysql CONNECTION_PROFILE_ID ^ --no-async ^ --region=REGION ^ --host=HOST_IP_ADDRESS ^ --port=PORT_NUMBER ^ --username=USERNAME ^ --password=PASSWORD ^ --display-name=CONNECTION_PROFILE_NAME
您应该会收到类似如下所示的响应:
Waiting for connection profile [CONNECTION_PROFILE_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created connection profile CONNECTION_PROFILE_ID [OPERATION_ID]
第 3 步:配置和运行迁移作业
使用 Percona XtraBackup 进行迁移时,您可能需要自行创建 Cloud SQL 目标实例,或让 Database Migration Service 为您创建。如需了解详情,请参阅 迁移作业创建概览。
每种方法都需要您遵循略有不同的一组步骤。使用下拉菜单显示与您的场景相关的步骤:
- 如果您希望 Database Migration Service 为您创建目标数据库,请选择迁移到新的目标实例。
- 如果您想迁移到在 Database Migration Service 之外创建的目标数据库,请选择迁移到现有目标实例。
-
当您迁移到新的目标实例时,Database Migration Service 会在迁移作业创建流程中为您创建目标 Cloud SQL for MySQL 实例。第 3a 步。创建到新的目标实例的迁移作业
如需创建到新的目标实例的迁移作业,请按以下步骤操作:控制台
定义迁移作业的设置
- 在 Google Cloud 控制台中,前往迁移作业页面。
- 点击创建迁移作业。
系统随即会打开迁移作业配置向导页面。 此向导包含多个面板,可引导您完成每个配置步骤。
您可以随时点击保存并退出,暂停迁移作业的创建。您在此之前输入的所有数据都会保存在迁移作业草稿中。 您可以稍后完成草稿迁移作业。
- 在开始页面上,输入以下信息:
- 迁移作业名称
这是迁移作业的直观易懂的名称。此值会显示在 Google Cloud 控制台中。
- 迁移作业 ID
这是您的迁移作业的机器可读标识符。 您可以使用此值通过 Database Migration Service Google Cloud CLI 命令或 API 处理迁移作业。
- 从源数据库引擎列表中,选择 MySQL。
目标数据库引擎字段会自动填充,且无法更改。
- 选择要保存迁移作业的区域。
Database Migration Service 是一款完全区域性产品,这意味着与迁移相关的所有实体(源和目标连接配置文件、迁移作业、目标数据库)都必须保存在单个区域中。 根据需要数据的服务(例如 Compute Engine 实例、App Engine 应用及其他服务)的位置选择区域。选择目标区域后,此选择便无法更改。
- 迁移作业名称
- 点击保存并继续。
指定有关来源连接配置文件的信息
- 在定义来源页面上,执行以下步骤:
- 从来源连接配置文件下拉菜单中,选择源数据库的连接配置文件。
- 在自定义完全转储配置部分,点击修改配置。
- 在修改完整转储配置面板中,从完整转储方法下拉菜单中,选择基于物理。
- 在提供文件夹中,点击浏览,然后选择您上传完整转储文件的文件夹(准备源数据部分中的第 3 步)。
- 点击保存。
- 点击保存并继续。
配置并创建目标 Cloud SQL 实例
- 在指定目标位置页面上,从目标实例类型下拉菜单中,选择新实例。定义所有相关设置:
- 在目标实例 ID 字段中,为 Cloud SQL 实例提供标识符,或使用自动生成的标识符。
请勿在标识符中包含敏感信息或个人身份信息。无需在实例名称中包含项目 ID。此操作将在适当的位置(例如在日志文件中)自动完成。
- 在密码字段中,为目标 Cloud SQL 实例提供字母数字密码。这是实例中
root
管理员账号的密码。您可以手动输入密码,也可以点击生成以让 Database Migration Service 自动为您创建密码。
- 从数据库版本下拉菜单中,选择目标实例的数据库版本。
点击显示次要版本可查看所有次要版本。 详细了解跨版本迁移支持。
- 为目标实例选择 Cloud SQL for MySQL 版本。
有两个选项可供选择:Cloud SQL for MySQL 企业版和 Cloud SQL for MySQL 企业 Plus 版。
Cloud SQL for MySQL 版本具有不同的功能集、可用机器类型和价格。请务必参阅 Cloud SQL 文档,选择适合您需求的版本。如需了解详情,请参阅 Cloud SQL for MySQL 版本简介。
- 区域菜单会显示您在开始使用页面上选择的区域。
如果您要将实例配置为高可用性实例,请选择多个可用区(高可用性)。 您可以同时选择主要可用区和次要可用区。 在创建实例期间使用次要可用区时,适用以下条件:
- 主要可用区默认为任意,次要可用区默认为任意(不同于主要可用区)。
- 如果同时指定主要可用区和次要可用区,则它们必须是不同的可用区。
- 在连接部分,选择为目标实例添加公共 IP 地址还是专用 IP 地址。
您可以将实例配置为同时具有这两种类型的 IP 地址,但迁移至少需要一种类型的 IP 地址。
选择以下某个选项:
- 如果您想使用 VPC 对等互连或反向 SSH 隧道进行迁移,请选择
专用 IP。
如需启用专用 IP 连接,请确保您满足所有其他网络要求。
展开此部分可查看完整的专用 IP 要求。
- Service Networking API 已启用。您可以使用 Google Cloud 控制台启用 Service Networking API。
- 您拥有
servicenetworking.services.addPeering
IAM 权限。 - 您已为项目
配置了专用服务访问通道,为此您需要拥有
compute.networkAdmin
IAM 角色。 - 您的项目中至少有一个非旧版 VPC 网络或共享 VPC 网络。
- 如果您使用的是
共享 VPC 网络,则还需要执行以下操作:
- 为宿主项目启用 Service Networking API。
- 将您的用户添加到宿主项目中。
- 为用户授予宿主项目中的 compute.networkAdmin IAM 角色。
- 选择要建立对等互连的关联 VPC 网络。如果您计划使用 VPC 对等互连连接到迁移来源,请选择实例所在的 VPC。
- 如果从未为所选 VPC 配置托管式服务网络,您可以选择选择一个 IP 地址范围并点击连接,也可以使用自动选择的 IP 地址范围并点击分配并连接。
- 如果您想使用 IP 许可名单通过互联网进行迁移,请选择
公共 IP。
(可选)在公共 IP 下,点击已获授权的网络字段,然后授权网络或代理连接到 Cloud SQL 实例。只有您提供的地址才能授权网络使用。 请参阅 Cloud SQL 文档中的配置公共 IP。
您可以在后续步骤中配置迁移作业连接。 如需详细了解可用的网络连接方法,请参阅 配置网络连接。
- 如果您想使用 VPC 对等互连或反向 SSH 隧道进行迁移,请选择
专用 IP。
- 在目标实例 ID 字段中,为 Cloud SQL 实例提供标识符,或使用自动生成的标识符。
- 选择 Cloud SQL 实例的机器类型。磁盘大小必须等于或大于源数据库的大小。详细了解 MySQL 机器类型。
- 对于 Cloud SQL for MySQL 企业 Plus 版:如果您想在目标数据库中使用数据缓存功能,请选中启用数据缓存复选框。
数据缓存是一项适用于 Cloud SQL for MySQL 企业 Plus 版实例的可选功能,可向目标数据库添加高速本地固态硬盘。 此功能可能会给您的 Cloud SQL 带来额外费用。 如需详细了解数据缓存,请参阅 Cloud SQL 文档中的数据缓存概览。
- 指定 Cloud SQL 实例的存储类型。您可以选择 固态硬盘 (SSD) 或普通硬盘 (HDD)。
- 指定 Cloud SQL 实例的存储容量(以 GB 为单位)。
确保实例有足够的存储容量来处理源数据库中的数据。您可以随时增加此容量,但不能减少。
(可选)为目标实例配置数据加密选项或资源标签。
展开此部分可查看可选步骤。
点击显示可选配置,然后执行以下操作:
指定您是否要管理从源迁移到目标的数据的加密。默认情况下,您的数据使用由 Google Cloud管理的密钥进行加密。如果您希望管理加密,可以使用由客户管理的加密密钥 (CMEK)。为此,请执行以下操作:
- 选中使用客户管理的加密密钥 (CMEK) 复选框。
- 从选择客户管理的密钥菜单中,选择您的 CMEK。
如果您没有看到密钥,请点击输入密钥资源名称以提供要使用的密钥的资源名称。 密钥资源名称示例:
projects/my-project-name/locations/my-location/keyRings/my-keyring/cryptoKeys/my-key
。- 添加要应用于数据库服务器的所有必要标志。 如果可能,请确保创建的目标 Cloud SQL 实例上的数据库标志与源数据库上的数据库标志相同。详细了解 MySQL 支持的数据库标志。
- 添加特定于 Cloud SQL 实例的任何
标签。
标签可帮助您整理实例。例如,您可以按成本中心或环境来整理标签。您的账单中也会包含标签,便于您按标签查看费用分布情况。
- 点击创建目标并继续。 Database Migration Service 现在正在创建 Cloud SQL 目标实例。 此过程可能需要几分钟时间。
在源数据库实例和目标数据库实例之间建立连接
从连接方法下拉菜单中,选择一种网络连接方法。此方法用于指定新建的 Cloud SQL 实例连接源数据库的方式。目前的网络连接方法包括 IP 许可名单、反向 SSH 隧道和 VPC 对等互连。
如果您想使用… 然后... IP 许可名单网络连接方法, 您需要指定目标实例的传出 IP 地址。如果您创建的 Cloud SQL 实例是高可用性实例,请添加主实例和次要实例的传出 IP 地址。 反向 SSH 隧道网络连接方法, 您需要选择将托管隧道的 Compute Engine 虚拟机实例。 指定实例后,Google 会提供一个脚本,可执行用于设置源数据库和目标数据库之间的隧道的步骤。您需要在 Google Cloud CLI 中运行该脚本。
从同时连接到源数据库和 Google Cloud的机器上运行命令。
VPC 对等互连网络连接方法 您需要选择源数据库所在的 VPC 网络。Cloud SQL 实例将更新以连接到此网络。 选择并配置网络连接后,点击配置并继续。
创建迁移作业
在测试并创建迁移作业页面上,验证迁移作业的设置。此时,测试迁移作业将失败,因为与 Cloud SQL 目标实例关联的服务账号没有必要的权限。
在测试作业之前,请执行以下任一操作以验证作业配置:
- 如果您在向目标实例服务账号分配权限后,想使用 Google Cloud 控制台测试迁移作业,请点击保存并退出。 此操作会将迁移作业保存为草稿。您可以稍后返回此屏幕,测试迁移作业并运行它。
- 如果您想在向目标实例服务账号分配权限后,使用 Google Cloud CLI 测试迁移作业,请点击创建。借助 Google Cloud CLI,您可以测试已创建但尚未开始的迁移作业。
gcloud
创建目标连接配置文件。
使用 Google Cloud CLI 迁移到新的目标实例时,您可以一次性创建目标实例和连接配置文件。
运行以下命令(点击链接可展开):gcloud database-migration connection-profiles create cloudsql
此示例使用可选的
--no-async
标志,以便同步执行所有操作。这意味着某些命令可能需要一段时间才能完成。您可以跳过--no-async
标志以异步运行命令。如果您使用的是该版本,则需要使用gcloud database-migration operations describe
命令来验证操作是否成功。在使用下面的命令数据之前,请先进行以下替换:
- CONNECTION_PROFILE_ID,其中包含连接配置文件的机器可读标识符。
- 将 DATABASE_VERSION 替换为您要在目标实例中使用的 MySQL 版本。数据库版本以字符串的形式指定,其中包含主要版本和次要版本。例如:
MYSQL_8_0
、MYSQL_8_0_32
、MYSQL_8_0_36
。如需了解所有可能的 MySQL 版本,请参阅 --database-version 标志参考文档。
- (可选)EDITION默认情况下,您使用 Google Cloud CLI 创建的新实例使用 Cloud SQL for MySQL 企业 Plus 版。如果您打算使用 Cloud SQL for MySQL 企业 Plus 版,请确保您的区域受该版本支持。请参阅 Cloud SQL for MySQL 企业 Plus 版区域支持。
您可以使用
--edition
标志和以下某个值来更改版本:enterprise-plus
(适用于 Cloud SQL for MySQL 企业 Plus 版)enterprise
(适用于 Cloud SQL for MySQL 企业版)
-
TIER 替换为您要使用的 Cloud SQL 机器类型的名称。
机器类型以遵循 Cloud SQL 惯例的字符串指定,例如
db-n1-standard-1
、db-perf-optimized-N-2
。 如需查看可与 Google Cloud CLI 搭配使用的可用机器类型及其标识符的完整列表,请参阅 Cloud SQL for MySQL 文档中的 机器类型部分。默认情况下,使用 Google Cloud CLI 创建的实例使用 Cloud SQL for MySQL 企业 Plus 版,该版本提供不同的机器类型。如果您想使用仅在 Cloud SQL for MySQL 企业版中提供的机器类型,请使用可选的
--edition=enterprise
标志指定版本。 - REGION 替换为您要在其中保存连接配置文件的区域的标识符。
默认情况下,您使用 Google Cloud CLI 创建的新实例使用 Cloud SQL for MySQL 企业 Plus 版。如果您打算使用 Cloud SQL for MySQL 企业 Plus 版,请确保您的区域受该版本支持。请参阅 Cloud SQL for MySQL 企业 Plus 版区域支持。 您可以使用可选的
--edition
标志更改版本。 - (可选)CONNECTION_PROFILE_NAME,用于为连接配置文件指定一个直观易懂的名称。此值会显示在 Google Cloud 控制台中。
- 网络配置
默认情况下,您使用 Google Cloud CLI 创建的新实例会分配公共 IP 地址,并配置为使用公共 IP 连接。您可以使用其他连接方法。 如需了解详情,请参阅配置连接性。
如果您想使用公共 IP 连接,则无需使用其他标志。如果您想将专用 IP 连接与 VPC 网络对等互连或反向 SSH 隧道搭配使用,请确保您满足启用专用 IP 连接的以下额外网络要求,并在命令中添加额外的标志。
展开此部分可查看完整的专用 IP 要求。
- Service Networking API 已启用。您可以使用 Google Cloud 控制台启用 Service Networking API。
- 您拥有
servicenetworking.services.addPeering
IAM 权限。 - 您已为项目
配置了专用服务访问通道,为此您需要拥有
compute.networkAdmin
IAM 角色。 - 您的项目中至少有一个非旧版 VPC 网络或共享 VPC 网络。
- 如果您使用的是
共享 VPC 网络,则还需要执行以下操作:
- 为宿主项目启用 Service Networking API。
- 将您的用户添加到宿主项目中。
- 为用户授予宿主项目中的 compute.networkAdmin IAM 角色。
如果您想使用专用 IP 连接(使用 VPC 网络对等互连或在 Compute Engine 虚拟机上使用反向 SSH 隧道),请添加以下其他标志:
-
--no-enable-ip-v4
:(可选)不为目标实例分配公共 IP 地址。您可以为目标实例同时分配公共 IP 地址和专用 IP 地址,但如果您使用专用 IP 连接,则可能不需要公共 IP 地址。 -
--private-network
:如需向目标实例分配专用 IP 地址,请指定您要分配专用 IP 地址的虚拟私有云的名称。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud database-migration connection-profiles \ create mysql CONNECTION_PROFILE_ID \ --no-async \ --region=REGION \ --database-version=DATABASE_VERSION \ --tier=TIER \ --display-name=CONNECTION_PROFILE_NAME
Windows (PowerShell)
gcloud database-migration connection-profiles ` create mysql CONNECTION_PROFILE_ID ` --no-async ` --region=REGION ` --database-version=DATABASE_VERSION ` --tier=TIER ` --display-name=CONNECTION_PROFILE_NAME
Windows (cmd.exe)
gcloud database-migration connection-profiles ^ create mysql CONNECTION_PROFILE_ID ^ --no-async ^ --region=REGION ^ --database-version=DATABASE_VERSION ^ --tier=TIER ^ --display-name=CONNECTION_PROFILE_NAME
您应该会收到类似如下所示的响应:
Waiting for connection profile [CONNECTION_PROFILE_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created connection profile CONNECTION_PROFILE_ID [OPERATION_ID]
- 完成网络配置设置。
根据您要使用的网络连接,您可能需要在创建迁移作业之前执行其他步骤。
- 如果您使用默认的公共 IP 地址连接,请将源数据库实例配置为允许来自 Cloud SQL 目标实例的公共地址和端口的连接。如需了解详情,请参阅 使用 IP 许可名单配置连接。
- 如果您使用反向 SSH 隧道,请在 Compute Engine 虚拟机上设置隧道。如需了解详情,请参阅 使用反向 SSH 隧道配置连接。
创建迁移作业。
运行以下命令(点击链接即可展开):gcloud database-migration migration-jobs create
此示例使用可选的
--no-async
标志,以便同步执行所有操作。这意味着某些命令可能需要一段时间才能完成。您可以跳过--no-async
标志以异步运行命令。如果您使用的是该版本,则需要使用gcloud database-migration operations describe
命令来验证操作是否成功。在使用下面的命令数据之前,请先进行以下替换:
- MIGRATION_JOB_ID,其中包含可供机器读取的迁移作业标识符。您可以使用此值通过 Database Migration Service Google Cloud CLI 命令或 API 处理迁移作业。
- REGION 替换为您要将迁移作业保存到的区域标识符。
- MIGRATION_JOB_NAME 为迁移作业提供一个直观易懂的名称。此值会显示在 Google Cloud 控制台中的 Database Migration Service 中。
- SOURCE_CONNECTION_PROFILE_ID,其中包含来源连接配置文件的机器可读标识符。
- DESTINATION_CONNECTION_PROFILE_ID,其中包含目标连接配置文件的机器可读标识符。
- MIGRATION_JOB_TYPE 替换为迁移作业的类型。允许的值有两个:
ONE_TIME
或CONTINUOUS
。如需了解详情,请参阅 迁移类型。 - PATH_TO_THE_FOLDER_IN_STORAGE_BUCKET_WITH_PHYSICAL_BACKUP_FILES,其中包含存储在 Cloud Storage 存储分区中某个文件夹中的实际备份文件的路径。
请使用以下格式:
gs://<bucket_name>/<path_to_backup_file_folder>
。 - 网络配置
如果您将专用 IP 连接与 VPC 网络对等互连或反向 SSH 隧道搭配使用,请将以下标志添加到您的命令中:
- 使用 VPC 网络对等互连实现专用 IP 连接
- 使用
--peer-vpc
标志指定您要与之建立对等互连的网络的名称。 - Compute Engine 虚拟机上的反向 SSH 隧道
- 使用以下标志为 Compute Engine 提供网络详细信息:
--vm-ip
、--vm-port
、--vpc
。您还可以使用可选的--vm
标志指定虚拟机的名称。
如需查看更多使用示例,请参阅 Google Cloud CLI 示例。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud database-migration migration-jobs \ create MIGRATION_JOB_ID \ --no-async \ --region=REGION \ --display-name=MIGRATION_JOB_NAME \ --source=SOURCE_CONNECTION_PROFILE_ID \ --destination=DESTINATION_CONNECTION_PROFILE_ID \ --type=MIGRATION_JOB_TYPE --dump-type=PHYSICAL --dump-path=PATH_TO_THE_FOLDER_IN_STORAGE_BUCKET_WITH_PHYSICAL_BACKUP_FILES
Windows (PowerShell)
gcloud database-migration migration-jobs ` create MIGRATION_JOB_ID ` --no-async ` --region=REGION ` --display-name=MIGRATION_JOB_NAME ` --source=SOURCE_CONNECTION_PROFILE_ID ` --destination=DESTINATION_CONNECTION_PROFILE_ID ` --type=MIGRATION_JOB_TYPE --dump-type=PHYSICAL --dump-path=PATH_TO_THE_FOLDER_IN_STORAGE_BUCKET_WITH_PHYSICAL_BACKUP_FILES
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ create MIGRATION_JOB_ID ^ --no-async ^ --region=REGION ^ --display-name=MIGRATION_JOB_NAME ^ --source=SOURCE_CONNECTION_PROFILE_ID ^ --destination=DESTINATION_CONNECTION_PROFILE_ID ^ --type=MIGRATION_JOB_TYPE --dump-type=PHYSICAL --dump-path=PATH_TO_THE_FOLDER_IN_STORAGE_BUCKET_WITH_PHYSICAL_BACKUP_FILES
您应该会收到类似如下所示的响应:
Waiting for migration job [MIGRATION_JOB_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created migration job MIGRATION_JOB_ID [OPERATION_ID]
第 3b 步。向 Cloud SQL 实例服务账号授予所需权限
当您创建迁移到新实例的迁移作业时,Database Migration Service 还会为您创建目标 Cloud SQL 实例。您需要先为实例的服务账号分配 Cloud Storage 权限,然后才能运行迁移。
如需向与目标实例关联的服务账号授予 Cloud Storage 权限,请按以下步骤操作:
-
在 Cloud SQL 实例详情页面上找到 Cloud SQL 实例的服务账号电子邮件地址。此地址使用以下格式:
<project-identifier>@gcp-sa-cloud-sql.iam.gserviceaccount.com
。 请参阅 Cloud SQL 文档中的 查看实例信息。 -
为服务账号添加 Storage Object Viewer (
roles/storage.objectViewer
) IAM 角色。如需了解如何使用 Identity and Access Management 管理访问权限,请参阅 IAM 文档中的 管理对项目、文件夹和组织的访问权限。
第 3c 步。(可选)测试迁移作业
在运行迁移作业之前,您可以执行测试操作,检查 Database Migration Service 是否可以访问所有必要的源和目标实体。借助 gcloud CLI,您可以测试已创建但尚未开始的迁移作业。
控制台
在 Google Cloud 控制台中,您只能测试在迁移作业创建向导中创建的草稿迁移作业。如果您未将作业另存为草稿,而是在向导中完整创建了作业,则只能使用 Google Cloud CLI 执行测试。
如需测试草稿迁移作业,请按以下步骤操作:
- 在 Google Cloud 控制台中,前往迁移作业页面。
- 在草稿标签页中,点击您要完成创建的迁移作业的显示名称。
系统随即会打开迁移作业创建向导。
- 在测试并创建迁移作业页面上,点击测试作业。 Database Migration Service 现在会检查您的目标实例是否具有所有必需的权限,以及是否可以连接到源数据库。
- 测试完成后,点击创建。
迁移作业现已创建完毕,可以开始运行了。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
- 将 MIGRATION_JOB_ID 替换为您的迁移作业标识符。
如果您不知道标识符,可以使用
gcloud database-migration migration-jobs list
命令列出给定区域中的所有迁移作业并查看其标识符。 - REGION 与存储连接配置文件的区域的标识符。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud database-migration migration-jobs \ verify MIGRATION_JOB_ID \ --region=REGION
Windows (PowerShell)
gcloud database-migration migration-jobs ` verify MIGRATION_JOB_ID ` --region=REGION
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ verify MIGRATION_JOB_ID ^ --region=REGION
结果
该操作会以异步方式执行。 因此,此命令会返回一个表示长时间运行的操作的 操作实体:
done: false metadata: '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata apiVersion: v1 createTime: '2024-02-20T12:20:24.493106418Z' requestedCancellation: false target: MIGRATION_JOB_ID verb: verify name: OPERATION_ID
如需查看操作是否成功,您可以查询返回的操作对象,或检查迁移作业的状态:
- 将
gcloud database-migration migration-jobs describe
命令与 MIGRATION_JOB_ID 结合使用,即可查看迁移作业的状态。 - 将
gcloud database-migration operations describe
命令与 OPERATION_ID 结合使用,即可查看操作本身的状态。
第 3d 步。启动迁移作业
迁移作业完全创建后(即未保存为草稿状态),您可以随时启动它以开始迁移数据。
如需启动迁移作业,请执行以下步骤:
控制台
- 在 Google Cloud 控制台中,前往迁移作业页面。
- 在作业标签页中,点击要启动的迁移作业的显示名称。
系统随即会打开迁移作业详情页面。
- 点击启动。
- 在对话框中,点击开始。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
- 将 MIGRATION_JOB_ID 替换为您的迁移作业标识符。
如果您不知道标识符,可以使用
gcloud database-migration migration-jobs list
命令列出给定区域中的所有迁移作业并查看其标识符。 - REGION 与存储连接配置文件的区域的标识符。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud database-migration migration-jobs \ start MIGRATION_JOB_ID \ --region=REGION
Windows (PowerShell)
gcloud database-migration migration-jobs ` start MIGRATION_JOB_ID ` --region=REGION
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ start MIGRATION_JOB_ID ^ --region=REGION
结果
该操作会以异步方式执行。 因此,此命令会返回一个表示长时间运行的操作的 操作实体:
done: false metadata: '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata apiVersion: v1 createTime: '2024-02-20T12:20:24.493106418Z' requestedCancellation: false target: MIGRATION_JOB_ID verb: start name: OPERATION_ID
如需查看操作是否成功,您可以查询返回的操作对象,或检查迁移作业的状态:
- 将
gcloud database-migration migration-jobs describe
命令与 MIGRATION_JOB_ID 结合使用,即可查看迁移作业的状态。 - 将
gcloud database-migration operations describe
命令与 OPERATION_ID 结合使用,即可查看操作本身的状态。
-
如需迁移到现有目标实例,您首先需要创建并配置目标实例。第 3a 步。准备目标实例
如需配置目标 Cloud SQL 实例,请执行以下步骤:
-
创建 Cloud SQL for MySQL 目标实例。确保您使用的计算资源和内存资源足以满足您的迁移需求。
请参阅 Cloud SQL 文档中的创建实例。
根据您要为迁移使用哪种连接方法,您可能需要向目标实例添加公共 IP 地址或专用 IP 地址。如需详细了解连接方法,请参阅 配置连接。
-
向与目标实例关联的服务账号授予 Cloud Storage 权限。系统会在您创建目标实例后创建此服务账号。
-
在 Cloud SQL 实例详情页面上找到 Cloud SQL 实例的服务账号电子邮件地址。此地址使用以下格式:
<project-identifier>@gcp-sa-cloud-sql.iam.gserviceaccount.com
。请参阅 Cloud SQL 文档中的 查看实例信息。 -
为服务账号添加 Storage Object Viewer (
roles/storage.objectViewer
) IAM 角色。如需了解如何使用 Identity and Access Management 管理访问权限,请参阅 IAM 文档中的 管理对项目、文件夹和组织的访问权限。
-
在 Cloud SQL 实例详情页面上找到 Cloud SQL 实例的服务账号电子邮件地址。此地址使用以下格式:
- 为您的 Cloud SQL 实例创建目标连接配置文件。
控制台
您无需创建目标连接配置文件。 在 Google Cloud 控制台中创建迁移作业时,您需要使用目标实例标识符,Database Migration Service 会为您管理连接配置文件。
请参阅 创建并运行迁移作业部分。
gcloud
此示例使用可选的
--no-async
标志,以便同步执行所有操作。这意味着某些命令可能需要一段时间才能完成。您可以跳过--no-async
标志以异步运行命令。如果您使用的是该版本,则需要使用gcloud database-migration operations describe
命令来验证操作是否成功。在使用下面的命令数据之前,请先进行以下替换:
- CONNECTION_PROFILE_ID,其中包含连接配置文件的机器可读标识符。
- 将 REGION 替换为您要在其中保存连接配置文件的区域的标识符。
- DESTINATION_INSTANCE_ID 替换为目标实例的实例标识符。
- (可选)CONNECTION_PROFILE_NAME,用于为连接配置文件指定一个直观易懂的名称。此值会显示在 Google Cloud 控制台中。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud database-migration connection-profiles \ create mysql CONNECTION_PROFILE_ID \ --no-async \ --cloudsql-instance=DESTINATION_INSTANCE_ID \ --region=REGION \ --display-name=CONNECTION_PROFILE_NAME
Windows (PowerShell)
gcloud database-migration connection-profiles ` create mysql CONNECTION_PROFILE_ID ` --no-async ` --cloudsql-instance=DESTINATION_INSTANCE_ID ` --region=REGION ` --display-name=CONNECTION_PROFILE_NAME
Windows (cmd.exe)
gcloud database-migration connection-profiles ^ create mysql CONNECTION_PROFILE_ID ^ --no-async ^ --cloudsql-instance=DESTINATION_INSTANCE_ID ^ --region=REGION ^ --display-name=CONNECTION_PROFILE_NAME
您应该会收到类似如下所示的响应:
Waiting for connection profile [CONNECTION_PROFILE_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created connection profile CONNECTION_PROFILE_ID [OPERATION_ID]
第 3b 步。创建和运行迁移作业
控制台
定义迁移作业的设置
- 在 Google Cloud 控制台中,前往迁移作业页面。
- 点击创建迁移作业。
系统随即会打开迁移作业配置向导页面。 此向导包含多个面板,可引导您完成每个配置步骤。
您可以随时点击保存并退出,暂停迁移作业的创建。您在此之前输入的所有数据都会保存在迁移作业草稿中。 您可以稍后完成草稿迁移作业。
- 在开始页面上,输入以下信息:
- 迁移作业名称
这是迁移作业的直观易懂的名称。此值会显示在 Google Cloud 控制台中。
- 迁移作业 ID
这是您的迁移作业的机器可读标识符。 您可以使用此值通过 Database Migration Service Google Cloud CLI 命令或 API 处理迁移作业。
- 从源数据库引擎列表中,选择 MySQL。
目标数据库引擎字段会自动填充,且无法更改。
- 选择要保存迁移作业的区域。
Database Migration Service 是一款完全区域性产品,这意味着与迁移相关的所有实体(源和目标连接配置文件、迁移作业、目标数据库)都必须保存在单个区域中。 根据需要数据的服务(例如 Compute Engine 实例、App Engine 应用及其他服务)的位置选择区域。选择目标区域后,此选择便无法更改。
- 迁移作业名称
- 点击保存并继续。
指定有关来源连接配置文件的信息
- 在定义来源页面上,执行以下步骤:
- 从来源连接配置文件下拉菜单中,选择源数据库的连接配置文件。
- 在自定义完全转储配置部分,点击修改配置。
- 在修改完整转储配置面板中,从完整转储方法下拉菜单中,选择基于物理。
- 在提供文件夹中,点击浏览,然后选择您上传完整转储文件的文件夹(准备源数据部分中的第 4 步)。
- 点击保存。
- 点击保存并继续。
选择目标 Cloud SQL 实例
- 从目标实例类型菜单中,选择现有实例。
- 在选择目标实例部分,选择目标实例。
- 查看实例详情部分中的信息,然后点击选择并继续。
- 如需迁移到现有目标数据库,Database Migration Service 会降级目标实例并将其转换为副本。 如需表明可以安全地执行降级操作,请在确认窗口中输入目标实例标识符。
- 点击确认并继续。
在源数据库实例和目标数据库实例之间建立连接
从连接方法下拉菜单中,选择一种网络连接方法。此方法用于指定新建的 Cloud SQL 实例连接源数据库的方式。当前的网络连接方法包括 IP 许可名单、反向 SSH 隧道和 VPC 对等互连。
如果您想使用… 然后... IP 许可名单网络连接方法, 您需要指定目标实例的传出 IP 地址。如果您创建的 Cloud SQL 实例是高可用性实例,请添加主实例和次要实例的传出 IP 地址。 反向 SSH 隧道网络连接方法, 您需要选择将托管隧道的 Compute Engine 虚拟机实例。 指定实例后,Google 会提供一个脚本,可执行用于设置源数据库和目标数据库之间的隧道的步骤。您需要在 Google Cloud CLI 中运行该脚本。
从同时连接到源数据库和 Google Cloud的机器上运行命令。
VPC 对等互连网络连接方法 您需要选择源数据库所在的 VPC 网络。Cloud SQL 实例将更新以连接到此网络。 选择并配置网络连接后,点击配置并继续。
测试、创建和运行迁移作业
在最后一步中,查看迁移作业设置、源数据库、目标数据库和连接方法的摘要,然后测试迁移作业设置的有效性。如果遇到任何问题,您可以修改迁移作业的设置。并非所有设置都可以修改。
-
在测试并创建迁移作业页面上,点击测试作业。
如果测试失败,您可以在流的适当部分解决问题,然后返回重新测试。如需了解如何排查失败的迁移作业测试,请参阅 诊断 MySQL 问题。
-
迁移作业测试完成后,点击创建并启动作业。
您的迁移目前正在进行中。当您启动迁移作业时,Database Migration Service 会开始完整转储,并会短暂锁定源数据库。
gcloud
如需配置和运行迁移,请执行以下步骤:
创建迁移作业。
运行以下命令(点击链接可展开):gcloud database-migration migration-jobs create
此示例使用可选的
--no-async
标志,以便同步执行所有操作。这意味着某些命令可能需要一段时间才能完成。您可以跳过--no-async
标志以异步运行命令。如果您使用的是该版本,则需要使用gcloud database-migration operations describe
命令来验证操作是否成功。在使用下面的命令数据之前,请先进行以下替换:
- MIGRATION_JOB_ID,其中包含可供机器读取的迁移作业标识符。您可以使用此值通过 Database Migration Service Google Cloud CLI 命令或 API 处理迁移作业。
- REGION 替换为您要将迁移作业保存到的区域标识符。
- MIGRATION_JOB_NAME 为迁移作业提供一个直观易懂的名称。此值会显示在 Google Cloud 控制台中的 Database Migration Service 中。
- SOURCE_CONNECTION_PROFILE_ID,其中包含来源连接配置文件的机器可读标识符。
- DESTINATION_CONNECTION_PROFILE_ID,其中包含目标连接配置文件的机器可读标识符。
- MIGRATION_JOB_TYPE 替换为迁移作业的类型。允许的值有两个:
ONE_TIME
或CONTINUOUS
。如需了解详情,请参阅 迁移类型。 - PATH_TO_THE_FOLDER_IN_STORAGE_BUCKET_WITH_PHYSICAL_BACKUP_FILES,其中包含存储在 Cloud Storage 存储分区中某个文件夹中的实际备份文件的路径。
请使用以下格式:
gs://<bucket_name>/<path_to_backup_file_folder>
。 - 网络配置
如果您将专用 IP 连接与 VPC 网络对等互连或反向 SSH 隧道搭配使用,请将以下标志添加到您的命令中:
- 使用 VPC 网络对等互连实现专用 IP 连接
- 使用
--peer-vpc
标志指定您要与之建立对等互连的网络的名称。 - Compute Engine 虚拟机上的反向 SSH 隧道
- 使用以下标志为 Compute Engine 提供网络详细信息:
--vm-ip
、--vm-port
、--vpc
。您还可以使用可选的--vm
标志指定虚拟机的名称。
如需查看更多使用示例,请参阅 Google Cloud CLI 示例。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud database-migration migration-jobs \ create MIGRATION_JOB_ID \ --no-async \ --region=REGION \ --display-name=MIGRATION_JOB_NAME \ --source=SOURCE_CONNECTION_PROFILE_ID \ --destination=DESTINATION_CONNECTION_PROFILE_ID \ --type=MIGRATION_JOB_TYPE --dump-type=PHYSICAL --dump-path=PATH_TO_THE_FOLDER_IN_STORAGE_BUCKET_WITH_PHYSICAL_BACKUP_FILES
Windows (PowerShell)
gcloud database-migration migration-jobs ` create MIGRATION_JOB_ID ` --no-async ` --region=REGION ` --display-name=MIGRATION_JOB_NAME ` --source=SOURCE_CONNECTION_PROFILE_ID ` --destination=DESTINATION_CONNECTION_PROFILE_ID ` --type=MIGRATION_JOB_TYPE --dump-type=PHYSICAL --dump-path=PATH_TO_THE_FOLDER_IN_STORAGE_BUCKET_WITH_PHYSICAL_BACKUP_FILES
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ create MIGRATION_JOB_ID ^ --no-async ^ --region=REGION ^ --display-name=MIGRATION_JOB_NAME ^ --source=SOURCE_CONNECTION_PROFILE_ID ^ --destination=DESTINATION_CONNECTION_PROFILE_ID ^ --type=MIGRATION_JOB_TYPE --dump-type=PHYSICAL --dump-path=PATH_TO_THE_FOLDER_IN_STORAGE_BUCKET_WITH_PHYSICAL_BACKUP_FILES
您应该会收到类似如下所示的响应:
Waiting for migration job [MIGRATION_JOB_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created migration job MIGRATION_JOB_ID [OPERATION_ID]
-
将 Cloud SQL 目标实例降级。
运行以下命令(点击链接可展开):gcloud database-migration migration-jobs demote-destination
在使用下面的命令数据之前,请先进行以下替换:
- 将 MIGRATION_JOB_ID 替换为您的迁移作业标识符。
如果您不知道标识符,可以使用
gcloud database-migration migration-jobs list
命令列出给定区域中的所有迁移作业并查看其标识符。 - REGION 与存储连接配置文件的区域的标识符。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud database-migration migration-jobs \ demote-destination MIGRATION_JOB_ID \ --region=REGION
Windows (PowerShell)
gcloud database-migration migration-jobs ` demote-destination MIGRATION_JOB_ID ` --region=REGION
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ demote-destination MIGRATION_JOB_ID ^ --region=REGION
结果
该操作会以异步方式执行。 因此,此命令会返回一个表示长时间运行的操作的 操作实体:
done: false metadata: '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata apiVersion: v1 createTime: '2024-02-20T12:20:24.493106418Z' requestedCancellation: false target: MIGRATION_JOB_ID verb: demote-destination name: OPERATION_ID
如需查看操作是否成功,您可以查询返回的操作对象,或检查迁移作业的状态:
- 使用
gcloud database-migration migration-jobs describe
命令查看迁移作业的状态。 - 将
gcloud database-migration operations describe
与 OPERATION_ID 搭配使用,即可查看操作本身的状态。
- 将 MIGRATION_JOB_ID 替换为您的迁移作业标识符。
-
(可选)执行迁移作业测试
您可以运行检查,以验证 Database Migration Service 是否可以访问所有必要的源和目标实体。 运行以下命令(点击链接可展开):gcloud database-migration migration-jobs verify
在使用下面的命令数据之前,请先进行以下替换:
- 将 MIGRATION_JOB_ID 替换为您的迁移作业标识符。
如果您不知道标识符,可以使用
gcloud database-migration migration-jobs list
命令列出给定区域中的所有迁移作业并查看其标识符。 - REGION 与存储连接配置文件的区域的标识符。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud database-migration migration-jobs \ verify MIGRATION_JOB_ID \ --region=REGION
Windows (PowerShell)
gcloud database-migration migration-jobs ` verify MIGRATION_JOB_ID ` --region=REGION
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ verify MIGRATION_JOB_ID ^ --region=REGION
结果
该操作会以异步方式执行。 因此,此命令会返回一个表示长时间运行的操作的 操作实体:
done: false metadata: '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata apiVersion: v1 createTime: '2024-02-20T12:20:24.493106418Z' requestedCancellation: false target: MIGRATION_JOB_ID verb: verify name: OPERATION_ID
如需查看操作是否成功,您可以查询返回的操作对象,或检查迁移作业的状态:
- 将
gcloud database-migration migration-jobs describe
命令与 MIGRATION_JOB_ID 结合使用,即可查看迁移作业的状态。 - 将
gcloud database-migration operations describe
命令与 OPERATION_ID 结合使用,即可查看操作本身的状态。
- 将 MIGRATION_JOB_ID 替换为您的迁移作业标识符。
-
启动迁移作业。
运行以下命令(点击链接即可展开):gcloud database-migration migration-jobs start
在使用下面的命令数据之前,请先进行以下替换:
- 将 MIGRATION_JOB_ID 替换为您的迁移作业标识符。
如果您不知道标识符,可以使用
gcloud database-migration migration-jobs list
命令列出给定区域中的所有迁移作业并查看其标识符。 - REGION 与存储连接配置文件的区域的标识符。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud database-migration migration-jobs \ start MIGRATION_JOB_ID \ --region=REGION
Windows (PowerShell)
gcloud database-migration migration-jobs ` start MIGRATION_JOB_ID ` --region=REGION
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ start MIGRATION_JOB_ID ^ --region=REGION
结果
该操作会以异步方式执行。 因此,此命令会返回一个表示长时间运行的操作的 操作实体:
done: false metadata: '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata apiVersion: v1 createTime: '2024-02-20T12:20:24.493106418Z' requestedCancellation: false target: MIGRATION_JOB_ID verb: start name: OPERATION_ID
如需查看操作是否成功,您可以查询返回的操作对象,或检查迁移作业的状态:
- 将
gcloud database-migration migration-jobs describe
命令与 MIGRATION_JOB_ID 结合使用,即可查看迁移作业的状态。 - 将
gcloud database-migration operations describe
命令与 OPERATION_ID 结合使用,即可查看操作本身的状态。
启动迁移作业后,目标 Cloud SQL 实例会进入只读模式,由 Database Migration Service 全权管理。当数据完全迁移后,您可以将其提升为独立实例。
注意:您可以使用 Database Migration Service 可观测性功能监控迁移进度以及目标实例运行状况。 请参阅 [迁移作业指标](/database-migration/docs/mysql/migration-job-metrics)。
- 将 MIGRATION_JOB_ID 替换为您的迁移作业标识符。
-
创建 Cloud SQL for MySQL 目标实例。确保您使用的计算资源和内存资源足以满足您的迁移需求。
请参阅 Cloud SQL 文档中的创建实例。
第 4 步:(可选)停止迁移
如果您想取消数据迁移流程,可以随时停止并删除迁移作业。您可以在 Google Cloud 控制台中或使用 Google Cloud CLI 管理迁移作业。
如需了解如何在 Google Cloud 控制台中管理迁移作业,请参阅管理迁移作业。
如需了解如何使用 Google Cloud CLI 管理迁移作业,请参阅
gcloud database-migration migration-jobs
参考文档。
第 5 步:完成迁移
迁移作业成功完成后,请执行以下任一步骤来完成迁移作业:
对于一次性迁移:迁移作业状态会更改为已完成。无需执行进一步操作,您可以清理迁移作业和连接配置文件资源。
对于持续性迁移:提升迁移作业,将应用切换到新的数据库实例。