1. 准备工作
把旧的ORACLE所有文件都COPY备份下来,删除旧目录,再重新安装ORACLE,目录和旧目录一样(如果不一样,要修改的地方比较多).只安装ORACLE,不创建数据库。创建数据库实例也没问题。要恢复的实例为ORCL 。
2.用命令方式,通过要旧的ORA文件创建新的实例ORCL
a) oradim -new -sid ORCL(创建实例)
提示:实例已创建。
b) set ORACLE_SID=ORCL(指定实例)
c)在命令提示行下: sqlplus /nolog
d) conn /as sysdba (用sysdba登陆)
提示:SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 2月 7 22:54:32 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到空闲例程。
d) startup (启动数据库)
要不出意外的话,这到里就可以了,如果出现以下问题,按以下步骤操作即可。
ORA-01078: failure in processing system parameters
LRM-00109: ???????????????? 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\INITORCL.ORA'
e) 把原目录下的INITORCL.ORA复制到提示的路径下.再次startup
f) startup
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file 'D:\oracle\product\10.2.0\db_1 s/spfileORCL.ora'
ORA-27041: unable to open file
OSD-04002: ????????????
O/S-Error: (OS 2) ??????????????????????
g) 用旧目录下的spfileorcl.ora复制到提示路径下。
3.新建对应的目录结构
用记事本或者其他文本工具打开spfileorcl.ora文件,根据该文件中记录的目录新建对应的目录。
4.复制旧ORADATA中的文件到新建的目录中
包括数据文件、日志文件和控制文件(包括其他路径下的表空间,以前有的都按同样的路径复制过来,如果你需要恢复的数据在这些数据文件中。)
5.通过不断的启动数据库来检查表空间
a) Sqlplus log
b) Connect /as sysdba
c) Startup(若是听说已启动,先执行shutdown,然后startup)。
d) 如果提示找不到或者表空间错误,记下提示出错的数据文件(表空间)路径信息,执行命令“alter database datafile '出错表空间完整路径信息' offline drop;”,把该空间删掉。
e) alter database open;
f) 如果还有错误的表空间,就重复以上两个步骤。
g) Startup(若是听说已启动,先执行shutdown,然后startup)。
数据恢复成功。
6.新建tns标识文件 可以直接将以前的network/admin/tnsnames.ora文件复制到新库中去即可。这样就可以用pl/sql等工具连接你以前的数据用户了。