安全数据库管理的关键是定期进行备份。根据数据量、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 订阅的一部分。有关更多详细信息,请参阅 第 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 复制”。