第 10 章 · 第一节
从怎么用,转到出事了怎么办
前九章都在讲怎么把数据管好,这一章讲数据没了怎么找回来。

重 点
没有备份的数据库,出一次事就是彻底完了,没有第二次机会。
打个比方
写论文不存盘,电脑一死机整晚白干,数据库出事赔的是全公司的账。
前九章都在讲怎么把数据管好,这一章讲数据没了怎么找回来。

没有备份的数据库,出一次事就是彻底完了,没有第二次机会。
写论文不存盘,电脑一死机整晚白干,数据库出事赔的是全公司的账。
概述、备份、还原、迁移、导入导出、日志管理,最后一个小结。

备份和日志是一件事的两半:备份管到昨天,日志管从昨天到刚才。
备份把数据和运行信息保存起来,还原把它加载回系统。

| 动作 | 方向 |
|---|---|
| 备份 | 库到文件 |
| 还原 | 文件到库 |
备份是还原的基础,还原是备份的目的,两件事必须一起想。
备份不只是防止数据丢,还能把库退回到之前某个正确的状态。

误删一张表和硬盘坏掉一样麻烦,两种都靠同一份备份救回来。
误删的数据和硬盘损坏的数据,哪一种更常见?
物理与逻辑,冷温热,完整与差异与增量,三套分法各看一个角度。

mysqldump 是逻辑备份,能做热备份,也能做完整备份。
用户库和系统库都要备,改得越勤备得越勤。

只备用户库,还原之后账号和权限全没了,系统照样起不来。
| 库 | 什么时候备 |
|---|---|
| 系统库 | 改完就备 |
| 用户库 | 定期备 |
系统库指的是哪几个?
能丢多久的数据、多久要恢复完、恢复时还要不要服务、改得多勤、要恢复多少。

第一条最要紧:能容忍丢多久的数据,直接决定备份要多频繁。
银行不能丢一秒钟,班级选课系统丢一天也还能重录。
mysqldump 最通用,其余几个各有各的限制。

| 工具 | 适合 |
|---|---|
| mysqldump | 所有引擎 |
| mysqlhotcopy | 只有 MyISAM |
这一章从头到尾用 mysqldump,它是逻辑备份,导出来的是一份纯文本。
mysqlhotcopy 要装 Perl 且只跑在 Unix 上,Windows 上根本没有这个命令。
周期按能容忍的恢复时间定,还原要靠完整备份加增量再加二进制日志。

只备在同一块硬盘上等于没备,机器一坏备份跟着一起没。
打开 log-bin 是这一整套的前提,没有它就只能恢复到上次备份那一刻。