丢失了datafile该怎么办--关于datafile的恢复处理

 

csdn上的朋友遇到了这样的问题,莫名的系统坏掉了,恢复了系统后,datafile找不到了,不过在坏之前刚刚做了备份 

问题如下 

1.前几天装有ORACLE数据库的机子瘫痪重装了系统,里面有一些正在使用的数据. 
2.之前在关掉服务的情况下拷贝ORADATA下的数据,但丢失了表空间文件(不知道为啥,我把表空间放在E盘我的名字下,
找不到了).原有的数据库安装在E盘,在恢复过程中 alter database open; log出现以下问题: 


*** SERVICE NAME:() 2009-06-09 18:23:19.913 
*** SESSION ID:(167.1) 2009-06-09 18:23:19.913 
ORA-01157: cannot identify/lock data file 1 - see DBWR trace file 
ORA-01110: data file 1: ‘G:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF’ 
ORA-27041: unable to open file 
OSD-04002: 无法打开文件 
O/S-Error: (OS 21) 设备未就绪。 
ORA-01157: cannot identify/lock data file 2 - see DBWR trace file 
ORA-01110: data file 2: ‘G:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS01.DBF’ 
ORA-27041: unable to open file 
OSD-04002: 无法打开文件 
O/S-Error: (OS 21) 设备未就绪。 
ORA-01157: cannot identify/lock data file 3 - see DBWR trace file 
ORA-01110: data file 3: ‘G:ORACLEPRODUCT10.2.0ORADATAORCLSYSAUX01.DBF’ 
ORA-27041: unable to open file 
OSD-04002: 无法打开文件 
O/S-Error: (OS 21) 设备未就绪。 
ORA-01157: cannot identify/lock data file 4 - see DBWR trace file 
ORA-01110: data file 4: ‘G:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF’ 
ORA-27041: unable to open file 
OSD-04002: 无法打开文件 
O/S-Error: (OS 21) 设备未就绪。 
ORA-01157: cannot identify/lock data file 5 - see DBWR trace file 
ORA-01110: data file 5: ‘G:ORACLEPRODUCT10.2.0ORADATAORCLEXAMPLE01.DBF’ 
ORA-27041: unable to open file 
OSD-04002: 无法打开文件 
O/S-Error: (OS 21) 设备未就绪。 
ORA-01157: cannot identify/lock data file 6 - see DBWR trace file 
ORA-01110: data file 6: ‘E:ZHANGMICHUANORACL_TABLESPACEQTY_TSPACE.ORA’ 
ORA-27047: unable to read the header block of file 
OSD-04006: ReadFile() 失败, 无法读取文件 

 


dbf 文件在E盘ORACLEPRODUCT10.2.0ORADATAORCL 目录下,能有办法将G盘改为E盘吗?还有办法恢复吗? 
我给他的解决方案 

直接通过alter database rename file 来重新指定每个datafile的文件路径, 

首先是到mount状态 
SQL>startup mount; 
如果不能到mount状态,就先修复spfile和control file,不够根据你的信息,很幸运你没有中招,这两个你都没有问题。 

不知道你的归档是否完善和正确,最好还是基于非归档的模式吧 
SQL>alter database noarchivelog; 

修改datafile路径 
例如如果现在的备份路径在E:ORACLEPRODUCT10.2.0ORADATAORCL的话 
SQL>alter database rename file ‘G:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF’ to ‘E:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF’; 

依次对所有的datefile做以上处理 

启动到open模式 
SQL> alter database open; 

检查datefile路径 
SQL> select name from v$datafile; 

以上这样的恢复方法,是确认你的E:ORACLEPRODUCT10.2.0ORADATAORADATA下有原来的datafile的备份哟,如果不是的话,就要用别的方法。 

注意操作前,一定要冷备份好你原来数据库。 




 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

inthirties

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值