oracle删除用户和表空间_详解Oracle数据库回收站机制及涉及命令大全

Oracle从10g开始引入了回收站机制,类似Windows系统的回收站,用于防止误删数据。回收站是一个逻辑容器,不预留固定空间,对象DROP后如果空间足够会留在回收站中,否则可能被覆盖。用户可以通过特定命令恢复DROP的表。但DROP表空间、用户、集群、类型等操作不会进入回收站。本文还介绍了如何通过闪回操作恢复DROP的表。
摘要由CSDN通过智能技术生成

概述

很多时候我们不小心在电脑删了东西,想要恢复的时候都可以在windows系统回收站来恢复,可以说回收站是个好东西,虽然会占用一些空间。同个道理,Oracle数据库也有回收站这个概念,而且用途也跟windows回收站差不多。下面一起了解一下吧~


回收站机制

从ORACLE 10g开始,引入了一个叫回收站(Recycle Bin)的概念。它的全称叫Tablespace Recycle Bin。回收站实际是一个逻辑容器(逻辑区域),原理有点类似于WINDOW系统的回收站。它以表空间中现有已经分配的空间为基础,而不是从表空间上物理划出一个固定区域用作回收站。这意味着回收站和表空间中的对象共用存储区域、系统没有给回收站预留空间。因此,当表被DROP后,如果可用空间充足,并且没有对回收站进行清理,那么被DROP掉的对象会一直存在回收站中,但是如果可用空间紧张的情况下,数据库会根据先进先出的顺序覆盖Recycle Bin中的对象。所以回收站机制也不是百分百的保险机制。另外从原理上来说它就是一个数据字典表,放置用户Drop掉的数据库对象信息。用户进行Drop操作的对象并没有真正被数据库删除,仍然会占用空间。


常用命令总结

这里放不了excel,所以我就贴图啦~

c99a7c0bec17d0b314ccbf2191393038.png
867874766b1ec86f86046bbda85f999c.png

DROP掉的对像是不是都会经过回收站?

以下几种drop不会将相关对像放进回收站recyclebin中

* drop tablespace :会将recyclebin中所有属于该tablespace的对像清除

* drop user :会将recyclebin中所有属于该用户的对像清除

* drop cluster : 会将recyclebin中所有属于该cluster的成员对像清除

* drop type : 会将recyclebin中所有依赖该type对像清除

另外还需要注意一种情况,对像所在的表空间要有足够的空间,不然就算drop掉经过recyclebin由于空间不足oracle会自动删除的


小实验:恢复drop表

1、确认开启了回收站机制

show parameter recyclebin;

7ec79e2c876b8711fea0f78fd6e3dab4.png

2、drop表

drop table emp;

1a3675803f7bd5af39db89a00cf65556.png

3、查看回收站是否有表信息

show recyclebin;

2ae4f3b4fab6abe98b8b5ca984fb72d9.png

4、恢复表

flashback table emp to before drop;

8292c686336a20807591af0f953b93e4.png

5、指定对象恢复方式

这个比较适用于回收站有多个被drop掉的表的情况。

3aab21ad5c549cf83bbe0af873738193.png

到这里我们就恢复表成功了。


oracle回收站从原理上来说就是一个数据字典表,放置用户删除(drop)掉的数据库对象信息,主要是为了防止我们误操作可以恢复用的。后面会分享更多DBA方面内容,感兴趣的朋友可以关注下!

32568b76d49bf4c27095ac0a5def3539.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值