恢复实战:用完整的数据库文件恢复数据库

win7系统中的oracle数据库可能会出现一些莫名的问题,最终数据库和监听服务都无法启动,但是数据文件是完好无损的。此时如何快速恢复数据库?最近刚碰到这样的事情,正好实战一把。

 先看一下我的数据文件,原来安装在D:\ORACLE\oradata\YAODB目录下,有3个文件夹CONTROLFILE、DATAFILE、ONLINELOG,分别存放控制文件、数据文件、redo日志(我这个数据库是非归档模式,如果是归档模式的数据库,还会有一个ARCHIVELOG文件夹)

恢复实战:用完整的数据库文件恢复数据库_第1张图片

 

现在尝试恢复

1.安装oracle11g软件

步骤略。最后安装的位置ORACLE_HOME=D:\ORACLE\product\11.2.0\dbhome_1

安装完成后,用nectca配置了监听

恢复实战:用完整的数据库文件恢复数据库_第2张图片

但没有数据库实例

 

2.手工写一个参数文件pfile,可以从其他数据库create一个出来修改。(如果controlfile是完整的,这一步都不需要)

一般在%ORACLE_HOME%\dbs 目录下有个init.ora的模板,可以在这个基础上改。只需要保留最必要的参数就可以了。比如我是这么做的,先将init.ora复制一个,命名为pfile.ora,修改内容如下,只有db_name、memory_target、control_files这3个参数

恢复实战:用完整的数据库文件恢复数据库_第3张图片

3.创建实例

oradim -new -sid YAODB  -STARTMODE auto

(我实际做的时候没加 –STARTMODE auto,windows服务启动后,实例不会自动启动,还需要手工startup一下。当然后续也可以用命令改oradim -EDIT -SID YAODB -STARTMODE auto)

 如果没有controlfile,需要用pfile来创建实例(没有controlfile后面的操作会更复杂,下次再演练)

去看“服务”,发现oracle数据库服务已启动

4.用pfile启动数据库到nomount状态

先设置SID参数,然后用sqlplus连上实例

恢复实战:用完整的数据库文件恢复数据库_第4张图片

 启动到nomount状态

恢复实战:用完整的数据库文件恢复数据库_第5张图片

此时,oracle自动为我们设置了很多参数,比如dump文件目录

恢复实战:用完整的数据库文件恢复数据库_第6张图片

各种name

恢复实战:用完整的数据库文件恢复数据库_第7张图片

 

5.直接mount数据库

 恢复实战:用完整的数据库文件恢复数据库_第8张图片

6.Open数据库


监听程序已经捕捉到新的实例

恢复实战:用完整的数据库文件恢复数据库_第9张图片

 

这效率快赶上linux里的操作了!自己都没有想到这么顺利。

 

下次要尝试的是没有controlfile、没有system、systemaux表空间等状况,有机会再实战过

 

你可能感兴趣的:(oracle)