磁带机的嗡鸣在凌晨三点准时钻进耳朵。
我捏着沾满静电的蓝色手套,把第三盘 DDS-2磁带推进1998年产的HP StorageWorks。
金属插槽弹出时带起的凉风里混着机房特有的臭氧味。
CRT显示器上,Oracle 8i的备份进程正以每秒 1.2MB的速度蚕食着进度条。
屏幕右下角的系统时间跳动在 2000年 9月 13日 03:17。
“咔哒。”硬盘阵列又开始抗议了。
我俯身贴近机柜,听着那台组装服务器的 IDE硬盘发出老座钟般的异响。
这台负责存储 163邮箱基础用户数据的机器,机箱上还贴着去年台风季留下的水渍痕迹。
每周三午夜,我都要手动执行备份脚本——先通过 telnet登录主数据库服务器,敲入exp system/manager@maildb file=/dev/rmt0 full=y。
等磁带机吞吐完最后一寸磁带,再把生成的日志文件存进 3.5英寸软盘。
那些软盘我都按日期标了号,塞进抽屉里垫着防静电袋的铁盒,就像保管一堆脆弱的胶片。
周五下午
中信广场68楼被空调抽成了密封舱。
运维部的格子间里,七台 CRT显示器同时映着绿色的字符流。
“都打起精神!”
Frank推开门,手里捏着文件。
“用户数据分级方案下来了。”
我立马抬起头。老谭也停下擦眼镜的手。
“付费用户分三级。”
Frank把旁边白板挪过来,“VIP实时备份,普通付费每日,免费用户每周。”
“介质呢?”wingo问。
“VIP用新磁带,单独锁铁皮柜。”
Frank指着墙角,“普通付费用蓝色盒,免费用户红色盒。”
Ben翻着笔记本:“迁移前要按这个分好类?”
“必须的。”
Frank合上文件,“第一批五千用户,今晚就得清完类别。”
“刘军,过来搭把手。”Jackson喊我。
服务器机房里,他正盯着屏幕。
进度条爬得慢悠悠。
“这是 VIP用户列表。”他指给我看,“每一百个打包迁移。”
“直接导?”我问。
“先复制到临时库。”
老谭蹲在机柜后,“校验 MD5,没问题再删原数据。”
“用户会察觉吗?”Berry端着咖啡进来。
“凌晨三点切流量。”
Jackson敲键盘,“弹窗提前一小时发。”
老谭突然喊:“第 378个用户数据异常,容量超上限。”
“标记为待处理。”
Jackson头也不抬,“先迁下一批。”
“平时备份都按规矩来?”老谭递我瓶可乐。
“每天下班前换磁带。”
我拧开瓶盖,猛灌一大口。
“校验步骤省过没?”
“哪敢。”
我笑,“先比对日志,再打校验单,跟磁带盒放一起。”
他指了指服务器:“上周三那批 VIP数据,放哪个柜?”
“最里面那个锁柜。”
我瞥了眼时间,“六点了,快换磁带。”
Frank的鳄鱼皮带在荧光灯下泛着冷光,正用马克笔在白板上圈出第三块区域:“Sun Enterprise 450集群必须在今晚八点前完成切换,付费用户数据要从 Sybase ASE 12.0迁移到新部署的 Oracle 8i RAC。”
他的皮鞋跟敲击地面的节奏,和服务器机房里 Sun Fire 280R的风扇转速莫名合拍。
我蹲在服务器机柜前,给那台老掉牙的 HP磁带机换第四盘磁带。
机柜上方的示波器显示,网络流量已经冲到了 100Mbps以太网的临界点。
Jackson正对着屏幕大喊:“广州节点的用户暂时切换到深圳镜像,丢包率超过 15%了!”
隔壁桌的 Berry把打印出来的用户清单按地域分成三叠,每张 A4纸边缘都被咖啡浸得发卷——那是我们用 Lotus Notes共享的迁移进度表,上面密密麻麻标着用红笔圈出的 VIP用户 ID。
老谭抱着一摞 3.5英寸软盘从走廊过来,塑料盒碰撞的声音像在撒一把硬币。
“刚把华南区的用户配置数据备份完,”他抹了把额头上的汗,“这台 IBM Netfinity 5000的软驱快不行了,吐盘的时候卡掉我三张盘。”
我抬头看着服务器集群,它们的指示灯像一排喘息的萤火虫
最老的那台 DEC AlphaServer 4000还在运行着最初版本的邮件转发程序,机箱侧面贴着 1999年 Y2K应急小组的黄色封条。
六点整,Frank突然拍响白板:“最后检查一次磁带库!”
这章没有结束,请点击下一页继续阅读!