日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【转】Oracle回收站(recyclebin)

發(fā)布時(shí)間:2023/12/15 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】Oracle回收站(recyclebin) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我們都比較熟悉windows中的回收站,文件刪除后放到回收站里還可以再復(fù)原.Oracle回收站的原理完全一樣,只是實(shí)現(xiàn)的細(xì)節(jié)方面有些差異.另外回收站中只能回收表和相關(guān)的對(duì)象包括索引、約束、觸發(fā)器、嵌套表、大的二進(jìn)制對(duì)象(LOB)段和LOB索引段.從Orace 10g開始有回收站的功能.

?

1.回收站啟動(dòng)和關(guān)閉

?

回收站默認(rèn)是開啟的.不過我們可以通過參數(shù)recyclebin來關(guān)閉和開啟.

如果只是針對(duì)每個(gè)session可以通過alter session set recyclebin=off; 和 alter session set recyclebin=on;來關(guān)閉和開啟

如果是針對(duì)所有session可以通過修改系統(tǒng)參數(shù)recyclebin來實(shí)現(xiàn),不過這里要注意10g和11g有點(diǎn)不一樣,它們的參數(shù)類型不同

10g可以用:alter system set recyclebin=off; 和alter system set recyclebin=on;來關(guān)閉和開啟

11g可以用:alter system set recyclebin=off deferred; 和alter system set recyclebin=on deferred;來關(guān)閉和開啟

補(bǔ)充:我們來簡單的了解下Oracle參數(shù)類型

Oracle參數(shù)信息可以通過視圖v$parameter查看,其中有一列issys_modifiable表示參數(shù)類型,有immediate,false,deferred三種,其中false表示是靜態(tài)參數(shù),只要當(dāng)instance重新啟動(dòng)時(shí)才會(huì)生效,其他兩種是動(dòng)態(tài)參數(shù),immediate表示修改參數(shù)后立即生效,deferred表示修改后要等下一個(gè)session才能生效,修改時(shí)已經(jīng)連接的session是不會(huì)生效的.在用alter修改參數(shù)時(shí)如果是false或immediate一般可以不寫,如果是deferred則要寫

10g: select?? ISSYS_MODIFIABLE? from v$parameter where name = 'recyclebin';的結(jié)果是immediate

11g:? select?? ISSYS_MODIFIABLE? from v$parameter where name = 'recyclebin';的結(jié)果是deferred

?

2.查看回收站內(nèi)容

?

select * from user_recyclebin;或select * from recyclebin;查看當(dāng)前用戶所drop的對(duì)象(里面有對(duì)象之前的名字和drop之后的名字)

select * from dba_recyclebin;查看所有用戶drop掉的對(duì)象

其實(shí)當(dāng)一個(gè)對(duì)象drop后,并且開啟了回收站功能.它并沒有真正被刪除,實(shí)際上只是修改了一下名字,我們用select * from user_objects where type= 'TABLE'還能查到.只是它的名字有點(diǎn)怪,例如BIN$qAUuckGyd3TgQKjAFAFTAg==$0,它的命名規(guī)范是BIN$unique_id$version? 其中BIN代表RecycleBin, unique_id是數(shù)據(jù)庫中該對(duì)象的唯一標(biāo)志,26個(gè)字符長度 ,version表示該對(duì)象的版本號(hào).

?

3.還原回收站內(nèi)容

?

假如有表test被drop,drop后的object_name是BIN$qAUuckGyd3TgQKjAFAFTAg==$0

可以用flashback table "BIN$qAUuckGyd3TgQKjAFAFTAg==$0"? to before drop ;(記得名字加雙引號(hào))

或者flashback table test? to before drop ;來還原.不過假如drop掉一個(gè)表test,再新建一個(gè)表test,然后再drop.那么flashback table test? to before drop只能還原最后被drop掉的表test.最先drop掉的表還原時(shí)會(huì)出錯(cuò),因?yàn)楸砻荒苤孛?所以必須改名flashback table test? to before drop rename to test2

?

4.清空回收站

?

如果一次只清空一個(gè)表,可以用PURGE table? test 或PURGE table "BIN$qAUuckGyd3TgQKjAFAFTAg==$0";

如果一次清空所有的可以用PURGE recyclebin 或者PURGE dba_recyclebin

還原時(shí)是只能一次還原一個(gè)表,不能像清空一樣一次還原所有表

?

5,注意事項(xiàng)

?

如果表是在system表空間下面則不能使用回收站的功能,不知道為啥有這限制啊

如果表空間快滿時(shí)系統(tǒng)會(huì)自動(dòng)的去清空回收站中一部分內(nèi)容,先清空最早drop的對(duì)象

?

?

如果刪除表時(shí)候不想放在回收站,徹底刪除 使用 drop table table-name purge

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的【转】Oracle回收站(recyclebin)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。