`
Kai_Ge
  • 浏览: 69388 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

【转载】ORACLE11g 重装系统后根据DBF恢复数据库【已验证】

阅读更多

       任何一种技术方案都有其使用场景,我这个主要是针对没有dmp备份,卸载了数据库,但是有实例的ctl,dbf和log文件都存在的情况。其实这种情况也蛮多的。

      网络上说的情况大多比较复杂,要么ctl丢失的,只有dbf,需要通过手段重建ctl和log文件,不过经过本人测试,重建ctl没有成功,由于时间有限,没来得及调研。

      本人恢复oracle背景是自己卸载了oracle10g,后来想起来自己有一个数据库的数据是十分需要的,所以又折腾着恢复过来。在网络上参考了一个恢复oracle11g的文章写的,在oracle10g下亲测可以用,发到这里共享给大家。

     这里顺便补充一句:我也用网上提到的aul6 进行数据恢复,它是利用字典文件system01.dbf和业务实例文件(比如笔者的etl.dbf)将业务实例里面的表恢复成建表语句和数据,不过遗憾的是,恢复的数据对中文的支持不好,有乱码,而且,有很多表的某一列数据被拆分加入多个空格,造成数据恢复时候是乱码,导致整体不可用,而我又没有找到解决乱码的方法,估计对纯英文的支持比较好,故而只好放弃该方案。幸好我卸载以后,dbf,log,ctl文件都存在,恢复也就变得简单了,因为网络上大多说的不详细,将我的操作步骤详细的给大家共享出来。

     首先安装一个一模一样的oracle10g,这个大家不要嫌麻烦,这是我目前感觉最简单有效的方式了。安装目录跟以前一不一样无所谓,因为我们经常无法安装一样的目录,比如笔者,因为已经在机器安装了oracle11g,在虚拟机重装的oracle10g,只有一个c盘。新建的数据库sid跟之前的一样是有必要的。

     安装好以后,将数据库服务关闭掉,建议在cmd下利用语句完成。完整操作如下:

     sqlplus /nolog

     conn / as sysdba

     shutdown immediate

     关闭数据库以后,将实例文件改个名字,比如笔者是orcl,改为orcl2,

     1. 将以前的orcl拷贝到该目录下(如c:\oracle\product\10.2.0\oradata下面)。

 

     2. 原oracle库主目录下的FLASH_RECOVERY_AREA目录全部覆盖到新安装的oracle对应目录下。

      startup    再次启动服务。

Total System Global Area  293601280 bytes  
Fixed Size                  1248624 bytes  
Variable Size             100663952 bytes  
Database Buffers          188743680 bytes  
Redo Buffers                2945024 bytes  
数据库装载完毕。  
ORA-01122: 数据库文件 6 验证失败  
ORA-01110: 数据文件 6: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\AVPLAN.DBF'  
ORA-01203: 此文件的原型错误 - 创建 SCN 错误

 

 

 

     根据看过博客操作的朋友反馈,多实例时有疑问,按照如下地址操作解决了问题!

     网址:http://blog.sina.com.cn/s/blog_a59b6d310102vat0.html

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics