Documentation Home

14.19.1 InnoDB 备份

安全数据库管理的关键是定期备份。根据您的数据量、MySQL 服务器数量和数据库工作负载,您可以单独或组合使用这些备份技术: 使用 MySQL Enterprise Backup 进行 热备份;在 MySQL 服务器关闭时通过复制文件进行 冷备份;使用 mysqldump进行逻辑备份,用于较小的数据量或记录模式对象的结构。冷热备份是 复制实际数据文件的物理备份, mysqld服务器可以直接使用这些文件 进行更快的恢复。

使用MySQL Enterprise Backup是备份InnoDB数据的推荐方法。

笔记

InnoDB不支持使用第三方备份工具恢复的数据库。

热备份

mysqlbackup命令是 MySQL Enterprise Backup 组件 的一部分,可让您备份正在运行的 MySQL 实例(包括InnoDB表),同时生成一致的数据库快照,同时最大限度地减少操作中断。当mysqlbackup正在复制 InnoDB表时,对表的读写 InnoDB可以继续。MySQL Enterprise Backup 还可以创建压缩备份文件,并备份表和数据库的子集。配合MySQL二进制日志,用户可以进行时间点恢复。MySQL Enterprise Backup 是 MySQL Enterprise 订阅的一部分。有关详细信息,请参阅第 28.2 节,“MySQL 企业备份概述”

冷备份

如果可以关闭 MySQL 服务器,则可以进行物理备份,其中包含用于 InnoDB管理其表的所有文件。使用以下过程:

  1. 执行 MySQL 服务器的缓慢关闭,并确保它停止时没有错误。

  2. 将所有InnoDB数据文件(ibdata文件和 .ibd文件)复制到安全的地方。

  3. 将表的所有.frm文件 复制InnoDB到安全的地方。

  4. 将所有InnoDB日志文件(ib_logfile文件)复制到安全的地方。

  5. 将您my.cnf的一个或多个配置文件复制到一个安全的地方。

使用 mysqldump 进行逻辑备份

除了物理备份之外,建议您通过使用 mysqldump转储表来定期创建逻辑备份。二进制文件可能会在您不注意的情况下损坏。转储的表存储在人类可读的文本文件中,因此更容易发现表损坏。此外,由于格式更简单,严重数据损坏的可能性更小。mysqldump 还有一个--single-transaction 选项可以在不锁定其他客户端的情况下制作一致的快照。请参阅第 7.3.1 节,“建立备份策略”

复制与InnoDB表一起工作,因此您可以使用 MySQL 复制功能在需要高可用性的数据库站点上保留数据库的副本。请参阅 第 14.20 节,“InnoDB 和 MySQL 复制”