本文介绍如何下载RDS MySQL实例的备份。

其他引擎请参见:

下载前必读

下载备份前,请根据您的场景和目的,选择合适的方案。
说明 下载的备份数据无法直接用于恢复到RDS实例,如需恢复实例,请参见数据恢复方案概览
场景和目的 建议
  • 从RDS实例迁移至其它RDS实例或自建数据库
  • 恢复已有的备份
选择以下其中一种方式:
  • 查询过去某个时间点的数据
  • 查询备份里的数据
选择以下其中一种方式:
  • 数据分析
  • 离线归档
请参见高级下载
  • 在本地保存一份备份
  • 下载备份用于审计
选择以下其中一种方式:
  • 把备份转移至您的OSS
RDS备份不占用存储空间,存放于备份空间且无法转移,如需在您的OSS上存放备份,您可以选择以下其中一种方式:
  • 长期保留备份
  • 自动下载备份

费用说明

  • 外网流量费用:2021年11月25日0点开始, 超出免费额度后会收取外网流量费用。更多信息,请参见【通知】RDS备份下载功能即将商业化
    • 内网下载:免费。
    • 外网下载:超出免费额度后,根据下载数据量每天扣费一次。关于费用的详细信息,请参见DBS计费概述
    • 外网下载免费额度:500 GB/月/实例。
  • 实例备份转换费用:仅涉及高级下载。当前公测,免费使用。
说明

查看外网备份已下载量请进入RDS实例列表,单击实例ID,在基本信息页面的使用量统计区域查看备份下载量

高级下载

高级下载可以将备份文件转换成CSV文件下载到本地,方便您进行数据分析以及离线归档。

说明 当前仅华北3(张家口)、华南3(广州)、华北2(北京)、华北2(上海)、华东1(杭州)、华南1(深圳)地域支持高级下载功能,其余地域将陆续上线。
前提条件
  • 实例如下:
    • RDS MySQL 8.0云盘版
    • RDS MySQL 5.7云盘版
  • 实例内核小版本必须大于20201031。如何升级内核小版本,请参见升级内核小版本
  • 备份数据未加密。加密的云盘实例不支持高级下载。
  • RAM账号需要具备下载备份文件的权限。如需为RAM账号授权,请参见添加下载备份文件权限给只读子账号

功能限制

  • 本功能支持导出大部分的表结构,部分结构信息暂不支持导出。
    • 支持导出:列信息、主键索引、非主键索引、唯一索引、分区表信息、表引擎、表级别或库级别的字符集与字符排序规则
    • 不支持导出:表达式索引、外键、生成列、隐藏列、视图、函数、存储过程、系统变量、触发器
  • 不支持空间数据类型的字段。当实例包含了以下类型的字段时,转换任务会失败:

    GEOMETRYPOINTLINESTRINGPOLYGONMULTIPOINTMULTILINESTRINGMULTIPOLYGONGEOMETRYCOLLECTION

  • 导出的CSV文件中不包含如下系统库:

    information_schemamysqlperformance_schemasys__recycle_bin__

