作者:admin 日期:2023-10-14 瀏覽: 次
詳解Oracle數(shù)據(jù)庫(kù)回收站機(jī)制及涉及命令大全
很多時(shí)候我們不小心在電腦刪了東西,想要恢復(fù)的時(shí)候都可以在windows系統(tǒng)回收站來(lái)恢復(fù),可以說(shuō)回收站是個(gè)好東西,雖然會(huì)占用一些空間。同個(gè)道理,Oracle數(shù)據(jù)庫(kù)也有回收站這個(gè)概念,而且用途也跟windows回收站差不多。下面一起了解一下吧~
從ORACLE 10g開(kāi)始,引入了一個(gè)叫回收站(Recycle Bin)的概念。它的全稱(chēng)叫Tablespace Recycle Bin。回收站實(shí)際是一個(gè)邏輯容器(邏輯區(qū)域),原理有點(diǎn)類(lèi)似于WINDOW系統(tǒng)的回收站。它以表空間中現(xiàn)有已經(jīng)分配的空間為基礎(chǔ),而不是從表空間上物理劃出一個(gè)固定區(qū)域用作回收站。這意味著回收站和表空間中的對(duì)象共用存儲(chǔ)區(qū)域、系統(tǒng)沒(méi)有給回收站預(yù)留空間。因此,當(dāng)表被DROP后,如果可用空間充足,并且沒(méi)有對(duì)回收站進(jìn)行清理,那么被DROP掉的對(duì)象會(huì)一直存在回收站中,但是如果可用空間緊張的情況下,數(shù)據(jù)庫(kù)會(huì)根據(jù)先進(jìn)先出的順序覆蓋Recycle Bin中的對(duì)象。所以回收站機(jī)制也不是百分百的保險(xiǎn)機(jī)制。另外從原理上來(lái)說(shuō)它就是一個(gè)數(shù)據(jù)字典表,放置用戶(hù)Drop掉的數(shù)據(jù)庫(kù)對(duì)象信息。用戶(hù)進(jìn)行Drop操作的對(duì)象并沒(méi)有真正被數(shù)據(jù)庫(kù)刪除,仍然會(huì)占用空間。
這里放不了excel,所以我就貼圖啦~
以下幾種drop不會(huì)將相關(guān)對(duì)像放進(jìn)回收站recyclebin中
* drop tablespace :會(huì)將recyclebin中所有屬于該tablespace的對(duì)像清除
* drop user :會(huì)將recyclebin中所有屬于該用戶(hù)的對(duì)像清除
* drop cluster : 會(huì)將recyclebin中所有屬于該cluster的成員對(duì)像清除
* drop type : 會(huì)將recyclebin中所有依賴(lài)該type對(duì)像清除
另外還需要注意一種情況,對(duì)像所在的表空間要有足夠的空間,不然就算drop掉經(jīng)過(guò)recyclebin由于空間不足oracle會(huì)自動(dòng)刪除的
1、確認(rèn)開(kāi)啟了回收站機(jī)制

show parameter recyclebin;
2、drop表
drop table emp;
3、查看回收站是否有表信息
show recyclebin;
4、恢復(fù)表
flashback table emp to before drop;
5、指定對(duì)象恢復(fù)方式
這個(gè)比較適用于回收站有多個(gè)被drop掉的表的情況。
到這里我們就恢復(fù)表成功了。
oracle回收站從原理上來(lái)說(shuō)就是一個(gè)數(shù)據(jù)字典表,放置用戶(hù)刪除(drop)掉的數(shù)據(jù)庫(kù)對(duì)象信息,主要是為了防止我們誤操作可以恢復(fù)用的。后面會(huì)分享更多DBA方面內(nèi)容,感興趣的朋友可以關(guān)注下!