现场笔记 · 2026-08-06

凌晨两点四十,我把「17库恢复正常使用934」这行字截了屏,然后盯着它看了足足七分钟。

不是因为它终于恢复了,而是因为我想弄清楚:一个索引重建了三次、日志里写着 934 次重试才通过的服务,凭什么在公告里只说一句「已恢复正常使用」。

作者 江晚 发布于 2026-08-06 栏目 详情文章 阅读约 11 分钟

一、先把那个晚上原样写下来

8 月 5 日晚上十一点二十三分,我坐在书房里那台用了六年的 ThinkPad 前面,屏幕上的进度条卡在 87%,右下角的时间显示 23:23,桌面上一杯凉透的茶,杯壁上还有我三点钟咬过的饼干屑。运维群里的老周发来一句:「934 那条重建任务又挂了。」我没有回他,我先去看的是日志——因为日志比人诚实。

日志很无聊,也很残酷:第一次重建跑到 41% 的时候,因为一个老分区的元数据校验失败,整条任务回滚;第二次我把校验阈值放宽到 0.92,跑到 78%,卡在当时还在被占用的三号索引池上;第三次是凌晨一点零九分,我干脆把索引池全部下线、断掉所有只读连接,重建才在两点三十八分跑完。总共重试 934 次——这个数字我记下了,因为它正好成了公告里那串「934」的来源,也成了我今晚写这篇文章的火气来源。

934 不是一个漂亮的数字,它是一次次失败之后剩下的东西。

二、公告和过程的距离

第二天上午十点,站点发了公告,只有一句话的意思:17库恢复正常使用934。我把这句念了两遍,然后把它和我的日志并排放着看。我在做转载核查的时候翻到过 澳门凤凰网正版图库 的归档页面,那类页面的写法是「恢复时间、影响范围、残留问题」三行说清;而我们这次的公告,一个数字替代了全部说明。934 被摆上台面,像是勋章,可它明明是 934 次没跑通。

这件事让我不舒服的地方不在于恢复得慢,恢复慢是技术问题,能解释。让我不舒服的是把失败次数包装成进度数字的做法——这跟把车票上的拥挤程度写成「客流热度」是同一种修辞。

我的个人看法(允许有争议):我不认为「934」值得写进标题。把重试次数当成恢复标志展示,等于默认用户不会追问这 934 次里每一次为什么失败。一个服务的可信度不来自它折腾了多少次,而来自它敢不敢把第一次失败的原因原样贴出来。这次我们没做到,我觉得这是失分,不是加分。

三、恢复之后我做的三件事

第一件是把三号索引池重新挂载,然后逐个目录核对条目数;第二件是让同事小陈用他的手机,从冷启动开始完整走一遍流程——他打开 打开图库照片 那个入口,翻了 16 个相册,中途退出两次再进,没报错;第三件是我自己拿了两台设备同时进,看并发下的响应,结果发现缩略图加载比恢复前慢了大约 0.4 秒,这个延迟到现在还没完全压下去,我把它记在了待办的第一行。

小陈当时说了一句话,我记在本子上:「能开就行,用户不看日志。」这句话没错,但它恰恰是我写这篇笔记的理由——用户不看,所以我们才更不能只丢给他们一个 934。

深夜桌面上的服务器与日志屏幕
恢复当晚的工作台。屏幕右下角时间是 23:23,进度条停在 87%。

四、把「恢复正常」这四个字拆开看

正常是一个相对词,它需要一个参照物。参照物是恢复前那台彻底打不开的服务,那么现在确实是正常的;参照物是去年秋天那次零故障的版本,那么现在只是勉强能用。我们在公告里没有写参照物,于是「正常」就成了一句谁都能读、但谁读到的都不一样的句子。我在做交叉核对时习惯性去看 qq浏览器在线版进入口 这类第三方入口的挂载情况,发现它们的抓取频率在恢复后两小时才跟上——也就是说,对我们内部而言的「恢复」,对外部世界来说迟到了整整两小时。这两小时里,用户看到的是空白。

再拆一层:恢复的是数据,还是访问路径?数据在 02:38 就已经齐了,路径的缓存失效却拖到了 04:50,中间那两小时十二分钟是最尴尬的阶段——库是好的,门是锁着的。

