API 文档

备份数据库

最近更新时间:2020-09-03 17:41:35

为防止数据丢失或损坏,您可以使用自动备份或手动备份的方式来备份数据库。

备份简介

备份方式

云数据库 MySQL 高可用版和金融版支持自动备份手动备份两种方式来备份数据库。

备份类型

云数据库 MySQL 高可用版和金融版支持两种备份类型:

  • 物理备份,物理数据全拷贝(自动备份与手动备份均支持)。
  • 逻辑备份,SQL 语句的备份(手动备份支持)。
    说明:

    • 物理备份恢复方式需要用 xbstream 解包,详细操作请参见 使用物理备份恢复数据库
    • 单个实例的表数量超过100万后,可能会造成备份失败,同时也会影响数据库监控,请合理规范表的数量,控制单个实例表数量不超过100万。
    • 由于 Memory 引擎表的数据存储在内存中,因此无法对 Memory 引擎表进行物理备份,为避免丢失数据,建议将 Memory 引擎表转换成 InnoDB 表。
    • 实例存在大量无主键表,可能会造成备份失败,同时会影响实例的高可用性,请及时对无主键的表创建主键或者二级索引。
物理备份的优势 逻辑备份的劣势
  • 备份速度快。
  • 支持流式备份和压缩。
  • 备份成功率高。
  • 恢复简单并且高效。
  • 依赖备份进行的耦合操作,例如,增加 RO、增加灾备会变得更快。
  • 物理备份完成的平均时长为逻辑备份的八分之一左右。
  • 物理备份的导入速度比逻辑备份导入快十倍左右。
  • 恢复时需要执行 SQL 和构建索引,恢复时间长。
  • 备份速度慢,数据量大的情况下尤为明显。
  • 备份过程中会对实例造成压力,可能会加大主从延迟。
  • 有可能会丢失浮点数的精度信息。
  • 由于各种问题(错误视图等),可能导致备份失败。
  • 依赖备份进行的耦合操作,例如,增加 RO、增加灾备会变得缓慢。
  • 备份对象

    数据备份 日志备份
    MySQL 高可用版和金融版:
  • 自动备份支持全量物理备份。
  • 手动备份支持全量物理备份、全量逻辑备份和单库单表逻辑备份。
  • 自动备份与手动备份均支持压缩和下载。
  • 数据库的 binlog 日志文件备份支持 MySQL 高可用版和金融版:
  • 日志文件占用实例备份空间。
  • 日志文件支持下载,但不支持压缩。
  • 可设置日志文件保留时长。
  • 注意事项

    • 云数据库 MySQL 的自动备份于2019年02月26日起,仅支持物理备份。自动备份设置默认方式为物理备份,不再提供逻辑备份。存量自动备份为逻辑备份的实例会陆续被自动切换为物理备份。
      此切换不会影响您业务访问,可能会影响您自动备份的使用习惯。若您需要逻辑备份,可以使用 云数据库 MySQL 控制台 中的手动备份方式或者通过 API 调用 来生成逻辑备份。
    • 不论是逻辑备份还是物理备份文件都会被压缩,故部分下载文件无法使用,可通过手动逻辑备份中的备份部分库表功能代替,请参见 手动备份
    • 实例备份文件占用备份空间,请合理使用备份空间,超出免费额度的备份空间会进行收费,请参见 备份空间收费说明
    • 建议选择业务低峰期进行备份。
    • 为避免所需备份文件超出保留时间被删除,请及时下载所需的备份文件至本地。
    • 备份期间禁止 DDL 操作,避免锁表导致备份失败。
    • 基础版 MySQL 实例不支持数据库备份。

    自动备份 MySQL 数据

    1. 登录 MySQL 控制台,在实例列表页,单击实例名进入管理页面,选择【备份恢复】>【自动备份设置】。
    2. 在弹出的备份设置对话框选择各备份参数,单击【确定】。参数说明如下:
      说明:

      • 回档功能 基于备份周期和备份保留天数内的数据备份 + 日志备份(binlog),缩短自动备份频率和保留天数会影响实例数据的回档时间范围,请您权衡备份配置。
        例如,设置备份周期为周一、周四,保留天数为7天,则可以回档到7天内(数据备份和日志有效备份实际存储时长)的任意时刻。
      • 自动备份无法手动删除,可设置备份保留时间,到期后会自动删除。
      参数 说明
      备份周期 为保障您的数据安全,请设置一周至少备份两次,默认为星期一至星期日。
      备份时间
      • 默认时间为系统自动分配的备份发起时间。
      • 可自定义选择时间区间,建议设置为业务低峰期。备份发起时间只是备份开始启动的时间,并不代表备份结束的时间。
        例如,选择:02:00 - 06:00点,系统会在02:00 - 06:00时间范围内的某一个时间点发起备份,具体的发起时间点取决于后端备份策略和备份系统状况。
      数据备份保留时间 数据备份文件可以保留7天 - 732天,默认为7天。
      日志备份保留时间 日志备份文件可以保留7天 - 732天,默认为7天。日志备份天数必须小于等于数据备份天数。

    手动备份 MySQL 数据

    手动备份功能允许用户自助发起备份任务。

    说明:

    • 手动备份支持全量物理备份、全量逻辑备份和单库单表逻辑备份。
    • 手动备份可在备份列表手动删除,释放掉备份空间,避免空间浪费和占用,没有手动删除的前提下会一直保留。
    • 实例在执行每天的自动备份任务期间,无法发起手动备份。
    1. 在实例列表页,单击实例名进入管理页面,选择【备份恢复】>【手动备份】页签。
    2. 在弹出的备份设置对话框,选择备份方式和对象,单击【确定】。
      说明:

      如果是逻辑备份下的单库备份或单表备份,请在左侧【选择库表】里勾选要备份的数据库或数据表,将数据库或表加入右侧列表。若您还没有数据库,请先创建数据库或表。

    热点问题

    1. 超出备份保留时间的备份还可以下载或还原吗?

    到期后的备份集会自动删除,无法进行下载还原。

    • 建议您根据需求合理设置备份保留时间,或在 MySQL 控制台 下载备份文件至本地。
    • 您也可以在控制台通过手动备份实例数据,手动备份会一直保存。
      说明:

      手动备份亦会占用备份空间,请合理使用备份空间,避免造成额外的费用。

    2. 备份可以手动删除吗?

    • 自动备份无法手动删除,可设置备份保留时间,到期后会自动删除。
    • 手动备份可在 MySQL 控制台 的备份列表手动删除,没有手动删除的前提下会一直保留。

    3. 数据和日志备份是否可以关闭?

    不可以关闭。但可以通过 MySQL 控制台 减少备份频率和删除不再使用的手动备份数据来降低备份空间的占用量。

    4. 如何减少备份空间开销?

    • 删除不再使用的手动备份数据(手动备份可在 MySQL 控制台 的实例管理页>备份恢复页面进行删除)。
    • 降低非核心业务的数据自动备份频率(可在控制台调整备份周期和备份保留时间,一周至少备份2次)。
      说明:

      回档功能 基于备份周期和备份保留天数内的数据备份 + 日志备份(binlog),缩短自动备份频率和保留天数会影响实例数据的回档时间范围,请您权衡备份配置。

    • 缩短非核心业务的数据备份和日志备份保存时间(备份保留时间为7天已经能满足大多数场景需要)。
    业务场景 备份保留时间
    核心业务 建议7天 - 732天
    非核心、非数据类业务 建议7天
    归档业务 建议数据备份保留时间设置为7天,根据实际业务需求手动备份数据,用完及时删除
    测试业务 建议数据备份保留时间设置为7天,根据实际业务需求手动备份数据,用完及时删除
    目录