4.3.1 制作完整备份

大多数备份策略都是从 MySQL 服务器的完整备份开始的,您可以从中恢复所有数据库和表。创建完整备份后,您可能会 为接下来的几个备份任务执行增量备份(更小、更快)。然后您定期进行完整备份以再次开始循环。

有关制作完整备份的示例命令,请参阅 第 4.2.2 节,“备份整个 MySQL 实例”

本节概述了在决定创建完整备份的策略时需要考虑的一些事项。正如我们将看到的,速度、容量和便利性等因素都与您的决定有关。

命令行或配置文件中的选项?

为清楚起见,本手册中的示例通常显示一些与 mysqlbackup命令一起使用的命令行选项。为了方便和一致,您可以将那些对大多数备份作业保持不变的选项包含到您提供给mysqlbackup[mysqlbackup] 的 MySQL 配置文件的部分中 。mysqlbackup 也从[mysqld] 节,如果他们在那里。将选项放入配置文件可以为您简化备份管理:例如,将端口信息放入配置文件,您可以避免每次数据库实例切换到不同端口时都需要编辑备份脚本。有关配置文件使用的详细信息,请参阅 第 15 章,配置文件和参数

在单个目录或带时间戳的子目录中输出?

为方便起见,该 --with-timestamp选项在备份目录下创建唯一命名的子目录以保存每个备份作业的输出。带时间戳的子目录使建立保留期变得更简单,允许轻松删除和归档超过特定时间的备份数据。

如果您确实使用单个备份目录(即,如果您省略该--with-timestamp选项),请为每个备份作业指定一个新的唯一目录名称,或者指定 --force覆盖现有备份文件的选项。

对于使用 --incremental-base选项指定包含先前备份的目录的增量备份,为了使目录名称可预测,您可能更愿意不使用该 --with-timestamp选项,而是使用备份脚本生成一系列目录名称。

始终完全备份,还是完全备份加增量备份?

如果您的 InnoDB 数据量很小,或者如果您的数据库非常繁忙以至于备份之间的数据更改百分比很高,您可能希望每次都运行完整备份。但是,您通常可以通过运行定期完整备份然后在它们之间进行几次增量备份来节省时间和存储空间,如第 4.3.2 节“进行差异或增量备份”中所述。

是否使用压缩?

创建压缩备份可以为您节省大量存储空间并显着降低 I/O 使用率。并且使用 LZ4 压缩方法(从 3.10 版开始引入),处理压缩的开销非常低。在数据库备份从活动数据库文件所在的较快磁盘系统移动到可能较慢的存储的情况下,压缩通常会显着缩短整体备份时间。它还可以减少恢复时间。一般来说,我们建议大多数用户使用 LZ4 压缩而不是不压缩,因为基于 LZ4 的备份通常会在更短的时间内完成。但是,请在您的环境中测试 MySQL Enterprise Backup 以确定最有效的方法。