概述
很多时候我们不小心在电脑删了东西,想要恢复的时候都可以在windows系统回收站来恢复,可以说回收站是个好东西,虽然会占用一些空间。同个道理,Oracle数据库也有回收站这个概念,而且用途也跟windows回收站差不多。下面一起了解一下吧~
回收站机制
从ORACLE 10g开始,引入了一个叫回收站(Recycle Bin)的概念。它的全称叫Tablespace Recycle Bin。回收站实际是一个逻辑容器(逻辑区域),原理有点类似于WINDOW系统的回收站。它以表空间中现有已经分配的空间为基础,而不是从表空间上物理划出一个固定区域用作回收站。这意味着回收站和表空间中的对象共用存储区域、系统没有给回收站预留空间。因此,当表被DROP后,如果可用空间充足,并且没有对回收站进行清理,那么被DROP掉的对象会一直存在回收站中,但是如果可用空间紧张的情况下,数据库会根据先进先出的顺序覆盖Recycle Bin中的对象。所以回收站机制也不是百分百的保险机制。另外从原理上来说它就是一个数据字典表,放置用户Drop掉的数据库对象信息。用户进行Drop操作的对象并没有真正被数据库删除,仍然会占用空间。
常用命令总结
这里放不了excel,所以我就贴图啦~
![b0cf7c87a4c8d003b4da26f7e06a18c2.png](https://i-blog.csdnimg.cn/blog_migrate/fd355bfad1d69ebd33bd1bfc12b34555.jpeg)
![cef1bf6847198e146fe142c77fe2aca4.png](https://i-blog.csdnimg.cn/blog_migrate/136665ca4a8d4b2ae95c0ead864c2173.jpeg)
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;
![72e7d96de246cdf7c45d3cc11733be12.png](https://i-blog.csdnimg.cn/blog_migrate/476c33b2632682ec69062797b3eb61a9.jpeg)
2、drop表
drop table emp;
![1545c3737575a741ada5fcbef8b05e4e.png](https://i-blog.csdnimg.cn/blog_migrate/347c7644c8dc2ba903b9853a0290ffce.jpeg)
3、查看回收站是否有表信息
show recyclebin;
![b5a0fc927b9bc3173c7f4a642b5f11a1.png](https://i-blog.csdnimg.cn/blog_migrate/387165c3e9f215d95a9a41d8fdb279ce.jpeg)
4、恢复表
flashback table emp to before drop;
![1305132f340d053b77501fed9644d065.png](https://i-blog.csdnimg.cn/blog_migrate/28edf1a3da609bf997091303c4556bbc.jpeg)
5、指定对象恢复方式
这个比较适用于回收站有多个被drop掉的表的情况。
![d5ce9befbc3e4575ff302efecb78ee98.png](https://i-blog.csdnimg.cn/blog_migrate/e48ff610108db19bf2547e69100463d3.jpeg)
到这里我们就恢复表成功了。
oracle回收站从原理上来说就是一个数据字典表,放置用户删除(drop)掉的数据库对象信息,主要是为了防止我们误操作可以恢复用的。后面会分享更多DBA方面内容,感兴趣的朋友可以关注下!
![e36bf4266973284851c2a79a02a8431f.gif](https://i-blog.csdnimg.cn/blog_migrate/ff08bc8751ec57ce1ec93a6b4433563c.gif)