他甩了甩发麻的手腕,手指显得有些僵硬。
“现在可以启动服务器集群了。”
Jackson把 SCO UNIX系统盘拍在服务器顶端,指尖在灰扑扑的键盘上敲出ps -ef | grep ora_,屏幕瞬间滚过一片红色错误进程。
“集群心跳线断了,”他扯掉衬衫第二颗纽扣,额角汗珠砸在显示器上,“Node1的 Oracle监听进程被病毒篡改了配置文件。”
他拽过交叉线把笔记本连到节点控制台,vi $ORACLE_HOME/network/admin/listener.ora命令打开的文件里满是乱码。
“Berry,把备份磁带里的 19号监听配置导过来,”他头也不抬地喊,另一只手在键盘上翻飞,“用tar xvf /dev/rst0 ./listener.ora,注意磁带机是 SCSI接口 0号设备。”
Ben抱着网线测试仪跑过来时,Jackson正用ipcs -m检查共享内存段:“去测测两个节点的私有网段 10.10.1.0/24,必须保证 ping响应时间低于 50ms。”
他突然按住回车键,shutdown immediate命令让数据库进程开始优雅关闭,“Node2的/etc/init.d/oracle启动脚本被删了,得从 Node1拷贝一份。”
晨光从机房天窗斜切进来时,Jackson已经调好了集群参数。
他用sysdef命令查看内核配置,铅笔在纸上飞快计算:“把shmmax调到物理内存的一半,semmni设成 30,msgmni改 100,改完用cd /etc/conf/cf.d;./link_unix重建内核。”
说着一次性水杯往地上一墩,“Berry,用scp把修改好的/etc/hosts传到 Node2,确保两个节点主机名解析正确。”
当lsnrctl start命令返回“TNS-00530: Protocol adapter error”时,他突然踹了服务器机柜一脚。
“权限问题,”Jackson扯过 Berry递来的湿巾擦手,“chown -R oracle:dba $ORACLE_HOME,再chmod 6751 $ORACLE_HOME/bin/oracle,SCO的 SUID位必须显式设置。”
最后重启集群服务时,他盯着cmctl status的输出屏住呼吸。
当屏幕跳出“Cluster is running in normal mode”,两个节点的实例状态都变成“OPEN”时,Jackson突然瘫坐在防静电地板上,抓起水杯喝了一口,对Berry说:“测测跨节点查询,select count(*) from scott.emp@node2能返回结果就算成了。”
他望着机柜顶端闪烁的绿灯笑出声,“下次谁再在 SCO上装 Oracle 8i集群,我跟他急。”
晨光爬上服务器指示灯时,call center的测试电话终于拨通了。
Jackson盯着监控屏上跳动的绿色数据流,突然笑出声:“曾总监刚发消息,说要给我们申请加班费。”
但没人接话,Berry揉着发红的眼睛,Ben把剩下的半瓶矿泉水一饮而尽。
我摸出手机看时间,8:01。
合同里“两小时到场,八小时解决”的条款像根针,扎在每个人的神经上。
走出广欣公司时,William终于坐着一辆摩托车冒雨赶来,裤脚滴着水,他举着手机喊:“刚收到消息,粤北那个值班的,居然在工作站上打游戏!”
Jackson望着天边的朝霞,突然说:“明天起,所有管理工作站安装屏幕监控。”
风掀起他的衬衫,露出后背汗湿的印子,“还有,把 VPN专线改成单向访问。”
我把手机铃声调到最大,心想今晚睡觉前,得把充电器插在床头。