本文介绍如何把OSS上的全量备份文件迁移到专属集群MyBase for MySQL。

前提条件

  • 自建MySQL实例为社区版5.7.29及以下版本。
  • OSS Bucket与RDS实例需要处于相同地域,关于如何创建OSS Bucket,请参见创建存储空间

使用限制

  • MySQL版本约束
    目前仅支持自建实例为社区版MySQL 5.7迁移至专属集群MyBase for MySQL 5.7实例。
    说明 在导入完成后,可以升级数据库实例。
  • MySQL配置约束
    • 不支持将表定义在默认的MySQL数据目录之外的源数据库迁移。
    • .innodb_data_file_path参数必须仅配置一个使用默认数据文件名ibdata1的数据文件。使用此方法无法迁移具有两个数据文件或具有不同名称的数据文件的数据库。下面是不允许使用的文件名示例:

      innodb_data_file_path=ibdata1:50M; ibdata2:50M:autoextendinnodb_data_file_path=ibdata01:50M:autoextend

    • RDS实例参数配置
    • 恢复后的RDS实例参数配置使用阿里云RDS默认配置,默认不区分大小写,lower_case_table_names=1
    说明 您可以使用校验工具验证是否存在MySQL配置约束,命令如下:
    ./backup-helper -host [实例地址] -user [用户]  -port [端口] --password [密码]
    s
  • 备份约束
    • 仅支持使用Percona XtraBackup创建本地数据库的备份。
    • 对于MySQL 5.7迁移,必须使用Percona XtraBackup 2.4。
    • 不支持使用Percona XtraBackup创建的部分备份(MySQL库除外)。在备份数据库的源文件时,不能使用以下选项创建部分备份:--tables--tables-exclude--tables-file--databases--databases-file
    • 无法从OSS存储桶中的加密备份进行还原,即不支持备份文件加密。
    • 不支持差异备份文件或日志备份文件。
    • 全量备份文件名不能包含特殊字符,否则会导致上云失败。
    • 授予RDS服务账号访问OSS的权限以后,系统会在访问控制RAM的角色管理中创建名为AliyunRDSImportRole的角色,请勿修改或删除这个角色,否则会导致上云任务无法下载备份文件而失败。如果修改或删除了这个角色,您需要通过数据上云向导重新授权。
    • 在OSS备份数据恢复上云任务没有完成之前,请不要删除OSS上的备份文件,否则会导致上云任务失败。
    • 备份文件名仅支持_QP.XB和TAR.GZ为后缀名。
  • OSS上传约束
    • OSS使用限制:

      使用命令行分片上传,单个文件需限制在16 TB以内,详情请参见OSS使用限制

    • 存储备份文件的OSS区域必须与还原到的RDS实例区域一致。
  • 还原约束
    • 只能将数据导入到新数据库实例中,而不能导入到现有的数据库实例中,防止误操作覆盖实例数据。
    • 无法还原大小超过了阿里云RDS for MySQL 所支持的最大数据库大小的数据库,参见RDS数据库实例类的硬件规格选择,详情请参见主实例规格列表
    • 还原数据库时,将复制备份,然后在数据库实例上提取。因此,为数据库实例预配置的存储空间,应该等于或大于备份大小之和加上磁盘上原始数据库大小,参考备份压缩比,推荐为备份文件的5倍,压缩后的数据最大为400 GB。
    • 不会自动导入用户账户,自定义函数,存储过程。请从源数据库中保存的用户账户,自定义函数,存储过程,并稍后通过阿里云RDS将其添加到新数据库实例中。
    • 不会自动导入时区信息。请记录源数据库的时区信息,并稍后通过阿里云RDS设置新数据库实例的时区,详情请参见RDS MySQL实例间的双向同步
  • 复制约束
    • 仅支持基于GTID方式复制。因此,自建实例需要开启GTID复制,将gtid_modeenforce_gtid_consistency均设置为ON
    • 备份校验记录默认保存7天,超过7天的备份记录以及生成的快照会自动删除,建立复制关系操作应在实例恢复完成后尽快实施,避免您的自建数据库Binlog被清理,以及备份校验后生成的快照被删除。

备份本地数据库

  1. Xtrabackup下载

    对于MySQL 5.7 推荐使用Xtrabackup 2.4版本进行备份,单击Xtrabackup进行下载。

  2. 备份自建数据库
    使用Percona XtraBackup实用程序 (xtrabackup) 备份您的数据库,推荐在从库或备库上进行备份操作,示例如下:
    innobackupex --backup --host=<dbhost> --port=<dbport> --user=<dbuser> --password=<password> --stream=xbstream --compress --target-dir=/tmp/oss-restore/backup 2> /tmp/oss-restore/backup/backup.log > backup_qp.xb
    说明 假设使用命令创建MySQL数据库备份,并将这些文件存储在/tmp/oss-restore/backup文件夹中。只备份除MySQL库以外的数据相关的库,考虑备份文件较大,为加快上传速度,需要进行压缩,xbstream方式保存,并且只保存了一个OSS文件。

上传备份文件到OSS

本地数据库备份完成后,需要将备份文件上传到您的OSS Bucket中,您可以采用如下方法之一:
  • 使用ossbrowser工具上传

    推荐使用ossbrowser工具上传备份文件到OSS,详情请参见 ossbrowser

  • 使用OSS控制台上传

    如果备份文件小于5 GB,可以直接使用OSS控制台上传,详情请参见使用OSS控制台上传

  • 使用OSS API上传

    您可以使用OSS OpenAPI,通过断点续传的方式上传备份文件到OSS Bucket,详情请参见断点续传

说明 关于公共云下OSS Region和Endpoint对照表,详情请参见公共云下OSS Region和Endpoint对照表

创建数据上云任务

  1. 登录云数据库专属集群控制台
  2. 在页面左上角,选择目标地域。
    选择地域
  3. 在左侧导航栏单击数据备份,单击右侧导入备份
  4. 数据导入向导页面,双击下一步,进入数据导入步骤,设置如下参数。
    配置项 说明
    版本 MySQL 5.7。
    地域 选择地域。
    OSS Bucket 选择备份文件所在的OSS Bucket。
    OSS文件名 单击右侧放大镜按钮,可以按照备份文件名前缀模糊查找,会展示文件名、文件大小和更新时间,请选择需要上云的备份文件。
    说明 如果您是第一次使用OSS备份数据恢复上云功能,需要给RDS官方服务账号授予访问OSS的权限,请单击授权地址并同意授权,否则会因权限问题导致OSS Bucket下拉列表为空。

恢复RDS实例

您可以在备份恢复页面查看备份上云记录,选择校验成功的备份集,单击恢复按钮,使用校验成功的备份集生成的备份快照创建MySQL实例。