作者:admin 日期:2023-10-14 瀏覽: 次
詳解Oracle數據庫回收站機制及涉及命令大全
很多時候我們不小心在電腦刪了東西,想要恢復的時候都可以在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方面內容,感興趣的朋友可以關注下!