### 15.18.1 InnoDB 备份

[](<>)[](<>)

安全数据库管理的关键是定期备份。根据您的数据量、MySQL 服务器的数量和数据库工作负载，您可以单独或组合使用这些备份技术：[热备份](glossary.html#glos_hot_backup)和*MySQL 企业备份*;[冷备份](glossary.html#glos_cold_backup)通过在 MySQL 服务器关闭时复制文件；[逻辑备份](glossary.html#glos_logical_backup)和[**mysql转储**](mysqldump.html)对于较小的数据量或记录模式对象的结构。热备份和冷备份是[物理备份](glossary.html#glos_physical_backup)复制实际的数据文件，可以直接使用[**mysqld**](mysqld.html)服务器以加快恢复速度。

使用*MySQL 企业备份*是推荐的备份方法`InnoDB`数据。

笔记

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

#### 热备份

这**mysql备份**命令是 MySQL Enterprise Backup 组件的一部分，可让您备份正在运行的 MySQL 实例，包括`InnoDB`表，在生成数据库的一致快照时对操作的干扰最小。什么时候**mysql备份**正在复制`InnoDB`表，读取和写入`InnoDB`表可以继续。MySQL Enterprise Backup 还可以创建压缩备份文件，并备份表和数据库的子集。结合 MySQL 二进制日志，用户可以进行时间点恢复。MySQL Enterprise Backup 是 MySQL Enterprise 订阅的一部分。有关更多详细信息，请参阅[第 30.2 节，“MySQL 企业备份概述”](mysql-enterprise-backup.html).

#### 冷备份

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

1.  执行一个[缓慢关机](glossary.html#glos_slow_shutdown)MySQL 服务器并确保它在没有错误的情况下停止。

2.  全部复制`InnoDB`数据文件（`数据`文件和`.ibd`文件）到一个安全的地方。

3.  全部复制`InnoDB`日志文件 （`ib_logfile`文件）到一个安全的地方。

4.  复制你的`我的.cnf`配置文件或文件到安全的地方。

#### 使用 mysqldump 进行逻辑备份

除了物理备份，建议您通过使用转储表定期创建逻辑备份[**mysql转储**](mysqldump.html).二进制文件可能在您不注意的情况下损坏。转储的表存储在人类可读的文本文件中，因此发现表损坏变得更容易。此外，由于格式更简单，严重数据损坏的机会更小。[**mysql转储**](mysqldump.html)还有一个[`--单笔交易`](mysqldump.html#option_mysqldump_single-transaction)在不锁定其他客户端的情况下制作一致快照的选项。看[第 7.3.1 节，“建立备份策略”](backup-policy.html).

复制适用于[`InnoDB`](innodb-storage-engine.html)表，因此您可以使用 MySQL 复制功能在需要高可用性的数据库站点上保留数据库副本。看[第 15.19 节，“InnoDB 和 MySQL 复制”](innodb-and-mysql-replication.html).
