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