操作步骤

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
  2. 在左侧导航栏中,单击备份恢复
  3. 数据备份页签,单击目标备份集右侧操作列的实例备份下载
    说明 默认展示近8天内的备份数据,如需查看8天前的备份,请修改时间范围。
  4. 下载时间点与备份集流程下方,单击下一步
    说明 当前仅支持按备份集下载
  5. 下载实例与库表流程下方,单击下一步
    说明 当前仅支持实例下载
  6. 下载目标与格式流程下方,选择下载目标下载格式,单击完成
    说明
    • 下载目标:选择下载的方式。当前仅支持通过URL链接下载。
    • 下载格式:下载的格式。当前仅支持转换为CSV。
  7. 页面自动跳转至备份下载页签,等待目标备份数据的状态资源排队中转变为成功,即可通过下载目标列下提供的内网或外网链接下载备份数据。
    说明
    • 具体下载,请参见附录:下载方法
    • 备份下载将产生备份集转换费用和流量费用。备份集转换费用公测期间暂时免费,内网流量免费,外网费用将根据计费标准收取,具体详情,请参见费用说明
  8. 通过高级下载功能下载的CSV文件可恢复到本地数据库。

    功能限制

    从下载的备份集恢复到本地MySQL数据库时,存在以下限制条件:
    • 不支持以下二进制字段类型:BITBINARYVARBINARYTINYBLOBBLOBMEDIUMBLOBLONGBLOB
      说明 如果下载的备份集包含二进制类型字段,此字段将会使用十六进制的表示进行存储。在导入时,MySQL会将十六进制表示的字段当作字符串处理。此种情形需要您手动在load data local infile命令中使用UNHEX函数转换为原始二进制串。
    • 不支持以下空间字段类型:GEOMETRYPOINTLINESTRINGPOLYGONMULTIPOINTMULTILINESTRINGMULTIPOLYGONGEOMETRYCOLLECTION
    操作步骤
    1. 下载并解压备份集文件,具体操作,请参见下载解压备份
    2. 点此下载脚本文件。
    3. restore_from_downloads.py执行权限命令。
      chmod +x ./restore_from_downloads.py
    4. 在Linux服务器上,执行如下命令恢复备份集。
      python ./restore_from_downloads.py <备份集解压后的路径> <数据库主机> <数据库端口> <数据库账号> <数据库密码>
      说明
      • 请确保本地数据库中没有和待导入的数据库同名的库,否则将导入失败。
      • 如果您的数据库账号名或密码包含特殊字符(例如:#、空格等等),命令行传入参数时请用英文双引号("")括起来。例如:数据库密码是:#1234,那执行脚本处应传入"#1234"
      1

常规下载

前提条件

操作步骤

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
  2. 在左侧导航栏中,单击备份恢复
  3. 选择数据备份日志备份页签。
  4. 如需查看8天前的备份,请修改时间范围。默认时间范围是近8天。
  5. 单击目标备份右侧操作列的实例备份下载(数据备份)或下载(日志备份)。
    • 对于数据备份,自动跳转至常规下载页面,您可通过下载地址,或页面下方提供的下载按钮下载备份数据。
      注意
      • 使用内网地址下载时,需要在同地域的VPC网络中才可下载,在跨地域VPC以及经典网络的服务器端无法下载。
      • 下载备份文件,内网流量免费,外网流量收费默认选中,通过外网链接下载备份数据时,超出外网下载免费额度后需要支付外网流量费用。更多信息,请参见费用说明
      • 通过下载地址下载时,可以参考附录:下载方法
    • 对于日志备份,在弹出的对话框中,单击已了解,要下载或复制下载地址通过其他途径下载。
      • 复制内网地址:专有网络的ECS与RDS内网互通时,可以在ECS上通过内网地址下载备份,更快更安全。
      • 复制外网地址:无法内网访问RDS时,可通过外网地址下载备份。
      注意
      • 如果用于恢复数据到自建数据库,数据备份的时间点必须在日志备份的时间范围内,且日志备份和数据备份必须属于同一实例,即备份所在实例编号相同。
      • 当实例是高可用版或三节点版时,主备实例都会生成日志备份,在服务可用性页面可以查看主备实例的编号。
      • 日志备份是指本地日志的备份。如需获取本地日志,请使用mysqlbinlog
      • 使用内网地址下载时,需要在同地域的VPC网络中才可下载,在跨地域VPC以及经典网络的服务器端无法下载。
      • 下载备份文件,内网流量免费,外网流量收费默认选中,通过外网链接下载备份数据时,超出外网下载免费额度后需要支付外网流量费用。更多信息,请参见费用说明

附录:下载方法

本章节简单介绍常用的下载命令。

说明
  • 如果网络下载速度过低(小于每秒64 KB),可能会导致下载中断的情况,请下载时保持网络状况良好。
  • 如果将备份文件下载到ossfs挂载盘,一般还需要调整ossfs的multipart_size参数,该参数默认支持最大100 GB文件,如果下载的备份集大于100 GB将会下载失败。ossfs概述及参数配置详情请参见:ossfs概述查看选项
  • 推荐使用本文提供的wget,curl等命令下载备份集。如果使用其他第三方工具下载,可能会出现重复下载的情况(即实际下载数据量大于备份集大小),且会因使用外网流量下载而产生超出备份集大小部分的流量费用。

命令:nohup wget -c -t 0 "备份文件下载地址" -O 下载的目标路径及文件名 > 下载输出日志到对应文件 &

示例:nohup wget -c -t 0 "https://example.aliyundoc.com/examplebackup.qp.xb" -O /backup/examplebackup.qp.xb > /tmp/download.log &

各命令代表含义如下:

  • -t 0:无限重试。
  • -c:支持断点续传。
  • -O:下载的目标路径及文件名。
  • nohup:避免因手误执行复制操作或者终端断开连接,把正在进行的下载中断,且当下载完毕后,之前的进程将会自动退出。

命令:nohup curl -C - --retry 10 "备份文件下载地址" -o 自定义文件名 > 下载输出日志到对应文件 &

示例:nohup curl -C --retry 10 "https://example.aliyundoc.com/examplebackup.qp.xb" -o backup.qp.xb > /tmp/download.log &

各命令代表含义如下:

  • --retry 10:任务失败时的重试次数,以上示例表示重试10次。
  • -C -:支持自动断点续传。
  • -o:下载的目标路径及文件名。
  • nohup:避免因手误执行复制操作或者终端断开连接,把正在进行的下载中断,且当下载完毕后,之前的进程将会自动退出。

常见问题

问:如何使用下载的数据备份和日志备份?

答:您可以将本地盘实例常规下载的备份文件恢复至自建数据库,具体请参见RDS MySQL物理备份文件恢复到自建数据库RDS MySQL逻辑备份文件恢复到自建数据库

问:使用云盘实例高级下载的数据恢复到本地MySQL数据库时,执行出现报错ERROR 1148 (42000): The used command is not allowed with this MySQL version

答:在MySQL上执行查询脚本show variables like 'local_infile';。如果结果是OFF,执行以下语句开启文件导入:set global local_infile = 1;。上述操作完成后,再次执行导入脚本即可成功。

相关API

API 描述
DescribeBackups 查看数据备份列表。
DescribeBinlogFiles 查询Binlog文件列表。