17.18.1 InnoDB 备份
安全数据库管理的关键是定期备份。根据您的数据体积、MySQL 服务器数量和数据库工作负载,您可以使用以下备份技术,单独或组合:热备份数 使用MySQL 企业备份;冷备份数 将文件复制到 MySQL 服务器关闭时;逻辑备份数 使用mysqldump 对于较小的数据体积或记录架构对象结构。热备份数和冷备份数都是物理备份数,将实际数据文件复制到 MySQL 服务器,可以快速恢复。
使用MySQL 企业备份是推荐的方法来备份 InnoDB
数据。
InnoDB
不支持使用第三方备份工具恢复数据库。
MySQL企业备份组件中的mysqlbackup命令允许您在最小干扰情况下对运行的 MySQL 实例进行备份,包括InnoDB
表,生成数据库的一致快照。当mysqlbackup命令复制InnoDB
表时,可以继续读写InnoDB
表。MySQL企业备份还可以创建压缩的备份文件,并备份表和数据库的子集。在与 MySQL 二进制日志结合使用的情况下,用户可以实现点-in-时间恢复。MySQL企业备份是 MySQL 企业订阅的一部分。更多信息,请见第32.1节,“MySQL Enterprise Backup Overview”。
如果可以关闭 MySQL 服务器,您可以创建一个物理备份,该备份包括InnoDB
用于管理表的所有文件。使用以下过程:
-
执行慢速关闭 MySQL 服务器,并确保它在没有错误的情况下停止。
-
将所有
InnoDB
数据文件(ibdata
文件和.ibd
文件)复制到安全的地方。 -
将所有
InnoDB
redo日志文件(#ib_redo
文件)复制到安全的地方。N
-
将您的
my.cnf
配置文件或文件复制到安全的地方。
除了物理备份外,建议您定期使用mysqldump将表dump到文本文件中。二进制文件可能会在您不知道的情况下损坏。dumped的表数据存储在人类可读的文本文件中,因此 spotting 表损坏变得更容易。此外,因为格式更加简单,serious 数据损坏的可能性也较小。mysqldump还具有--single-transaction
选项,可以在不锁定其他客户端的情况下创建一致的快照。请参阅第9.3.1节,“备份策略”。
复制功能可以与InnoDB
表一起使用,因此您可以使用MySQL复制功能在需要高可用性的数据库站点上保留一个数据库副本。请参阅第17.19节,“InnoDB和MySQL复制”。