第108章 工作往事(1/3)
林泠是在周三下午三点零七分接到电话的。
他记得这个时间,因为当时他正盯着屏幕上一个SqL查询的执行计划,想优化掉一个全表扫描。
手机在桌上震起来,屏幕上是运维组老周的号码。
他接起来,老周的声音语速飞快,说生产环境被人执行了一条删库命令,user表没了。
林泠拿着手机站起来,椅子往后滑出去撞在文件柜上发出一声闷响,旁边的同事小赵抬头看了他一眼。
他问什么时候的事。
老周说十分钟前,一个离职运维的账号没来得及注销,被人从外部登录进来,只执行了一条命令:dRop tAbLE user。
干脆利落,没有拖泥带水。
林泠已经走出了办公区,边走边问备份呢。
老周说最近一次全量备份是凌晨三点,增量备份每小时一次,最近一次是下午两点。
下午三点零七分接到电话,备份在两点。
也就是说,从下午两点到三点十分之间写入user表的所有数据——新增注册用户、密码修改、手机绑定、头像更新——全部没了。
不是被删了,是随着那张表一起从这个数据库里彻底消失了,像从未存在过一样。
从办公区到机房要经过两段走廊和一个楼梯间。
他走过第一段走廊的时候脑子里在快速算两件事:第一,两点到三点十分之间的增量数据量大概有多少;第二,这些数据有没有其他途径能捞回来。
走过第二段走廊的时候他大概有了判断:user表平时每小时写入量不大,但今天是周三下午,公司App的推送刚在两点半发了一波促销活动,注册量比平时高了两到三倍。
他推开机房的门,冷气从地板下面的送风管道往上灌,四排机柜同时运转,散热风扇发出持续的低频嗡鸣。
老周已经蹲在一台服务器前面了,屏幕上的日志窗口还在往下滚。
林泠拉了把椅子坐下来,先确认了三件事。
第一,那条dRop tAbLE命令的执行时间精确到秒——下午两点五十八分四十三秒,跟他接到电话的时间只差了不到十分钟。
第二,全量备份确认完整可用,凌晨三点的备份文件校验和没有损坏。
第三,增量备份的日志文件确认到了下午两点整,两点之后的binlog还在,没有被删除。
他说先别急着从备份恢复。
全量恢复至少需要四十分钟,这四十分钟内所有依赖user表的业务模块都会挂掉。
他让老周先把从凌晨三点到下午两点五十八分的全量备份加上增量备份串成一条完整的恢复链路,在测试环境里开始并行跑恢复流程。
自己则打开数据库的binlog解析工具,把下午两点到两点五十八分之间的所有写入操作提取出来。
六十万条。
这是他需要手动恢复的数据量。
六十万条写入记录,包括四万三千个新注册用户、一万两千条密码修改记录、八万多条手机号绑定更新、四十多万条头像和昵称的修改。
这些数据在binlog里都有完整的记录——INSERt、UpdAtE、dELEtE,每一条都有时间戳,每一条都有完整的字段值。
本章未完,请翻下一页继续阅读.........