08章Oracle閃回-回收站管理_第1頁(yè)
08章Oracle閃回-回收站管理_第2頁(yè)
08章Oracle閃回-回收站管理_第3頁(yè)
08章Oracle閃回-回收站管理_第4頁(yè)
08章Oracle閃回-回收站管理_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)操作與管理語(yǔ)言O(shè)racleSQL

閃回目標(biāo)閃回的基基本概念念閃回表閃回刪除除閃回版本本查詢閃回事務(wù)務(wù)查詢閃回的基基本概念念閃回表錯(cuò)誤的執(zhí)執(zhí)行了insert,,update,delete且執(zhí)執(zhí)行了commit語(yǔ)語(yǔ)句。閃回刪除除錯(cuò)誤的執(zhí)執(zhí)行了drop語(yǔ)句。。主要是操操作oracle的回回收站recyclebin。閃回版本本查詢獲取表上上所有已已提交過(guò)過(guò)的事務(wù)務(wù)歷史記記錄。閃回事務(wù)務(wù)查詢撤消事務(wù)務(wù)。其他閃回回閃回?cái)?shù)據(jù)據(jù)庫(kù)。--要求數(shù)數(shù)據(jù)庫(kù)為為歸檔模模式。默默認(rèn)為非非歸檔模模式。必須要停停止數(shù)據(jù)據(jù)庫(kù)。閃回歸檔檔日志。。閃回(Flashback))在Oracle的操作作工程中中,會(huì)不不可避免免地出現(xiàn)現(xiàn)操作失失誤或者者用戶失失誤,例例如不小小心刪除除了一個(gè)個(gè)表等,,這些失失誤和錯(cuò)錯(cuò)誤可能能會(huì)造成成重要數(shù)數(shù)據(jù)的丟丟失,最最終導(dǎo)致致Oracle數(shù)據(jù)庫(kù)庫(kù)停止在傳統(tǒng)意意義上,,當(dāng)發(fā)生生數(shù)據(jù)丟丟失、數(shù)數(shù)據(jù)錯(cuò)誤誤問(wèn)題時(shí)時(shí),解決決的主要要辦法是是數(shù)據(jù)的的導(dǎo)入導(dǎo)導(dǎo)出、備備份恢復(fù)復(fù)技術(shù),,這些方方法都需需要在發(fā)發(fā)生錯(cuò)誤誤前,有有一個(gè)正正確的備備份才能能進(jìn)行恢恢復(fù)。為了減少少這方面面的損失失,Oracle提供供了閃回回技術(shù)。。有了閃閃回技術(shù)術(shù),就可可以實(shí)現(xiàn)現(xiàn)數(shù)據(jù)的的快速恢恢復(fù),而而且不需需要數(shù)據(jù)據(jù)備份。。閃回的益益處恢復(fù)中,,閃回技技術(shù)是革革命性的的進(jìn)步傳統(tǒng)的恢恢復(fù)技術(shù)術(shù)緩慢::它是整個(gè)個(gè)數(shù)據(jù)庫(kù)庫(kù)或者一一個(gè)文件件恢復(fù),,不只恢恢復(fù)損壞壞的數(shù)據(jù)據(jù)在數(shù)據(jù)庫(kù)庫(kù)日志中中每個(gè)修修改都必必須被檢檢查閃回速度度快:通過(guò)行和和事務(wù)把把改變編編入索引引僅僅改變變了的數(shù)數(shù)據(jù)會(huì)被被恢復(fù)閃回命令令很容易易:沒有復(fù)雜雜棘手的的多步程程序閃回的類類型閃回表((flashbacktable)閃回刪除除(flashbackdrop)閃回版本本查詢((flashbackversionquery))閃回事務(wù)務(wù)查詢((flashbacktransactionquery)閃回表閃回表,,實(shí)際上上是將表表中的數(shù)數(shù)據(jù)快速速恢復(fù)到到過(guò)去的的一個(gè)是是焦點(diǎn)或或者系統(tǒng)統(tǒng)改變號(hào)號(hào)SCN(SystemChangeNumber)上。。實(shí)現(xiàn)表表的閃回回,需要要使用到到與撤銷銷表空間間相關(guān)的的undo信息息,通過(guò)過(guò)showparameterundo命令令可以了了解這些些信息。。SCN::系統(tǒng)改改變號(hào)。。與時(shí)時(shí)間形成成一一對(duì)對(duì)應(yīng)的關(guān)關(guān)系。通過(guò)timestemp_to_scn((sysdate)獲獲取某一一個(gè)時(shí)間間的SCN號(hào)。。閃回表是是指將表表中的數(shù)數(shù)據(jù),恢恢復(fù)到之之前的一一個(gè)時(shí)間間點(diǎn)上。。用戶對(duì)表表數(shù)據(jù)的的修改操操作,都都記錄在在撤銷表表空間中中,這為為表的閃閃回提供供了數(shù)據(jù)據(jù)恢復(fù)的的基礎(chǔ)。。例如,,某個(gè)修修改操作作在提交交后被記記錄在撤撤銷表空空間中,,保留時(shí)時(shí)間為900秒秒,用戶戶可以在在這900秒的的時(shí)間內(nèi)內(nèi)對(duì)表進(jìn)進(jìn)行閃回回操作,,從而將將表中的的數(shù)據(jù)恢恢復(fù)到修修改之前前的狀態(tài)態(tài)。執(zhí)行表的的閃回,,需要有有flashbackanytable的權(quán)權(quán)限需要使用用oracleEE10g版本本或以上上的Oracle數(shù)據(jù)據(jù)庫(kù)。閃回的時(shí)時(shí)間參數(shù)數(shù):默認(rèn)情況況下,在在900秒以內(nèi)內(nèi)的數(shù)據(jù)據(jù)可以無(wú)無(wú)條件閃閃回可以通過(guò)過(guò)showparametersundo;;查詢時(shí)時(shí)間參數(shù)數(shù)。只有管理理員,才才可以查查看時(shí)間間參數(shù)。。修改閃回回的時(shí)間間參數(shù)::可以通過(guò)過(guò)修改閃閃回的時(shí)時(shí)間限制制,修改改時(shí)間限限制。但但性有可可能會(huì)因因此下降降。修改閃回回的時(shí)間間參數(shù)為為20分分鐘=20*60=1200秒altersystemsetundo__retention=1200scope==both;scope是指指作用的的范圍,,取值::memory(當(dāng)前前實(shí)例有有效),,spfile(修改改配置文文件,后后面的實(shí)實(shí)例有效效)both(兩個(gè)個(gè)同時(shí)有有效)查詢閃回回時(shí)間showparametersundo;給用戶授授權(quán)閃回回操作::默認(rèn)情況況下,scott沒有有閃回的的權(quán)限。。Grantflashbackanytabletoscott;注意:閃閃回表需需要將表表的行移移動(dòng)功能能打開altertable<<table__name>enablerowmovement;閃回表語(yǔ)語(yǔ)法:FLASHBACKTABLE[schema.]<<table__name>TO{[BEFOREDROP[RENAMETOtable]]][SCN|TIMESTAMP]expr[ENABLE|DISABLE]TRIGGERS}schema::模式名名,一般般為用戶戶名。TOTIMESTAMP::系統(tǒng)郵郵戳,包包含年、、月、日日、時(shí)、、分、秒秒。TOSCN::系統(tǒng)更更改號(hào),,ENABLETRIGGERS::表示觸觸發(fā)器恢恢復(fù)以后后為enable狀態(tài)態(tài),而默默認(rèn)為disable狀態(tài)。。TOBEFOREDROP:表表示恢復(fù)復(fù)到刪除除(drop))之前。。RENAMETOtable::表示更更換表名名。閃回表舉舉例:通過(guò)timestamp閃回回表flashbacktableflash__testtotimestampto__date(''2011-03-2318:27:40‘,,'yyyy--mm--ddhh24:mi:ss'));通過(guò)SCN號(hào)閃閃回表即可以閃閃回刪除除的數(shù)據(jù)據(jù),也可可以通過(guò)過(guò)閃回刪刪除插入入的新的的數(shù)據(jù)。。即flashbacktableflash__testtoscn868741;必須要使使用OracleEE版本本。以下是刪刪除表時(shí)時(shí)用的閃閃回,即即droptableflashbacktabletab_testtobeforedrop;示例:根據(jù)時(shí)間間戳閃回回:flashbacktablebtotimestampto__timestamp('2013-03-2610:42:01',''yyyy-mm-ddhh24:mi:ss');;根據(jù)SCN號(hào)閃閃回:Selecttimestamp_to_scn(sysdate)fromdua;flashbacktablebtoscn998723;閃回表::需要要考慮的的事情FLASHBACKTABLE命命令作為為單一的的事務(wù)執(zhí)執(zhí)行,會(huì)會(huì)得到一一個(gè)單一一的DML鎖表的統(tǒng)計(jì)計(jì)數(shù)據(jù)不不會(huì)被閃閃回當(dāng)前的索索引和從從屬的對(duì)對(duì)象會(huì)被被維持閃回表操操作:系統(tǒng)表不不能被閃閃回不能跨越越DDL操作根據(jù)版本本不同,,有所變變化,11g已已經(jīng)提升升此功能能。會(huì)被寫入入警告日日志產(chǎn)生撤銷銷和重做做的數(shù)據(jù)據(jù)閃回表::需要要考慮的的事情閃回表數(shù)數(shù)據(jù)閃回刪除除閃回刪除除,實(shí)際際上從系系統(tǒng)的回回收站中中將已刪刪除的對(duì)對(duì)象,恢恢復(fù)到刪刪除之前前的狀態(tài)態(tài)。系統(tǒng)的回回收站只只對(duì)普通通用戶有有作用。。管理員只只做管理理。建議不使使用管理理員做普普通操作作。應(yīng)該創(chuàng)建建一個(gè)新新的用戶戶進(jìn)行業(yè)業(yè)務(wù)等的的操作。。閃回刪除除:回回收站((recyclebin)簡(jiǎn)簡(jiǎn)介回收站是是所有被被刪除對(duì)對(duì)象及其其相依對(duì)對(duì)象的邏邏輯存儲(chǔ)儲(chǔ)容器,,例如當(dāng)當(dāng)一個(gè)表表被刪除除(drop))時(shí),該該表及其其相依對(duì)對(duì)象并不不會(huì)馬上上被數(shù)據(jù)據(jù)庫(kù)徹底底刪除,,而是被被保存到到回收站站中。Showrecyclebin或或是select**fromrecyclebin;user_recyclebin回收站將將用戶執(zhí)執(zhí)行的drop操作記記錄在一一個(gè)系統(tǒng)統(tǒng)表中,,也就是是將被刪刪除的對(duì)對(duì)象寫到到一個(gè)數(shù)數(shù)據(jù)字典典中。如如果確定定不再需需要該對(duì)對(duì)象,可可以使用用purge命命令對(duì)回回收站進(jìn)進(jìn)行清空空。SQL>>purgerecyclebin;;被刪除的的對(duì)象的的名字可可能是相相同的,,例如用用戶創(chuàng)建建了一個(gè)個(gè)test表,,使用drop命令刪刪除該表表后,又又創(chuàng)建了了一個(gè)test表,這這時(shí),如如果再次次刪除該該表就會(huì)會(huì)導(dǎo)致向向回收站站中添加加了兩個(gè)個(gè)相同的的表。閃回刪除除:回回收站中中對(duì)象的的命名規(guī)規(guī)則為了確保保添加到到回收站站中的對(duì)對(duì)象的名名稱都是是唯一的的,系統(tǒng)統(tǒng)會(huì)對(duì)這這些保存存到回收收站中的的對(duì)象進(jìn)進(jìn)行重命命名,重重命名的的格式如如下:BIN$$globalUID$version其中:BIN表示RECYCLEBIN;globalUID是一一個(gè)全局局唯一的的、24個(gè)字長(zhǎng)長(zhǎng)的對(duì)象象,該標(biāo)標(biāo)識(shí)與原原對(duì)象名名沒有任任何關(guān)系系;version指指數(shù)據(jù)庫(kù)庫(kù)分配的的版本號(hào)號(hào)。閃回刪除除舉例::閃回使用用drop命令令刪除的的表使用表名名閃回使用recyclebinname閃回回閃回b表表flashbacktablebtobeforedrop;閃回最近近一個(gè)被被刪除的的表,如如果存在在同名flashbacktablectobeforedrop;使用雙引引號(hào),通通過(guò)recyclebinname閃回回flashbacktable""BIN$nf03/ZogReKWpCqRbYS2OA==$$0"tobeforedroprenametocc;閃回重名名的表TorenamenewTable;;閃回刪刪除:需需要要考慮的的事情閃回刪除除對(duì)下列列表無(wú)效效:在SYSTEM表空空間內(nèi)的的表用精細(xì)審審計(jì)的數(shù)數(shù)據(jù)庫(kù)或或虛擬擬的私人人數(shù)據(jù)庫(kù)庫(kù)屬于字典典管理的的表空間間由于空間間不足已已經(jīng)被手手動(dòng)或自自動(dòng)刪除除的表以下依賴賴不被保保護(hù):位圖索引引表之前刪刪掉的索索引閃回版本本查詢閃回版本本查詢,,提供了了一個(gè)審審計(jì)行改改變的查查詢功能能,通過(guò)過(guò)它可以以查找到到所有已已經(jīng)提交交了的行行記錄。。其語(yǔ)法法格式如如下:selectcolumn__name[,,column_name,,....]fromtable_nameversionsbetween[SCN|TIMESTAMP][expr|MINVALUE]and[epxr|MAXVALUE]asof[SCN|TIMESTAMP]expr;;其中:column__name列名名;table_name表表名;between....and時(shí)間段段;SCN系統(tǒng)統(tǒng)改變號(hào)號(hào);TIMESTAMP時(shí)間間戳;ASOF表示示恢復(fù)單單個(gè)版本本;MAXVALUE最大值值;MINVALUE最小值值;expr指指定一個(gè)個(gè)值或者者表達(dá)式式。Versionsbetween版本查查詢功能更加加強(qiáng)大,,通過(guò)versionsbetween能夠查查看指定定時(shí)間段段內(nèi)undo表表空間中中記錄的的不同版版本(注注意,只只包括被被提交的的記錄))。版本查詢?cè)冞^(guò)程中中提供了了多個(gè)偽偽列如下下:VERSIONS_STARTSCN,VERSIONS_STARTTIME該該記錄操操作時(shí)的的scn或時(shí)間間,如果果為空,,表示該該行記錄錄是在查查詢范圍圍外創(chuàng)建建的VERSIONS_ENDSCN,,VERSIONS__ENDTIME該記記錄失效效時(shí)的scn或或時(shí)間,,如果為為空,說(shuō)說(shuō)明記錄錄當(dāng)前時(shí)時(shí)間在當(dāng)當(dāng)前表內(nèi)內(nèi)存在,,或者已已經(jīng)被刪刪除了,,可以配配合著VERSIONS_OPERATION列列來(lái)看,,如果VERSIONS_OPERATION列列值為D,說(shuō)明明該列已已被刪除除,如果果該列為為空,則則說(shuō)明記記錄在這這段時(shí)間間無(wú)操作作。VERSIONS_XID該該操作的的事務(wù)IDVERSIONS_OPERATION對(duì)對(duì)該行執(zhí)執(zhí)行的操操作:I表示insert,,D表示示delete,U表表示update。提提示:對(duì)對(duì)于索引引鍵的update操操作,版版本查詢?cè)兛赡軙?huì)會(huì)將其識(shí)識(shí)別成兩兩個(gè)操作作:DELETE和INSERT。。閃回版本本查詢舉舉例創(chuàng)建一張張新表::createtableversion_table(vidint,contentvarchar((20)));執(zhí)行如下下操作::insertintoversion_tablevalues(1,'aaa'');commit;;insertintoversion_tablevalues(2,'bbb'');commit;;updateversion_tablesetcontent=''bbb1'wherevid=2;;commit;;insertintoversion_tablevalues(3,'ccc'');commit;;執(zhí)行閃回回版本查查詢。查詢commit時(shí)間間版本::selectid,,name,versions_starttime,,versions__endtime,versions_startscn,versions_endscn,,versions_operation,,versions_xidfromstudversionsbetweentimestampminvalueandmaxvalue;;閃回版本本查詢::查詢這個(gè)個(gè)時(shí)間點(diǎn)點(diǎn)前的數(shù)數(shù)據(jù):Asof表表示查詢?cè)儐蝹€(gè)版版本。閃回事務(wù)務(wù)查詢閃回事務(wù)務(wù)查詢實(shí)實(shí)際上閃閃回版本本查詢的的一個(gè)擴(kuò)擴(kuò)充,通通過(guò)它可可以審計(jì)計(jì)某個(gè)事事務(wù)甚至至撤銷一一個(gè)已經(jīng)經(jīng)提交的的事務(wù)。。實(shí)現(xiàn)閃回回事務(wù)查查詢,需需要先了了解flashback_transaction_query視圖圖,從該該視圖中中可以獲獲取事務(wù)務(wù)的歷史史操作記記錄以及及撤銷語(yǔ)語(yǔ)句(UNDO_SQL)。。使用閃回回事務(wù)查查詢,可可以了解解某個(gè)表表的歷史史操作記記錄,這這個(gè)操作作記錄對(duì)對(duì)應(yīng)一個(gè)個(gè)撤銷SQL語(yǔ)語(yǔ)句,如如果想要要撤銷這這個(gè)操作作,就可可以執(zhí)行行這個(gè)SQL語(yǔ)語(yǔ)句。Flashback__transaction__query名稱類類型型說(shuō)說(shuō)明-------------------------------------------------------------------------------------------------------------------------------XIDRAW((8)事事務(wù)編號(hào)號(hào)START_SCNNUMBER事事務(wù)的開開始的系系統(tǒng)改變變號(hào)START_TIMESTAMPDATE事事務(wù)的開開始時(shí)間間COMMIT__SCNNUMBER事事務(wù)務(wù)提交時(shí)時(shí)的系統(tǒng)統(tǒng)改變號(hào)號(hào)COMMIT__TIMESTAMPDATE事事務(wù)務(wù)提交時(shí)時(shí)的時(shí)間間LOGON_USERVARCHAR2((30))對(duì)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論