背景:当拿到一个oracle的一个dmp格式的备份文件时,不知道它的任何信息,怎么还原数据。这也是在偶然间胡乱搞出来的。不知道是否在任何情况下都有效!
我是利用Toad for Oracle工具实现的
1、在当前数据库中创建一个新的用户call(这时候用户名可以随便起),授权connect,resource,dba。这个创建过程就演示了
2、打开toad for oracle软件,用call用户连接到数据库,选择dba角色(我用的时候提示我必须dba角色)。
3、进入后,选择database -->import -->import Utility wizard,如图:
这里需要注意,因为不知道备份文件中的信息,也不知道之前有哪些用户。就选择call吧,因为最后也会提示用户错误的。记得点击add按钮将
这里选择DMP文件,其他默认就好
点击finish就开始导入了,这时候注意看日志文件,报什么错,就处理什么错。
讲讲我遇到的错误,
首页,在第一次导入的时候报了一个“没有XXX表空间”,根据这个提示,我创建了相应的表空间。
接着,重复之前的导入步骤,这个时候就没有报之前的错误,这时候报没有“XX用户”,根据这个,我创建了一个提示的用户(表空间是之前创建的,并授权connect,resource,dba)。
接着,又重复之前的导入步骤,这个时候就没有报之前的错误,但又报了缺少另一个“XXX用户”,根据这个,我又创建了一个提示的用户(表空间也是之前创建的,并也授权connect,resource,dba)。
最后,再重复之前的导入步骤,这个 时候就一点错没有报了,顺利导入全部数据。
希望也有类似情况的朋友也可以这样试试,虽然不知道这是不是一个好方法,但是确确实实解决了一个问题!