MySQL 备份类型

冷备份

需要先停止数据库服务,然后备份物理文件,这种备份最简单,但是由于需要停止服务,一般都不会用这种方式进行备份。

对于 InnoDB 存储引擎的表备份, 需要备份 MySQL 数据库的 frm 文件、共享表空间、独立表空间文件(*.ibd)、重做日志等。

优点

  1. 备份简单,只要拷贝相关文件即可。
  2. 恢复相当简单,直接将拷贝的文件复制到指定的位置即可。
  3. 恢复速度快,不需要执行任何 SQL 语句,也不需要重建索引

缺点

  1. 备份出来的文件一般都是比较大。
  2. 不同的版本或者操作系统,有可能无法使用这种备份。

温备份

数据库在运行的同时,进行数据库备份,但是为了保证备份数据的一致性,需要锁定表,不能写只能读。

热备份

数据库运行中直接备份,对正在运行的数据库没有任何影响。

XtraBackup 是 Percona 开源的备份工具,可以实现数据库的热备份。

逻辑备份和物理备份

按照备份后的文件,可以分为逻辑备份和物理备份。

逻辑备份

备份后文件的内容是可读的,通常是文本文件的,内容一般是 SQL 语句,或者导出实际内容的文件。一般用于数据库的升级、迁移等,需要恢复的时间也比较长。

mysqldump 是官方自带的工具。dump 备份出来的 SQL 语句文件,可以在不同版本的 MySQL 或者其他 SQL 标准的数据库进行恢复,这种备份就是数据逻辑备份。

也有直接保存数据的实际内容。select into outfile 备份出来的文本文件,也是一种逻辑备份。

物理备份

拷贝数据库的物理文件,可以使用工具对运行中的数据库进行备份。当然最简单的还是停止服务进行拷贝。物理备份可以快速恢复数据库,但是一般备份的文件都比较大,而且恢复的时候需要跟备份时候的平台保持一致。

备份策略

完全备份

对数据库进行完整的备份,但是一般需要消耗的时间比较久,而且备份文件也比较大。

增量备份

由于完全备份存在的问题,因此增量备份就可以弥补完全备份的一些弊端。增量备份需要依赖最近一次的全量备份。

MySQL 本身提供的工具并不支持真正的增量备份,而是基于时间点的日志备份。

日志备份

通过备份 MySQL 的二进制日志,通过对一个完全备份进行二进制日志的重做来完成数据库的恢复。

默认 MySQL 是没有开启 mysqlbin 二进制日志的,需要另外配置。