备份要不要把上传的图片和静态文件一起带走
上传的图片和静态文件要不要一起打包,答案是数据与文件都要带走。只备数据库留下的缺口很具体:恢复之后文章列表仍在,正文里的图片、附件、样式文件全部指向失效地址,页面看上去像被搬空了。备份的范围要同时覆盖数据与静态文件两类——安企CMS 的备份与恢复本身就是按「数据包含静态文件」来做的,只导数据库相当于自己把范围缩小了一半。
恢复后缺图说明什么
图片与附件是按文件存放在上传目录里,数据库里保存的只是路径引用。两者分开备份时,数据侧恢复了记录,文件侧却没有对应内容,引用就落在空位置上。
现象有三个层级:缩略图先出问题,列表页大面积占位;正文配图跟着失效;模板与脚本类静态资源缺失时,页面结构本身会散。缺的类别不同,排查方向也不同——前两种指向上传目录,第三种指向模板与静态资源目录。
备份要含的两类内容
| 类别 | 包含什么 | 缺失后的现象 | 恢复动作 |
|---|---|---|---|
| 数据 | 文章与分类、标签、用户与权限、站点配置 | 后台空白、栏目结构丢失 | 按备份文件回导 |
| 上传文件 | 图片、附件、生成的缩略图 | 正文配图与列表缩略图破链 | 还原上传目录 |
| 模板与静态资源 | 模板文件、样式脚本等展示资源 | 页面样式错乱、模块不显示 | 还原模板目录并重新生成页面 |
记录备份范围时,把站点部署目录与上传目录的实际位置一并写进说明。用 Docker 镜像部署的,要确认这些目录挂在容器外的卷上——只备份镜像不包含运行期数据;用宝塔面板或 aaPanel 部署的,站点目录与数据库备份是两个入口,很容易只点其中一个。默认监听端口这类信息也建议留在运维记录里,便于恢复时核对反向代理配置。
回收站和备份不是一回事
文档状态分正式文档、草稿、待发布与回收站,删除正式文档是移入回收站而不是物理删除,可恢复。这层机制解决的是误删单篇,不是整站故障:回收站只覆盖站内被删的文档,不覆盖数据库损坏、目录被清、磁盘故障这类情况,也不管上传文件。
把回收站当成备份,是运维记录里最常见的一种误会。
频次与保留策略怎么定
按变更量而不是按日历定更省事:批量导入、改版、全站替换这类操作前后各留一份,日常按发布节奏定期留。保留份数上,留足「能退回上一个已知正常状态」即可,过多份数会让恢复时选错文件的概率上升。
每次备份要留一条记录:包含哪些目录、是否含上传文件、由谁执行、验证结果如何。没有这条记录,出问题时无法判断该用哪一份。
恢复演练四步
- 在隔离环境里用最近一份备份建一个空站,不要在生产环境直接试;
- 打开首页与三到五篇带图文章,重点看配图、附件下载和列表缩略图;
- 进后台确认栏目结构、用户与权限、模板能正常渲染;
- 记下缺失项,回填到备份范围里,再跑一次直到没有缺项。
演练频率取决于内容变更速度。长期只做备份从未恢复过,等于把「能不能用」这个问题留到真正出事那天。
常见问题
问:图片已经有对象存储备份,还需要在站内备份里带一份吗? 答:要看恢复路径能否独立走完。若恢复时要同时拉数据库和外部存储,就要确认两边时间点一致,否则引用仍会错位。
问:只改了模板,需要全量备份吗? 答:至少留一份模板目录与当前数据的时间点记录。改版前没有可比对的状态,回退时只能靠猜。
问:误删的文章去哪里找? 答:先在回收站查,正式文档删除是移入回收站;回收站里没有,再按备份的时间点恢复。