使用 Azure Database for MySQL 导入 CLI 迁移本地 MySQL 服务器
是时候从本地 MySQL 服务器迁移到 Azure Database for MySQL 灵活服务器了。 你已决定执行脱机迁移,因为网络设置会阻止源服务器和目标服务器之间的直接连接。 下图汇总了该过程:
先决条件
在源服务器上,确保配置了以下设置:
-
lower_case_table_names = 1 innodb_file_per_table = ON innodb_page_size = 16348 (MySQL Default)
系统表空间名称应为
ibdata1
。系统表空间大小应大于或等于 12 MB。 (MySQL 默认值)
仅支持 INNODB 引擎。
-
需要 Azure Blob 存储容器。 如果没有合适的容器,请使用本快速入门创建一个容器。 需要 Azure Blob 容器的共享访问签名 (SAS) 令牌。 若要优化性能,请将存储和目标灵活服务器保留在同一区域中。
需要关闭应用程序,以防止对数据库进行任何更改。
过程
对 MySQL 数据库进行物理备份。 我们使用 Percona 的开源 XtraBackup 工具。
按照以下步骤将备份文件上传到 Azure Blob 存储。
填写变量后,通过运行此命令来触发导入。 也可以通过更改 Standard_D2ds_v4 来修改计算大小。
-
az mysql flexible-server import create --data-source-type "azure_blob" --data-source $BLOB_DATA_URL --data-source-backup-dir "mysql_backup_percona" –-data-source-token $SAS_TOKEN --resource-group $RESOURCE_GROUP --name $FLEXIBLE_SERVER_NAME –-sku-name Standard_D2ds_v4 --tier GeneralPurpose –-version 8.0 -–location westus --auto-scale-iops Enabled
预期导入时间与备份文件成比例更长。 导入 1 GiB 备份文件大约需要半分钟,而 1 TB 的文件大约需要 23 分钟。
-
请记住以下限制:
- 不会迁移用户和权限。 导入操作完成后,需要手动转储用户和权限来迁移登录名。
- 高可用性在导入期间不可用,因此在迁移完成后请启用高可用性。
迁移用户和特权后,将应用程序连接到灵活服务器,迁移即完成。
提示
或者,如果要执行联机迁移,则应执行上述导出和导入,然后设置从源到目标的复制。 当目标完全捕获到源时,在关闭源数据库之前,你应已经转换应用程序。