很多站点的备份狀態是:文件夹里确實躺着几個压缩包,但没人知道里面是什么、什么时候的、能不能還原。等到誤删資料、服務器故障或者被入侵时才打開,往往發現备份不完整、解压失敗、資料库對不上。备份這件事,重点不在于“做過”,而在于“真的能恢复”。
一、先盘清楚要备份什么
不同類型的站点结构差別很大,但下面這几類内容基本绕不開。建议先列一張清單,逐項確認是否有覆盖:
- 資料库:文章、用戶、评论、配置表。多數站点的核心資料都在這里。
- 程序與模板文件:包含你自己改過的主题、插件、配置文件。官方源碼可以重下,改動過的部分重下就没了。
- 上传的附件與图片:通常体积最大,也最容易被漏掉。
- 服務器配置:Web 服務器配置、計划任務、SSL 證书、环境變量說明。
- 域名與解析信息:到期時間、解析记錄、备案相關信息,方便出事时快速核對。
清單里每一項都要寫清楚“存放在哪、多久备一次、用什么方式恢复”。只寫“已备份”没有意义。
二、备份至少要放两個地方
把备份和站点放在同一台服務器上,是最常见的隐患。服務器一旦整体故障或者磁盘损坏,源站和备份會一起消失。比較稳妥的做法是分层存放:
- 本地副本:留在服務器上,恢复速度最快,用于應對誤删這類小事故。
- 异地副本:放到另一台机器或對象存储,應對整机故障。
- 离线副本:定期下载到本地硬盘,應對帳號被入侵、云存储被誤删的情况。
三层不必都做得非常频繁,但至少要有异地這一层。另外,备份文件的訪問權限要收紧,別让备份包能被公開下载——那相当于把整站資料挂在了外面。
三、恢复演练怎么做
只备份不演练,問题會在最糟糕的时候暴露。演练不需要每個月都做,但建议至少每季度走一遍,流程大致如下:
- 准备一台干净的測試环境,尽量贴近正式环境。
- 從备份中還原資料库,检查表數量、關键表行數與最近一條資料的時間。
- 還原程序文件與附件目錄,確認主题、插件、图片都能正常讀取。
- 打開前台首頁、栏目頁、詳情頁,測試登入後台、發布一篇文章。
- 记錄整個還原過程用时,作為故障时的恢复時間參考。
演练之後要寫下两個數字:备份包大小和恢复耗时。這两個數字會直接决定你面對故障时的心態。
四、容易踩的几個坑
- 只备份資料库,忘了附件。恢复後發現文章在、图片全裂。
- 备份脚本静默失敗。磁盘寫满或權限變更後任務繼續跑,但产出的是空文件。
- 從不检查备份完整性。压缩包损坏要等到解压那一刻才發現。
- 保留策略混乱。要么只留最新一份,被污染後没有回退余地;要么無限堆积,把磁盘塞满反過来影响站点。
- 备份含敏感信息却未加密。传輸和存放环节都可能泄露。
五、让备份结果有人看
备份任務最好能主動报告结果:成功或失敗都要有通知,失敗时能重试並告警。如果條件允许,给备份文件的生成時間设一個检查項,超過预期時間没有新备份,就当成異常處理。
判断备份是否可靠,不看任務是否在跑,而看上一次成功恢复是什么时候。
最後,把备份清單、存放位置、恢复步骤和演练记錄整理成一份文档,放在团队都能找到的地方。真正出問题时,能照着文档一步步做,比临时找人回忆要有用得多。