🗄️ 第六章 运用数据库-旨在安全运用
📄 一句话概括

备份的使命是留退路;三种姿势按「拷多少」划分——全量拷全部、差分拷上次全量以来的变化、增量拷上次备份(不论哪种)以来的变化。

📝 本节和前面几节的关系

前面几节都在防「别出事」,本节承认事故一定会发生,只求出事后能回去。1-4 讲「恢复」是优势名词,这里兑现;6-7 的还原就是备份的另一半(存了得会取回来)。

一、三种备份

以周一做了一次全量为底,看周二~周四各拷什么:

周一    全量(全部数据)            ← 基准点
周二    差分:周一以来的变化        增量:周一以来的变化(即周一到周二)
周三    差分:周一以来的变化        增量:周二以来的变化
周四    差分:周一以来的变化        增量:周三以来的变化
全量 差分 增量
单次备份量 大 中(越久越大) 小
恢复需要的备份 1 份 2 份(全量+最近差分) N 份(全量+之后每一个增量)
恢复速度 快 快 慢(依次套)

常见组合:每周日全量+平时每日差分(恢复简单);或每周全量+每日增量(省空间但恢复链长)。

二、备份的三个原则

  1. 定期:备份方案不定义「多久一次」,等于没有
  2. 异地:同机房的备份抗不了火灾水灾——至少另一台机器/另一地域
  3. 可还原:没验证过还原的备份不算备份(磁盘躺在那里三年的「备份」,可能早就坏了)

三、动手 Demo:三种备份的最小沙盘

用 SQLite 的书评库(第五章 5-19 的 DDL 建)做「备份策略」纸面推演:

-- 现有 3 条书评。周三又新增 1 条、周四修改 1 条标题。
-- 周一已做全量 backup_full.db
-- 若做差分:周四的差分 = 周一以来的全部 2 处变化(1 新增 + 1 修改)
-- 若做增量:周四的增量 = 只有「修改标题」这 1 处变化
-- 若周四误删全表 → 恢复方式:
--   全量思路:用最近一份全量
--   差分思路:周一全量 + 周四差分
--   增量思路:周一全量 + 周二增量 + 周三增量 + 周四增量

【准备块】第五章 5-19 的 book_review 库 DDL;本 Demo 重点在推演不是敲码。

四、30 秒实验

把三种备份想成整理相册:全量=每月完整翻拍一本;差分=每月只补拍「自上月翻拍以来新拍的照片」;增量=每天只补拍「昨天没拍过的」。哪种最省胶卷?哪种丢一页就断片?(增量省但断链就废。)

五、常见误区

自测三问 1. 差分和增量的「上次」分别指谁?(差分指上次**全量**;增量指上次**任何一种备份**) 2. 全量+每日增量,恢复周四数据需要几份备份?(周一全量+周二、周三、周四三份增量,共 4 份) 3. 备份三原则?(定期、异地、可还原——没演练过的不算数)

相关笔记