记一次Oracle服务器重启故障恢复

昨天晚上9点多,《黑夜传说》看到一半。售前打电话过来说一客户数据库服务器重启之后,数据库启动不了。没办法,只能关掉电影,和客户联系。通过QQ远程查看了解了服务器的大致架构。windows 2003平台,双节点rac,数据库版本为9.2.0.6。客户已经尝试过open数据库,据客户反映open数据库时报找不到归档日志之类错误。2节点数据库alert日志显示客户已经用“recover database using backup controlfile;”命令进行了数据库恢复。但是,没有恢复成功。经仔细检查,数据库没有因主机重启而丢失datafile,controlfile,redolog。 进一步检查发现,由于rac初始安装时,每个节点的归档目录,放在本地磁盘,导致节点之间不能互相识别归档目录,直接导致在任一节点恢复数据库时,报另一节点的归档日志找不到。找到原因就好办了,呵呵。考虑到windows平台不能像unix平台那样互挂nfs让Oracle透明识别,于是把两节点的归档日志,拷贝到共享存储文件夹中,修改归档参数指向该目录,然后再次运用命令“recover database using backup controlfile;”进行数据库恢复,发现需要的归档日志在一个星期前(所幸,一个星期前的归档还存在。),但是数据库就在昨天17点宕机。再次检查所有数据文件头,发现其checkpoint_change都处在一个星期前的scn,询问客户数据库是不是做过restore,回答没有。这就奇观了,莫非又碰到bug了?(之前碰到一个bug,与此案例相似,datafile_header的checkpoint没有更新)。当然还有一个原因是该数据库采用ca软件备份,该软件备份采用begin backup,然后拷贝数据文件方式备份。导致该现象发生就是ca软件没有将表空间end backup。当然,由于情况紧急,以上推测是后话。将归档日志一次恢复之后,为了保证数据库数据库不丢失,恢复到最后手工将online redolog恢复,最后将数据库resetlogs打开,一看时间已经到了00:05,用户检测业务数据,表示一切正常。和客户寒暄几句之后,关电脑睡觉,哎,又是一个不安稳的周末。

你可能感兴趣的:(oracle,windows,unix,qq)