关于ORACLE 10G数据的恢复问题

有一台数据库服务器,用的是ORACLE 10G,OS windows 2003 现在系统崩溃,而且oracle 服务不能启动,只剩下数据文件.
现在需要重新安装OS,那么当我重新安装ORACLE 10G的时候,如何恢复我以前的数据库的数据?

下面就看具体恢复步骤吧:

1、首先安装一个全新的ORACLE,包括服务名、SID,安装目录应最好与原来的ORACLE目录一致。
2、删除安装目录下所有的datafile、logfile.(oradata目录下的文件)
3、Copy原来的数据文件到oradata目录下,包括系统数据文件等。
4、alter database backup controlfile to trace; 备份当前数据库控制文件,控制文件一般备份到D:oracleproduct10.2.0adminbstestudump下,请注意最新一个就是了。
删除原控制文件,重新创建一个控制文件,请注意修改各个路径的位置,如下:
CREATE CONTROLFILE SET DATABASE "TEST" RESETLOGS  NOARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 'D:ORACLEPRODUCT10.2.0ORADATABSTESTREDO01.LOG'  SIZE 50M,
  GROUP 2 'D:ORACLEPRODUCT10.2.0ORADATABSTESTREDO02.LOG'  SIZE 50M,
  GROUP 3 'D:ORACLEPRODUCT10.2.0ORADATABSTESTREDO03.LOG'  SIZE 50M
-- STANDBY LOGFILE
DATAFILE
  'D:ORACLEPRODUCT10.2.0ORADATABSTESTSYSTEM01.DBF',
  'D:ORACLEPRODUCT10.2.0ORADATABSTESTUNDOTBS01.DBF',
  'D:ORACLEPRODUCT10.2.0ORADATABSTESTSYSAUX01.DBF',
  'D:ORACLEPRODUCT10.2.0ORADATABSTESTUSERS01.DBF',
  'D:ORACLEPRODUCT10.2.0ORADATABSTESTTEST.DAT'
CHARACTER SET ZHS16GBK
;
注意修改数据文件的路径,如果是原数据文件,加上你原来所有的数据文件路径,如红色则是我原来的数据文件。


11、重启,启动到startup mount;然后 
执行recover database;成功,
再执行alter database open;打开成功了。
12、现在已基本成功了,但是经过这样处理,为了安全起见,
最好用EXP先将数据全部导出,然后再重新安装ORACLE,然后再用IMP重新导入。
而当我导出时却出现错误:提示临时表空间为空。

用select name from v$tempfile;查看,确实为空,则:
如temp01.dbf已存在,则如下:
alter tablespace temp add tempfile 'D:oracleproduct10.2.0oradatabstesttemp01.dbf'
否则:
alter tablespace temp add tempfile 'D:oracleproduct10.2.0oradatabstesttemp01.dbf' size 10M;

再用EXP导出,成功!

还是打不开。出现以下错误:
 alter database open RESETLOGS
*
ERROR 位于第 1 行:
ORA-01092: ORACLE 例程终止。强行断开连接
10、 将UNDO日志改为手动模式:
alter system set undo_management='manual' scope=spfile;

5、startup nomount;启动到nomount状态,然后执行以上控制文件重建语句。
6、执行recover database using backup controlfile until cancel;
输入cancel回车,后出现错误。
7、alter database open resetlogs;执行后出现以下错误。
ORA-01194: 文件1需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'D:ORACLEORADATAZQKHSYSTEM01.DBF'
8、#系统文件出错,看到“一致性”自然想到 _allow_resetlogs_corruption的隐含命令
alter system set "_allow_resetlogs_corruption"=true scope=spfile;
9、alter database open RESETLOGS;

 

ok 好了!~


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24531354/viewspace-693098/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24531354/viewspace-693098/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值