把oracle里的一个用户误删了,可以恢复吗用delete和drop误删的数据,恢复方法一样吗

把oracle里的一个用户误删了,可以恢复吗用delete和drop误删的数据,恢复方法一样吗,第1张

如果你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数据库软件删除后数据有办法恢复么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9681032.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存