五、几条具体的、可以照做的核查步骤

我这个人写东西喜欢留一份能操作的清单,哪怕是吐槽。以下是我这次实际跑过的顺序,写给可能也要处理类似恢复的人:

说起入口,恢复那晚还有个小插曲:我试着用浏览器直接访问 qq浏览器网页版进入链接 去交叉验证页面可达性,结果因为本地 DNS 还缓存着旧地址,一直跳到错误页,直到我手动清了缓存才看到真实状态。这件事提醒我,核查时一定要区分「服务端的问题」和「你本机的问题」,否则会浪费掉一整轮排查。

六、图片去哪了——一个我必须回答的问题

恢复之后有两百多条用户反馈,问得最多的不是「为什么坏了」,而是「我之前保存的图去哪了」。这个问题我在 四九图库保存的图片去哪了 那一页里其实整理过一部分,但这次的情况不太一样:不是保存失败,而是保存成功、索引丢了,文件还在磁盘上,只是点不进去。我用 grep 在旧索引的备份里捞回了 11 个用户的两百多张图的路径,手工补挂回去。补挂那两个小时里我一直在想,如果有一次失败的记录,这事本可以不用人工做。

所以我在待办列表里加了一条看起来很不技术、但很重要的东西:任何一次重建,必须自动落一份「失败快照」,写明时间、失败点、影响条目。它不是给用户看的,是给下一个凌晨两点四十的我留的。

七、把功能和说明放在一起

我承认我对公告的愤怒有点近乎职业病了。但如果你翻过 正版49图库资料库免费打开49图库app功能介绍 这种把功能逐条写明的页面,再回头看我们那句「已恢复正常使用」,落差是很明显的——前者在解释自己能做什么,后者只声明自己不再坏了。用户要的往往是前者。

最后补一句跟数据核对有关的:恢复期间我顺手用 十二生肖49码精准表 里那套编号做了一次抽样对照,验证条目编号有没有在重建中错位。测了 120 条,错位 0 条,这是那两天里唯一让我觉得松口气的结果。至少数据本身是干净的,脏的是我们说话的方式。

八、写在最后

现在是 8 月 6 日凌晨,我把这篇笔记写完了。窗外的天还没亮,茶还是那杯凉的。我不打算在结尾说「一切都会好起来」这种话,我只想把这个请求留在这里:下次恢复,请把 934 次里第一次失败的那一行日志也贴出来。一个服务敢把伤疤露出来,比它贴一百次「正常」都更有说服力。

最近在写的东西

每一篇都从一个具体的现场开始,不接受含糊的概述。

回忆

老周那句「934 那条重建任务又挂了」,我记了整整三天

他发这句话的时候是 23:23,没有表情,没有解释,也没有安慰。我觉得那才是同事之间最体面的沟通。

2026-08-03
工具

把失败快照写进重建流程的第一版草稿

时间、失败点、影响条目,三项就够。它不是给用户看的,是给下一个凌晨两点四十的人留的。

2026-08-02
反例

把重试次数当勋章的三种写法,以及为什么都不该学

934 次意味着 934 次没跑通。这不是进度,这是账单。我在文中列了三个真实见过的例子。

2026-08-02
细节

凉透的茶、87% 的进度条、三点钟的饼干屑

我坚持在技术文章里写这些,因为故障不是发生在服务器上,是发生在一个具体的人熬着的一个具体的夜里。

2026-08-01

关于我

我叫江晚,做图库类服务的数据核对和故障复盘,白天查索引,晚上写复盘笔记,这个站是我给自己留的档案柜。我写东西慢,是因为我总想把每一次失败的第一行日志原样抄下来,而不是只记「后来好了」。我不太会写漂亮的公告,这篇文章就是例子——我把 934 写成了失败次数的账本,而不是恢复的勋章。如果你想看我怎么核对数据,去看 十二生肖49码精准表 那篇的抽样流程;如果你想知道用户的图去哪了,四九图库保存的图片去哪了 那一页写得比这里细。

「能开就行,用户不看日志。」
—— 同事小陈,2026 年 8 月 6 日凌晨,恢复核对现场