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

转储(Dump)=把库导出成一个文件带走,还原(Restore)=把文件灌回数据库——备份靠它落地,搬家也靠它。

📝 本节和前面几节的关系

6-6 讲了「备份策略」,本节讲备份的具体动作:转储就是那个「拷出来」的动作,还原就是「灌回去」。两者合起来还兼职另一个大活——迁移:从旧服务器搬到新服务器、从内部部署搬上云(6-1 的两种场所之间搬家,全靠它)。

一、两个动作

二、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 是通用语言,谁家数据库都认;硬盘拷贝绑定原环境。)

六、常见误区

自测三问 1. 转储和还原各是什么动作?(导出全库为文件/执行文件重建库) 2. 迁移的标准三步?(旧库转储 → 搬运文件 → 新库还原) 3. 转储文件有什么安全风险?(等于全库明文副本,须按敏感数据保护)

相关笔记