使用 Azure Database for MySQL 导入 CLI 迁移本地 MySQL 服务器

已完成

是时候从本地 MySQL 服务器迁移到 Azure Database for MySQL 灵活服务器了。 你已决定执行脱机迁移,因为网络设置会阻止源服务器和目标服务器之间的直接连接。 下图汇总了该过程:

azure-import-cli-migration-procedure 的屏幕截图。

先决条件

  • 在源服务器上,确保配置了以下设置:

    • 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) 令牌。 若要优化性能,请将存储和目标灵活服务器保留在同一区域中。

  • 需要关闭应用程序,以防止对数据库进行任何更改。

过程

  1. 对 MySQL 数据库进行物理备份。 我们使用 Percona 的开源 XtraBackup 工具。

    1. 根据这些说明安装该工具(适用于 MySQL 8.0)。

    2. 创建完整备份;例如:

      xtrabackup --backup --target-dir=/data/backups/
      
  2. 按照以下步骤将备份文件上传到 Azure Blob 存储。

  3. 填写变量后,通过运行此命令来触发导入。 也可以通过更改 Standard_D2ds_v4 来修改计算大小。

    1. 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
      
    2. 预期导入时间与备份文件成比例更长。 导入 1 GiB 备份文件大约需要半分钟,而 1 TB 的文件大约需要 23 分钟。

请记住以下限制:

  • 不会迁移用户和权限。 导入操作完成后,需要手动转储用户和权限来迁移登录名。
  • 高可用性在导入期间不可用,因此在迁移完成后请启用高可用性。

迁移用户和特权后,将应用程序连接到灵活服务器,迁移即完成。

提示

或者,如果要执行联机迁移,则应执行上述导出和导入,然后设置从源到目标的复制。 当目标完全捕获到源时,在关闭源数据库之前,你应已经转换应用程序。