📄 一句话概括
转储(Dump)=把库导出成一个文件带走,还原(Restore)=把文件灌回数据库——备份靠它落地,搬家也靠它。
📝 本节和前面几节的关系
6-6 讲了「备份策略」,本节讲备份的具体动作:转储就是那个「拷出来」的动作,还原就是「灌回去」。两者合起来还兼职另一个大活——迁移:从旧服务器搬到新服务器、从内部部署搬上云(6-1 的两种场所之间搬家,全靠它)。
一、两个动作
- 转储:把数据库(结构+数据)导出为一个文件——通常是 SQL 文本(一条条 CREATE/INSERT)或专用格式
- 还原:在新环境里执行这个文件,库就「原样复活」
- 迁移的本质:旧库转储 → 文件搬到新机器 → 新库还原
二、SQLite 天生的转储友好
SQLite 的数据库本来就是一个文件(1-3 的观点)——复制文件就是最朴素的转储。更标准的做法:
-- SQLite 命令行里一条命令导出全库为 SQL 文本
.dump
-- 输出的正是建表 + 插数据的完整 SQL,存成文件即可在别处重建
MySQL 等大型 DBMS 有对应工具(如 mysqldump),思路完全一样:导出 → 搬运 → 执行。
三、转储文件长什么样
-- .dump 输出的骨架(示意)
CREATE TABLE books (id INTEGER PRIMARY KEY, title TEXT);
INSERT INTO books VALUES (1, '数据库入门');
INSERT INTO books VALUES (2, 'SQL 实战');
纯 SQL 文本的好处:跨版本、跨平台都能读,甚至能人手改——这也是它比二进制备份更通用的原因。
四、动手 Demo:转储 → 还原 完整走一遍
在在线 SQLite 运行器里体验「新库复活」:
-- 第 1 步:建库加数据(旧机器)
CREATE TABLE books (id INTEGER PRIMARY KEY, title TEXT);
INSERT INTO books VALUES (1, '数据库入门'), (2, 'SQL 实战');
-- 第 2 步:想象中运行 .dump,把输出的 SQL 抄下来
-- 第 3 步:把这段 SQL 粘进「新的空库」(新机器)执行 —— 还原完成
SELECT * FROM books; -- 两条记录原样复活
【准备块】在线 SQLite 运行器即可,重点体会「SQL 文本就是搬运载体」。
五、30 秒实验
把「转储/还原」想成搬家:转储=把整个家打包成几个纸箱,还原=在新家按箱归位。问:为什么 SQL 文本比「把硬盘整个拷走」更适合跨平台搬家?(SQL 是通用语言,谁家数据库都认;硬盘拷贝绑定原环境。)
六、常见误区
- 「转储了就不用备份策略了」:转储是动作,6-6 的策略是节拍;动作要按节拍反复做
- 「转储文件随便放」:它就是全库数据的明文副本,泄露风险与数据库本身等同——要按 6-8 的敏感数据对待
- 「迁移只要拷文件就行」:跨版本/跨类型 DBMS 时,类型语法可能不兼容(4-1 的类型体系各家略有差异),要检查转换
自测三问
1. 转储和还原各是什么动作?(导出全库为文件/执行文件重建库) 2. 迁移的标准三步?(旧库转储 → 搬运文件 → 新库还原) 3. 转储文件有什么安全风险?(等于全库明文副本,须按敏感数据保护)- ☐ 下一节(6-8 加密、解密-转换和保存敏感数据)
相关笔记
- 备份、全量备份、差分备份、增量备份-定期记录当前的数据 —— 上一节:策略定节拍,本节是具体动作
- 数据库管理系统、DBMS-运行数据库的系统 —— SQLite「一个文件」的天性让转储格外简单
- 加密、解密-转换和保存敏感数据 —— 下一节:明文副本的存在让加密更有必要
- 🗄️ 数据库基础 · 索引 —— 全课路线图