我重新安装了操作系统windows xp,重新安装了oracle10g数据库。由于病毒的缘故,原来的还剩下D:\oracle\product\10.2.0\oradata\orcl\TADD114.DBF这个数据文件存在,别的什么文件都不小心被删除了。我现在准备恢复存储在这个数据文件上的用户表以及所有对象,我用户del114下面的所有对象都存储在这个数据文件下面。问下,这样的情况下,是否可以恢复过去,需要什么样的操作步骤?我的想法是先建表空间,再建用户,再重建表、视图、proc、tri等等,但是不知道如何操作啊!用啥命令呢?

解决方案 »

  1.   

    有备份的话就好办,没有的话,比较困难了..  所以备份是非常重要的. 如果重要的数据库一定有备份..不过可以通过磁盘恢复软件(recoverManager),把D盘下的其他相关文件找出来,像控制文件, 日志文件, 和数据文件,如果这些文件都能恢复出来的话,就好办了..在重新创建个数据库,安装目录要和以前的那个数据库相同,在把你恢复出来的文件直接覆盖掉就ok了,就相当与冷备份与还原操作这个前提是你要有备份的文件,如果 楼主能把D:\oracle\product\10.2.0\oradata\orcl\ 这个目录下的文件都能恢复出来的话就可以这样做了..
      

  2.   

    已经没有办法恢复了,只能找一些专门的公司或者oracle,直接通过数据文件来挖掘数据了。不过收费很贵的,国内有个anysql做这个的。如果是自己的数据库的话,就重装一个了,如果是生产库就买个教训了,平时一定要做好备份。
      

  3.   


    这个办法好像也需要有system.dbf 文件存在.
      

  4.   


    重新装一个吧,作为dba,备份是不败之法
      

  5.   

    测试库有价值吗?www.sosdb.com
      

  6.   

    SYSTEM TABLESPACE如果没有的话,你就失去了OBJECTID
    和OBJECTNAME的对照表,就类似用LOGMINER没有DICtionary
    的信息的话,你根本看不懂那些ID是那个TABLE。
    如果这个数据文件里就一两个TABLE的话,可先用DUL
    恢复数据,如果你还有这些TABLE的定义的话,可以用猜的方式恢复,
    但多的话,就没戏了,让所有人来哪怕ORACLE DUL的开发
    者也没法子了。至少要SYSTEM DBF和数据文件