把数据放稳 · 篇一
丢了能找回
没恢复过的备份,只是心理安慰。
一、你遇到过吗
- 「我们每天都在备份。」备份就放在原来那台机器上。
- 备份里只有数据库,客户上传的图片和文件不在里面。
- 备了一年多,一次也没真的恢复过。
二、备份要过三关
把您现在的情况一项一项打开,看它算不算备份。
第一关:有一份不在这台机器上
机器坏了、被误删了、账号被盗了,放在同一台机器上的备份,会和原件一起没。至少要有一份放在别处,并且加密。
第二关:附件也在里面
很多备份只备了数据库。客户上传的图片、合同、凭证是另外存的,不专门加进去,就不在备份里。
第三关:真的恢复过一次
「备份文件在」不等于「能用」。恢复到一个临时的地方,核一遍表和关键数据的条数,对得上,才算这份备份是活的。
还不算备份:三关过了 0 关。
三、先留后路,再动手
第 1 步
打快照
在云控制台给整台服务器拍一张「照片」,改坏了能整台退回这一刻
第 2 步
旁路试跑
新的做法先在旁边单独跑一遍,不碰正在用的那一套
第 3 步
确认无误再切换
试跑没有报错,才把线上切过去
每一步动手之前,先写下它改坏了怎么回去
改线上系统,风险不在改本身,在改坏了回不去。所以后路要在动手之前就备好。
四、我们自己被教育过
- 我们每天都在备份,一份留一个月。查下来,全部放在生产那台机器上;客户上传的凭证图片根本没进备份;从来没恢复过一次。
- 当天补了三件:每天自动拉一份回本地并加密保存;图片加进了备份;做了一次恢复演练,表和关键数据的条数逐一对上。
- 动手改服务器之前,每一大步都先打了快照;新的运行方式先在旁边试跑,确认没有报错才切过去,几个程序切换时各自只停了十几秒。
五、用四象限照一照
| 象限 | 在「备份」这件事上 |
|---|---|
| 已知的已知 | 每天都在备份 |
| 已知的未知 | 真出事时,它能不能恢复出来 |
| 未知的已知 | 和原件放在同一台机器上的备份,会和原件一起没 |
| 未知的未知 | 哪些文件根本不在备份范围里 |
给技术同学
- 备份覆盖数据库和附件。
- 至少一份放在另一台机器或另一处存储,并加密。
- 交付前做一次恢复演练:恢复到临时库,核表数与关键表条数,演练完删掉临时库。
- 大改动前在云控制台打快照。
- 新的运行方式先旁路试跑,再切换;每一步写好回滚。
自查
- 您上一次真正从备份里恢复出数据,是什么时候?
- 您的备份放在几个地方?有没有一份不在那台机器上?
- 最近一次改线上系统,事先写好「改坏了怎么回去」了吗?
下一步
这一篇讲的,是我们每天在用的方法。
看我们怎么交付