Database

对于大部分公司来说,数据库的安全是重中之重,数据库的备份还原也显得尤为重要。但是因为 MySQL 备份还原涉及到的东西太多,很多运维同学并没有对备份还原并没有太多的理解,很多可能只会使用最基本的 mysqldump 命令配合文档进行备份还原操作。我在这里就将整个 MySQL 备份还原讲一下。

备份并不只是单纯的用于灾难恢复,备份还可以用于审计和测试。

备份还原的分类:

1. 根据备份时,数据库是否在线

  • 冷备 cold backup: 数据库离线再进行备份操作
  • 温备 warm backup: 全局施加共享锁,只能读,不能写
  • 热备 hot backup: 数据库备份时,读写正常进行

一般来说,大家都希望可以用热备,热备在中小型数据规模的数据库备份场景中用的是比较多,但是在大型数据规模的数据库备份中,温备和冷备也使用比较多,冷备配合物理备份,速度很快,是很多大型数据规模场景中用的比较多的备份方式。而且在一些中小型数据规模的数据库备份中,因为存储引擎的区别,很多并不能进行热备,只能进行温备。

2. 根据备份的方式

  • 物理备份 physical backup:备份物理文件。适用于数据量较大的数据库
  • 逻辑备份 logical backup: 备份类似 binlog 那样的形式。

3. 根据备份是备份全部数据,还是仅备份变化的部分

  • 完全备份 full backup: 就是常见的备份方式,对于数据量较小的数据库来说,这种方式完全能满足需求
  • 增量备份 increment backup: 只备份从最后一次备份到现在已改变的数据
  • 差异备份 difference backup: 备份从从最后一次完全备份到现在改变的数据

如图所示,橙色线条为完全备份的时间戳,增量备份和差异备份的区别在图中展示的很明显,当然这里只是给个简单的介绍,具体如何实现,后面会具体的讲。

4. 根据备份的数据集

  • 完全备份 full backup: 库级别的备份
  • 部分备份 partial backup:比如只备份一张表

这里简单的介绍了一下备份的分类,之后会讲解如何具体的实现上面介绍的这些备份方式。及它们的应用场景.