一、为什么要进行数据库备份?
常见数据库备份的应用场景如下:
数据丢失应用场景:
人为操作失误造成某些数据被误操作
软件 BUG 造成部分数据或全部数据丢失
硬件故障造成数据库部分数据或全部数据丢失
安全漏洞被入侵数据恶意破坏
非数据丢失应用场景:
特殊应用场景下基于时间点的数据恢复
开发测试环境数据库搭建
相同数据库的新环境搭建
数据库或者数据迁移
二、数据库备份的分类
1、从物理与逻辑的角度,备份可分为
物理备份:对数据库操作系统的物理文件(如数据文件、日志文件等)的备份
逻辑备份:对数据库逻辑组件(如:表等数据库对象)的备份
2、从备份的内容来分,备份可分为
完全备份:是指对数据库进行一个完整的备份,即备份整个数据库,如果数据较多会占用较大的时间和空间。
部分备份:是指备份部分数据库(例如,只备份一个表)。
部分备份又分为:
增量备份:指的是在上次完全备份的基础上,对更改的数据进行备份。也就是说每次备份只会备份自上次备份之后到备份时间之内产生的数据。因此每次备份都比差异备份节约空间,但是恢复数据麻烦。
差异备份:指的是自上一次完全备份以来变化的数据。和增量备份相比,浪费空间,但恢复数据比增量备份简单。
MySQL 中进行不同方式的备份还要考虑存储引擎是否支持,如 MyISAM 不支持热备,支持温备和冷备。而 InnoDB 支持热备、温备和冷备。
3、从业务运行的角度,备份可分为
冷备份(脱机备份):是在关闭数据库的时候进行的
热备份(联机备份):数据库处于运行状态,依赖于数据库的日志文件
温备份:数据库锁定表格(不可写入但可读)的状态下进行备份操作
三、如何设计数据库的备份策略
备份策略设计的参考值
能够容忍丢失多少数据
恢复数据需要多长时间
需要恢复哪一些数据
备份策略
针对不同的场景下, 我们应该制定不同的备份策略对数据库进行备份, 一般情况下, 备份方法为以下四种:
第一种方式,冷备:直接cp,tar复制数据库文件;
第二种方式