名单导出来的时候,比原来长了三行,才有人发现筛选条件多带了一列。两百条已经改完,页面刷新过两次,提示都是成功。此刻最先要问的不是谁的责任,是这批还能不能退回去。票务系统的批量修改按原值回滚,还是只能人工一条条改回,取决于动手之前有没有留底,也取决于撤回边界画在哪。

票务系统的批量修改,动手前先存一份底
留底的位置很关键。批量操作前自动存一份快照,改坏了按一下就能回去;不留底,只能凭导出的旧表一条条比对。备份时点差一步,结果差很远:动笔之前存,存的是干净数据;跑完之后存,存的已经是错的那一版。售票系统里出过的问题,多半不是没有备份,是备份存晚了半步。
撤回边界画在哪儿,二十四小时封顶
回滚窗口不超二十四小时,这是硬线。窗口之内,快照还在,撤回是一条命令的事;窗口之外,只能人工改回。撤回边界之所以要写死,是因为它会悄悄移动:今天多留一小时,明天就有人当常规办法。窗口从哪一刻起算,由备份时点定;过了线还硬要回滚,容易把后一批改动一起带走,那时候错的不止两百条。
发现改错,第一步不是补救,是停手。先停掉后面排着的批量修改,别再让同一套筛选条件跑第二遍。然后把这批记录的编号段抄下来,一段一段对导出表,看多出来的到底是哪三行。票务系统的批量任务一停,页面上会留一条中断记录,那一条也要留着。
导出表带不带改前值,一眼见分晓
打开批量记录页,先看有没有一列改前值。有,就导出来对着看;没有,就只能人工一条条回忆,两百条的回忆不叫回忆,叫猜。碰上没有这一列的情况,动作要快:停掉后续批量任务,系统管理员把这批记录的编号段抄下来,逐段比对导出表,跨日的那部分另注。表头少一列,后面就要多花几个晚上。

差别从按下去那一下就开始了。一种改完就算、不留快照,跑批快,几百条几分钟过完,代价是错了只能凭记忆改回,两百条能改到后半夜。一种改前自动留一份快照、给二十四小时回滚窗,每次多花几十秒,错了按一下回去。备份时点放在动笔之前,撤回边界才站得住。
单次批量修改不超两百条,超五十条须二次确认。这道确认常被当成形式,框一弹出来,很多人闭着眼就点了下一步。真要让这一步有用,确认页得把条数和影响范围写在同一屏上:多少条、哪些票种、什么时候生效。数字对不上,就该退回去重筛,别点继续。售票系统的确认页多写三行,能省掉一半返工。
改完还要有人复核。两个人分法要清楚:一个看条数,一个看字段,别挨着看同一张表。批量修改的批准权在系统管理员,业务主管负责确认影响范围,两边都签过才算完。签完的记录和快照放在一起,出事时一起调出来,比互相回忆强。票务系统的复核记录留一份在批量页上,谁签的、什么时候签的,翻回去就能看到。
跨天才发现改错的,就别指望回滚了。这时备份时点已过二十四小时,硬回滚会把后几批改动一起带走。做法是系统管理员按导出表逐条改回,两个人各查一半,复核人签业务主管。改回的每一条都要在备注里写清原值和新值,方便第二天再核一遍。售票系统里这类返工最费人,宁可当初多留一份快照。
