很多時候我們不小心在電腦删了東西,想要恢複的時候都可以在windows系統回收站來恢複,可以說回收站是個好東西,雖然會占用一些空間。同個道理,Oracle數據庫也有回收站這個概念,而且用途也跟windows回收站差不多。下面一起了解一下吧~
從ORACLE 10g開始,引入了一個叫回收站(Recycle Bin)的概念。它的全稱叫Tablespace Recycle Bin。回收站實際是一個邏輯容器(邏輯區域),原理有點類似于WINDOW系統的回收站。它以表空間中現有已經分配的空間為基礎,而不是從表空間上物理劃出一個固定區域用作回收站。這意味着回收站和表空間中的對象共用存儲區域、系統沒有給回收站預留空間。因此,當表被DROP後,如果可用空間充足,并且沒有對回收站進行清理,那麼被DROP掉的對象會一直存在回收站中,但是如果可用空間緊張的情況下,數據庫會根據先進先出的順序覆蓋Recycle Bin中的對象。所以回收站機制也不是百分百的保險機制。另外從原理上來說它就是一個數據字典表,放置用戶Drop掉的數據庫對象信息。用戶進行Drop操作的對象并沒有真正被數據庫删除,仍然會占用空間。
這裡放不了excel,所以我就貼圖啦~
以下幾種drop不會将相關對像放進回收站recyclebin中
* drop tablespace :會将recyclebin中所有屬于該tablespace的對像清除
* drop user :會将recyclebin中所有屬于該用戶的對像清除
* drop cluster : 會将recyclebin中所有屬于該cluster的成員對像清除
* drop type : 會将recyclebin中所有依賴該type對像清除
另外還需要注意一種情況,對像所在的表空間要有足夠的空間,不然就算drop掉經過recyclebin由于空間不足oracle會自動删除的
1、确認開啟了回收站機制
show parameter recyclebin;
2、drop表
drop table emp;
3、查看回收站是否有表信息
show recyclebin;
4、恢複表
flashback table emp to before drop;
5、指定對象恢複方式
這個比較适用于回收站有多個被drop掉的表的情況。
到這裡我們就恢複表成功了。
oracle回收站從原理上來說就是一個數據字典表,放置用戶删除(drop)掉的數據庫對象信息,主要是為了防止我們誤操作可以恢複用的。後面會分享更多DBA方面内容,感興趣的朋友可以關注下!
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!