如果你drop user的时候没有加cascade这个参数,试试重建这个用户,然后赋予相应的权限看看。不保证一定管用,但是如果加了cascade的话,只有从备份文件中恢复了。
delete删除的数据如果没有commit,rollbak即可。但是drop恢复起来就很麻烦了,不是一句两句能说清楚的。
请使用 Oracle Database 10g 中的闪回表特性,它使得被删除表的恢复过程如同执行几条语句一样简单。让我们来看该特性是如何工作的。
删除那个表!
首先,让我们查看当前模式中的表。
SQL> select from tab;
TNAME
TABTYPE
CLUSTERID
--------------------- - -- -- --- ------
RECYCLETEST
TABLE
现在,我们意外地删除了该表:
SQL> drop table recycletest;
Table dropped
现在让我们来查看该表的状态。
SQL> select from tab;
TNAME
1、如果你没有删除数据库文件:
我的是放在[D:\oracle\product\1010\oradata]这个下面,你的肯定也是在[oradata]这个文件夹下面,看看有没有被删除,如果没有被删除的话,看看这么文件夹里面的文件夹叫什么名字,并把里面的那个文件夹备份一份。
2、重新安装数据库,再重新建一个[oradata]下面文件夹名字相同的数据库实例。
3、安装完毕后,停止oracle相关的所有服务,把你备份的那个文件夹覆盖到新的[oradata]下面,重新启动数据库服务即可完成恢复。
补充:如果数据库文件被你删除了,用EasyRecovery Professional 恢复一下再按照上面的步骤恢复一下即可。
---
以上,希望对你有所帮助。
删除表后,可以采用如下 *** 作:
在 user_recyclebin中找到最近 *** 作过的表名称,然后用闪回(只能用于10G及以上版本)。
FLASH BACK TABLE TABLE_NAME TO BEFORE DROP;
如果是删了或修改里面的数据,可以先建立一个快表将删除修改之前状态的数据找回到这个表中:
CREATE TABLE QUICK_TABLE AS
SELECT FROM TABLE_NAME AS OF TIMESTAMP SYSDATE-1/24 (一小时前的),减去的时间可以自己定 如:select from TABLE_NAME AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' MINUTE)
恢复的前提是备份;
数据库有什么备份,exp还是rman
如果有exp备份:直接imp数据
如果有rman备份:可以基于时间不完全恢复,将数据库恢复到误删除之前的时刻
如果没有备份但是开闪回了,可以闪回数据库或闪回表
以上就是关于把oracle里的一个用户误删了,可以恢复吗用delete和drop误删的数据,恢复方法一样吗全部的内容,包括:把oracle里的一个用户误删了,可以恢复吗用delete和drop误删的数据,恢复方法一样吗、oracle数据库的表删了怎么恢复、Oracle数据库软件删除后数据有办法恢复么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)