环境: digital unix 4.0f, oracle 7.3.4 , 双机,阵列, raid5
备份方法是每天半夜12点自动exp整个数据库。
上午8:55,数据库突然挂起,alert文件的报错信息如下:
Fri Dec 21 08:33:57 2001
Thread 1 advanced to log sequence 2076
Current log# 3 seq# 2076 mem# 0: /oradata/oracle7/oradata/ORA7/redoORA703.log
Fri Dec 21 08:54:33 2001
KCF: write/open error dba=0x8003dea block=0x3dea online=1
file=2 /oradata/oracle7/oradata/ORA7/rbs01.dbf
error=7376 txt: 'Digital Unix Error: 5: I/O error
Additional information: 15850'
立刻把此信息报告给unix系统管理A,A同事去机房处理....
此时,我还没怎么着急,心想数据库虽然很重要,但我有备份,大不了imp一遍。
我开始在网上查rbs损坏的处理方法,大约过了半个小时,A同事还没消息,我想还是把exp出来的数据准备好吧,telnet上去一看
. . exporting table B_LIST
EXP-00014: error on row 10 of table B_LIST
EXP-00008: ORACLE error 1092 encountered
ORA-01092: ORACLE instance terminated. Disconnection forced
EXP-00222:
System error message 2
EXP-00008: ORACLE error 3114 encountered
ORA-03114: not connected to ORACLE
EXP-00222:
System error message 2
EXP-00000: Export terminated unsuccessfully
EXP-00222:
System error message 2
差点晕倒,再往前看,好几天的exp都不成功,顿时冷汗全出来了,有点虚脱,既而手脚冰凉。my god! 下属40多个单位,60个帐套好几年的财务数据全在上面,而且所有的EDI数据也全在上面...
。。。
大脑空白5分钟
。。。
手有点抖,用最快的速度回想,发现最后一次全备份是12月11号,9天以前的,现在是年底,财务最忙的时候,要是让他们补9天的数据还不把我给吃了.....A同事还是没消息。。
开始深深自责,为什么昨天、前天、大前天、大大前天没看一下备份成功没有呢?!若看了不就能防患于未然,今天的事故不就不会发生了吗?!为什么那么要懒那么一下呢?!......
两分钟后,开始打电话搬救兵,咨询出一个认为是最好的恢复办法,查资料,看这个方法的可行性,在纸上写出详细步骤,在笔记本上重写一遍,推敲步骤是否正确。
A同事那边还是没消息。。。
等待。。。
祈祷他那边一切顺利,数据文件完好无损,我祈祷。。。
时间过得好慢呀!
n年过去了,电话还没响。。。
等。。。
电话终于响了,A同事说文件已经恢复了,让我试一下。
当时很激动,深呼吸两口,好象稍微平静了点。 telnet上去
svrmgrlconnect internal
svrmgrlstartup
眼睛盯着屏幕,instance start, database mount..............database open, 长嘘一口气,心放了下来,又有点虚脱...
看看表,11:00,整整两个小时,大悲大喜,深刻领悟了什么是DBA。
A同事回来了,说是磁盘有点故障,幸亏用的是RAID5,坏一块盘没问题。
开始做EXP,我都是在A服务器上备份B服务器上的数据,B服务器备份A服务器上的数据,这次发现速度奇慢无比,以为是数据库问题,登录查询了几个大表,速度跟以前比没变化,在本机做EXP,一切OK。
回过头来,再看看昨天、前天EXP的LOG文件,原来EXP太慢了,exp是数据库崩溃的时候才断的,所以有1092错误。my god!
一个很奇怪的问题出现了,A机 EXP B机的数据没问题,但是B机 EXP A机的数据就速度奇慢,出现3113错误,问题到现在还不知原因。
5:00下班。这就是一个DBA的一天。