本人在实际工作中遇到一个数据库恢复的问题,希望牛人给予回答,先谢!具体问题是这样的:比如有一个数据库DBTEMP1,她里面有2个表空间,tablespace1,tablespace2,第一个表空间的用户名和密码都为temp1,第二个表空间的用户名和密码都为temp2,我使用命令:exp temp1/temp1@DBTEMP对数据库进行了备份,然后删除了DBTEMP1,接着又创建了数据库DBTEMP1,删除和创建数据库的方法都使用Database Configuration Assistant,最后使用命令:imp temp1/temp@DBTEMP1,希望还原数据库,但是却看不见两个表空间了,我现在想还原或恢复最先的DBTEMP1,不知道有没有方法,具体是什么,请告之。

解决方案 »

  1.   


    第一个表空间的用户名和密码都为temp1 ??? 表空间还能设置用户名和密码?exp导出的只是数据文件的集合,所以,imp的时候同样把数据导进去,而表空间这样的逻辑概念是不随之导出导入的。
      

  2.   

    1、数据应该没留:你在exp temp1/temp1@DBTEMP时因为没有指定表空间和owner,因此很可能是按照默认表空间user导出的。在imp temp1/temp@DBTEMP1时应该是将数据导到user表空间下了,你可以到user下查一下,有无备份的数据。
    2、要想将数据恢复到原来的DBTEMP1表空间:1)新建这个表空间DBTEMP1,用户是不是temp1都成,具有相应权限(新建表、新建索引等)的用户均可;2)修改exp文件,将其中的表空间user改为DBTEMP1。告诉你一个好方法,用ultraedit打开你备份的exp文件,然后替换掉文件中的user表空间名称为DBTEMP1,保存;3)执行imp 用户名/密码@实例名 fromuser=temp1 touser=用户名 file=你备份的exp文件。其中用户名为你新建的用户名。
      

  3.   

    create tablespace tablespace1 datafile'路径' size 20m autoextend on
    然后用imp恢复
      

  4.   

    exp temp1/temp1@DBTEMP  是基于用户的 而非机遇表空间
      

  5.   

    无法恢复的.
    你的采用的是逻辑备份而你把数据库物理的删除了就无法恢复了,虽然你后来创建一个同名的数据库但前后两个数据库己不可能是相同的了,所以你无法用之前的逻辑备份来恢复.
    另:其实如果这样也可以恢复的话那复制数据库就变得太容易了,直接把exp的备份恢复到新数据库就行了,而实际上只通过这种简单的操作是无法实现 的.
      

  6.   

    呵呵!这在能问下如何备份远程数据库服务器上的数据?用什么工具或命令
    ?exp  可不可以.在DOS下如何用?(注网络上的.不是本地)