author:skate
time:2010-09-20
oracle艰难的恢复
由于断电的原因,导致192服务器(上面是oracle数据库)无法启动,同事为了验证磁盘是否完好,计划把192的磁盘放的另外一台机器看看是否可以识别。可是,但可是没想到的是,结果把245的磁盘拔下来放到另外的机器上。结果245的机器也出问题了(上面数据库无法启动)。
这是上周末我接到的同事电话,他们和我叙述的事情,问我数据库是否可以恢复,我说192的服务器只要数据库的数据文件完整,恢复就没问题;可以先把数据文件备份起来;同事说数据文件都已经备份了,现在192操作系统无法启动,所以要重做操作系统。我说ok,没问题。
周一上班,我到公司又问了下同事的基本情况(和周末说的基本一样),他们说先恢复192吧,急用;现在192服务器操作系统已经安装完了,oracle11g的软件也安装完了(我让他们安装和以前一样的oracle版本),就等着数据库的恢复工作了。像目前的状况,恢复的办法和步骤如下:
1. 源库的数据文件都要存在(参数文件,控制文件,数据文件,redo文件,归档文件等)
2. 安装好os,这里安装的windows2007(最好和以前相同版本os)
3. 安装相同版本的oracle软件,不要建库(以下步骤不可以,可以通过建库解决)
4. 在CMD命令行下创建服务
ORADIM –NEW –SID <数据库名称> -SYSPWD <口令> -STARTMODE AUTO –PFILE <带目录参数文件>
5. 修改linstener.ora文件,或者重建监听
6. 启动oracle服务,检查数据库是否可以正常连接
有的时候,从第4步骤直到最后,数据库是不能恢复成功的,可能是因为参数文件不对,那就重新创建数据库,然后用源库的所有文件替换新库的所有文件(不包括参数文件),然后修改参数文件,调整相应参数值,如audit_file_dest,db_name,control_files,db_recovery_file_dest等,和路径名称有关的参数值。主要是control_files参数要指定源库的控制文件位置,最后recover database 就ok了。
我的恢复过程:
我是通过重建库来操作的,在我把源库的所有数据文件,打开数据库,提示有数据文件需要恢复,我查看v$recover_file视图,然后去数据文件所在目录一看,有好多数据文件都不在啊(备份不是有用的数据文件啊!!!),这就没有办法了,悲剧啊。最后只能重做数据库,重新导数据,还好这个库数据不多,应该很快就可以导完。
总结:备份非常重要,一定要检查好备份的有效性
--------续---------