安全数据库管理的关键是定期备份。根据您的数据量、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 订阅的一部分。有关详细信息,请参阅第 30.2 节,“MySQL 企业备份概述”。
冷备份
如果可以关闭 MySQL 服务器,则可以进行物理备份,其中包含用于
InnoDB
管理其表的所有文件。使用以下过程:
执行 MySQL 服务器的缓慢关闭,并确保它停止时没有错误。
将所有
InnoDB
数据文件(ibdata
文件和.ibd
文件)复制到安全的地方。将所有
InnoDB
重做日志文件( MySQL 8.0.30 及更高 版本中的文件或早期版本中的文件)复制到安全位置。#ib_redo
N
ib_logfile
将您
my.cnf
的一个或多个配置文件复制到一个安全的地方。
使用 mysqldump 进行逻辑备份
除了物理备份之外,建议您通过使用
mysqldump转储表来定期创建逻辑备份。二进制文件可能会在您不注意的情况下损坏。转储的表存储在人类可读的文本文件中,因此更容易发现表损坏。此外,由于格式更简单,严重数据损坏的可能性更小。mysqldump
还有一个--single-transaction
选项可以在不锁定其他客户端的情况下制作一致的快照。请参阅第 7.3.1 节,“建立备份策略”。
复制与InnoDB
表一起工作,因此您可以使用 MySQL 复制功能在需要高可用性的数据库站点上保留数据库的副本。请参阅
第 15.19 节,“InnoDB 和 MySQL 复制”。