一、数据库备份类型

  1. 完全备份
  2. 部分备份

完全备份指的是备份整个数据集( 即整个数据库 )、部分备份指的是备份部分数据集(例如: 只备份一个表)而部分备份又分为以下两种

  1. 增量备份
  2. 差异备份  

增量备份指的是备份自上一次备份以来(增量或完全)以来变化的数据; 特点: 节约空间、还原麻烦 。
           差异备份指的是备份自上一次完全备份以来变化的数据 特点: 浪费空间、还原比增量备份简单。

二、MySQL备份数据的方式

  • 热备份
  • 温备份
  • 冷备份

热备份指的是当数据库进行备份时, 数据库的读写操作均不是受影响 
           温备份指的是当数据库进行备份时, 数据库的读操作可以执行, 但是不能执行写操作 
           冷备份指的是当数据库进行备份时, 数据库不能进行读写操作, 即数据库要下线

  • 物理备份
  • 逻辑备份

物理备份一般就是通过tar,cp等命令直接打包复制数据库的数据文件达到备份的效果 
           逻辑备份一般就是通过特定工具从数据库中导出数据并另存备份(逻辑备份会丢失数据精度)

三、备份的数据

  1. 数据
  2. 二进制日志, InnoDB事务日志
  3. 代码(存储过程、存储函数、触发器、事件调度器)
  4. 服务器配置文件

常用的集中备份工具:

  • mysqldump : 逻辑备份工具, 适用于所有的存储引擎, 支持温备、完全备份、部分备份、对于InnoDB存储引擎支持热备 
  • cp, tar 等归档复制工具: 物理备份工具, 适用于所有的存储引擎, 冷备、完全备份、部分备份 
  • lvm2 snapshot: 几乎热备, 借助文件系统管理工具进行备份 
  • mysqlhotcopy: 名不副实的的一个工具, 几乎冷备, 仅支持MyISAM存储引擎 
  • xtrabackup: 一款非常强大的InnoDB/XtraDB热备工具, 支持完全备份、增量备份, 由percona提供

四、常用的备份策略

针对不同的场景下, 我们应该制定不同的备份策略对数据库进行备份, 一般情况下, 备份策略一般为以下四种种

  • 直接cp,tar复制数据库文件
  • mysqldump+复制BIN LOGS
  • lvm2快照+复制BIN LOGS
  • xtrabackup

以上的几种解决方案分别针对于不同的场景

  1. 如果数据量较小, 可以使用第一种方式, 直接复制数据库文件
  2. 如果数据量还行, 可以使用第二种方式, 先使用mysqldump对数据库进行完全备份, 然后定期备份BINARY LOG达到增量备份的效果
  3. 如果数据量一般, 而又不过分影响业务运行, 可以使用第三种方式, 使用lvm2的快照对数据文件进行备份, 而后定期备份BINARY LOG达到增量备份的效果
  4. 如果数据量很大, 而又不过分影响业务运行, 可以使用第四种方式, 使用xtrabackup进行完全备份后, 定期使用xtrabackup进行增量备份或差异备份