OracleDatabase11g閃回技術(shù)概述_第1頁(yè)
OracleDatabase11g閃回技術(shù)概述_第2頁(yè)
OracleDatabase11g閃回技術(shù)概述_第3頁(yè)
OracleDatabase11g閃回技術(shù)概述_第4頁(yè)
OracleDatabase11g閃回技術(shù)概述_第5頁(yè)
已閱讀5頁(yè),還剩25頁(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)介

1、第16章章OracleDatabase11g閃回技技術(shù)本章要點(diǎn)點(diǎn):了解閃回回技術(shù)的的意義。掌握閃回回表的使使用。理解閃回回刪除的的原理。掌握閃回回刪除的的使用。掌握閃回回版本查查詢的使使用。掌握閃回回事務(wù)查查詢的使使用。掌握閃回回?cái)?shù)據(jù)庫(kù)庫(kù)的使用用。了解閃回回?cái)?shù)據(jù)歸歸檔與其其他閃回回技術(shù)的的區(qū)別。掌握閃回回?cái)?shù)據(jù)歸歸檔區(qū)的的創(chuàng)建與與管理。掌握閃回回?cái)?shù)據(jù)歸歸檔的使使用。216.1閃閃回表(Flashback Table)閃回表技技術(shù)用于于恢復(fù)表表中的數(shù)數(shù)據(jù),可可以在線線進(jìn)行閃閃回表操操作。閃回表實(shí)實(shí)質(zhì)上是是將表中中的數(shù)據(jù)據(jù)恢復(fù)到到指定的的時(shí)間點(diǎn)點(diǎn)(TIMESTAMP)或或系統(tǒng)改改變號(hào)(SCN)上,并

2、將自自動(dòng)恢復(fù)復(fù)索引、觸發(fā)器器和約束束等屬性性,同時(shí)時(shí)數(shù)據(jù)庫(kù)庫(kù)保持聯(lián)聯(lián)機(jī),從從而增加加整體的的可用性性。閃回表需需要用到到數(shù)據(jù)庫(kù)庫(kù)中的撤撤消表空空間,可可以通過(guò)過(guò)SHOWPARAMETERundo語(yǔ)句句查看與與撤消表表空間相相關(guān)的信信息。316.1閃閃回表(Flashback Table)【例16.1】查看當(dāng)前前數(shù)據(jù)庫(kù)庫(kù)中與撤撤消表空空間相關(guān)關(guān)的設(shè)置置,如下下:SQL SHOWPARAMETER undo;NAMETYPEVALUE-undo_managementstringAUTOundo_retentioninteger1200undo_tablespacestringUNDOTBS1416

3、.1閃閃回表(Flashback Table)進(jìn)行閃回回表操作作需要使使用FLASHBACKTABLE語(yǔ)句句,其語(yǔ)語(yǔ)法如下下:FLASHBACKTABLEschema. tableTO SCN |TIMESTAMP expr ENABLE |DISABLE TRIGGERS ;語(yǔ)法說(shuō)明明如下。schema:模式名名。table_name:表名名。SCN:系統(tǒng)改改變號(hào)。相對(duì)時(shí)時(shí)間點(diǎn)而而言,系系統(tǒng)改變變號(hào)比較較難以理理解,用用戶很難難知道應(yīng)應(yīng)該閃回回到哪個(gè)個(gè)SCN,而時(shí)時(shí)間則顯顯得明了了得多??梢允故褂肧CN_TO_TIMESTAMP函函數(shù)將SCN轉(zhuǎn)轉(zhuǎn)變?yōu)閷?duì)對(duì)應(yīng)的時(shí)時(shí)間。TIMESTAMP:時(shí)間戳

4、戳,包括括年月日日時(shí)分秒秒。可以以使用TIMESTAMP_TO_SCN函數(shù)將將時(shí)間轉(zhuǎn)轉(zhuǎn)變?yōu)閷?duì)對(duì)應(yīng)的SCN。Expr:指定定一個(gè)值值或表達(dá)達(dá)式,用用于表示示時(shí)間點(diǎn)點(diǎn)或SCN。ENABLETRIGGERS:與表相相關(guān)的觸觸發(fā)器恢恢復(fù)后,默認(rèn)為為啟用狀狀態(tài)。DISABLE TRIGGERS:與表表相關(guān)的的觸發(fā)器器恢復(fù)后后,默認(rèn)認(rèn)為禁用用狀態(tài)。默認(rèn)情情況下為為此選項(xiàng)項(xiàng)。516.1閃閃回表(Flashback Table)【例16.2】下面舉例例介紹如如何使用用FLASHBACK TABLE語(yǔ)句執(zhí)執(zhí)行閃回回表操作作。(1)在在system用戶戶下創(chuàng)建建表mytest,如如下:SQL CREATETABL

5、Emytest(id NUMBER);表已創(chuàng)建建。(2)向向mytest表中中插入一一條記錄錄,并使使用COMMIT命令令提交,如下:SQL INSERTINTO mytestVALUES(1) ;已創(chuàng)建1行行。SQL COMMIT;提交完成成。616.1閃閃回表(Flashback Table)(3)查查詢系系統(tǒng)當(dāng)前前時(shí)間,用于閃閃回時(shí)使使用,如如下:SQL SELECTTO_CHAR(SYSDATE,YYYY-MM-DDHH24:MI:SS)FROMdual ;TO_CHAR(SYSDATE,YY-2009-10-06 10:44:47(4)再再次向向mytest表中添添加一條條記錄,并使

6、用用COMMIT命令提提交,如如下:SQL INSERTINTO mytestVALUES(2) ;已創(chuàng)建1行行。SQL COMMIT;提交完成成。(5)啟啟用mytest表表的行移移動(dòng)功能能,如下下:SQL ALTER TABLE mytestENABLEROW MOVEMENT ;表已更改改。716.1閃閃回表(Flashback Table)(6)使使用FLASHBACKTABLE命命令,將將mytest表中的的數(shù)據(jù)閃閃回到第第3步查查詢出來(lái)來(lái)的時(shí)間間點(diǎn)上,如下:SQL FLASHBACKTABLEmytestTOTIMESTAMP2TO_TIMESTAMP(2009-10-0610:4

7、4:47 ,YYYY-MM-DDHH24:MI:SS) ;閃回完成成。(7)查查詢mytest表表中的數(shù)數(shù)據(jù),觀觀察其數(shù)數(shù)據(jù)是否否閃回到到了時(shí)間間點(diǎn)2009-10-0610:44:47上上,如下下:SQL SELECT* FROMmytest ;ID-1816.2閃閃回刪除除(FlashbackDrop)閃回刪除除技術(shù)用用于恢復(fù)復(fù)已經(jīng)被被用戶刪刪除(Drop)的數(shù)數(shù)據(jù)庫(kù)對(duì)對(duì)象,這這需要使使用到Oracle數(shù)數(shù)據(jù)庫(kù)系系統(tǒng)中的的回收站站機(jī)制。916.2.1回回收收站(RecycleBin)1禁用用與啟用用回收站站Oracle系系統(tǒng)中的的回收站站在默認(rèn)認(rèn)情況下下是啟用用狀態(tài)的的,可以以通過(guò)設(shè)設(shè)置初始

8、始化參數(shù)數(shù)recyclebin的值值來(lái)修改改回收站站的狀態(tài)態(tài),這需需要使用用ALTERSESSION語(yǔ)句句,其語(yǔ)語(yǔ)法形式式如下:ALTERSESSION SETrecyclebin =ON|OFF;如果回收收站處于于禁用(OFF)狀態(tài)態(tài),則被被刪除的的數(shù)據(jù)庫(kù)庫(kù)對(duì)象無(wú)無(wú)法保存存到回收收站中,只能是是被徹底底刪除。1016.2.1回回收收站(RecycleBin)2查看看回收站站中的信信息查看回收收站中的的信息時(shí)時(shí),普通通用戶可可以使用用SHOWRECYCLEBIN命令,也可以以使用user_recyclebin數(shù)數(shù)據(jù)字典典,而數(shù)數(shù)據(jù)庫(kù)管管理員則則可以使使用dba_recyclebin數(shù)據(jù)字字典。

9、下面使用用DESC命令令了解user_recyclebin數(shù)數(shù)據(jù)字典典的結(jié)構(gòu)構(gòu),如下下:參見教材材P3521116.2.1回回收收站(RecycleBin)3清除除回收站站中的對(duì)對(duì)象清除回收收站中的的對(duì)象需需要使用用PURGE命命令,其其語(yǔ)法形形式如下下:PURGE TABLESPACEtablespace_nameUSER user_name | TABLEtable_name| INDEX index_name| RECYCLEBIN| DBA_RECYCLEBIN ;1216.2.2使使用用閃回刪刪除閃回刪除除的語(yǔ)法法形式如如下:FLASHBACKTABLEtable_nameTOBEF

10、OREDROP RENAMETOnew_table_name ;其中,table_name可以使使用表的的原名,也可以以使用表表在回收收站中的的名稱。如果表表的原名名相同,則在使使用原名名進(jìn)行閃閃回刪除除操作時(shí)時(shí),默認(rèn)認(rèn)還原最最近一次次刪除的的表。表表被還原原后,默默認(rèn)情況況下使用用其原名名,而如如果該名名稱已經(jīng)經(jīng)存在,則需要要在還原原該表時(shí)時(shí)對(duì)其重重命名,這時(shí)需需要使用用RENAME TO子句。1316.2.2使使用用閃回刪刪除【例16.5】在scott用用戶下創(chuàng)創(chuàng)建表mytest2并刪除除該表后后,查詢?cè)冊(cè)摫碓谠诨厥照菊局械男判畔?,如如下:參見教材材P354再使用FLASHBACK語(yǔ)語(yǔ)句還

11、原原該表,并對(duì)其其重命名名,如下下:SQL FLASHBACKTABLEBIN$4VMKTgAvRVG84DxR7n+cFg=$02TOBEFOREDROP3RENAMETOmytest2_new;閃回完成成。使用SELECT語(yǔ)句句查詢mytest2_new表,檢查是是否成功功還原,如下:SQL SELECT* FROMmytest2_new;ID-11416.3閃回版本本查詢(FlashbackVersionQuery)閃回版本本查詢技技術(shù)用于于查詢某某段時(shí)間間內(nèi)對(duì)表表的操作作記錄,主要針針對(duì)INSERT、UPDATE和和DELETE操作。閃回版版本查詢?cè)兊恼Z(yǔ)法法形式如如下:SELECTco

12、lumn_name, . FROMtable_nameVERSIONSBETWEEN SCN| TIMESTAMPexpr |MINVALUEAND expr|MAXVALUE| ASOFSCN|TIMESTAMPexpr ;1516.3閃回版本本查詢(FlashbackVersionQuery)【例16.6】在scott用用戶下創(chuàng)創(chuàng)建表myversion,并對(duì)該該表進(jìn)行行一系列列增刪改改操作,如下:參見教材材P355上述操作作在每次次DML操作后后都使用用COMMIT命令進(jìn)進(jìn)行提交交。接下下來(lái)使用用閃回版版本查詢?cè)儷@取myversion表表上的所所有操作作記錄。如下:參見教材材P356在上述

13、查查詢中使使用了FlashbackVersionQuery的部部分偽列列,其中中,versions_operation表示示對(duì)該行行執(zhí)行的的操作,其值可可為I、U和D,分別別對(duì)應(yīng)INSERT、UPDATE和DELETE;versions_starttime表表示對(duì)該該行進(jìn)行行改動(dòng)時(shí)時(shí)的起始始時(shí)間戳戳(versions_startscn表示起起始SCN);versions_endtime表示示此次改改動(dòng)不再再有效時(shí)時(shí)的結(jié)束束時(shí)間戳戳(versions_endscn表示示結(jié)束SCN)。1616.4閃回事務(wù)務(wù)查詢(FlashbackTransactionQuery)閃回事務(wù)務(wù)查詢是是對(duì)閃回回版本查查

14、詢的擴(kuò)擴(kuò)充,通通過(guò)它可可以審計(jì)計(jì)事務(wù)甚甚至撤消消一個(gè)已已提交的的事務(wù)。在使用閃閃回版本本查詢時(shí)時(shí),閃回回操作針針對(duì)的是是表,而而使用閃閃回事務(wù)務(wù)查詢則則針對(duì)flashback_transaction_query視視圖,該該視圖的的結(jié)構(gòu)如如下:參見教材材P3561716.4閃回事務(wù)務(wù)查詢(FlashbackTransactionQuery)【例16.7】上一節(jié)介介紹了閃閃回版本本查詢的的使用,通過(guò)閃閃回版本本查詢可可以了解解表的操操作記錄錄,這些些操作記記錄都是是已提交交的事務(wù)務(wù)。如果果需要撤撤消某個(gè)個(gè)事務(wù),可以使使用如下下步驟。(1)使使用閃閃回版本本查詢獲獲取事務(wù)務(wù)ID,這需要要用到Flas

15、hbackVersionQuery的另另外一個(gè)個(gè)偽列versions_xid,例例如獲取取myversion表上的的事務(wù)ID,如如下:參見教材材P357(2)使使用閃閃回事務(wù)務(wù)查詢需需要用戶戶具有SELECTANY TRANSACTION權(quán)限,下面使使用system用戶戶為scott用戶授授予該權(quán)權(quán)限:參見教材材P357(3)在在scott用戶下下使用閃閃回事務(wù)務(wù)查詢獲獲取010018003F050000對(duì)對(duì)應(yīng)的事事務(wù)信息息,如下下:參見教材材P357查詢結(jié)果果中的undo_sql字段段很明確確地給出出了撤消消事務(wù)的的語(yǔ)句,也就是是說(shuō)如果果想要撤撤消刪除除“記錄錄3”的的事務(wù),只需要要執(zhí)行如如

16、下語(yǔ)句句即可:insertintoSCOTT.MYVERSION(ID,TEXT)values(3,記錄3);1816.5閃回?cái)?shù)據(jù)據(jù)庫(kù)(FlashbackDatabase)閃回?cái)?shù)據(jù)據(jù)庫(kù),實(shí)實(shí)際上就就是將數(shù)數(shù)據(jù)庫(kù)回回退到過(guò)過(guò)去的一一個(gè)時(shí)間間點(diǎn)或SCN上上,從而而實(shí)現(xiàn)整整個(gè)數(shù)據(jù)據(jù)庫(kù)的恢恢復(fù),這這種恢復(fù)復(fù)不需要要通過(guò)備備份,所所以應(yīng)用用起來(lái)更更方便、更快速速。1916.5.1閃閃回回?cái)?shù)據(jù)庫(kù)庫(kù)設(shè)置閃回?cái)?shù)據(jù)據(jù)庫(kù)是依依賴于閃閃回日志志的,Oracle系系統(tǒng)提供供了一組組閃回日日志,記記錄了數(shù)數(shù)據(jù)庫(kù)的的前滾操操作。首先需要要了解如如下幾個(gè)個(gè)參數(shù)。db_recovery_file_dest:閃回日日志的存存放

17、位置置。db_recovery_file_dest_size:存存放閃回回日志的的空間(即恢復(fù)復(fù)區(qū))的的大小。db_flashback_retention_target:閃閃回?cái)?shù)據(jù)據(jù)的保留留時(shí)間,其單位位為分,默認(rèn)值值為1440,即一天天。2016.5.1閃閃回回?cái)?shù)據(jù)庫(kù)庫(kù)設(shè)置啟用閃回回?cái)?shù)據(jù)庫(kù)庫(kù)功能需需要使用用如下語(yǔ)語(yǔ)法形式式:ALTERDATABSE FLASHBACKON| OFF;啟用閃回回?cái)?shù)據(jù)庫(kù)庫(kù)功能的的步驟如如下。(1)確確定當(dāng)當(dāng)前數(shù)據(jù)據(jù)庫(kù)的日日志模式式是否為為歸檔模模式(2)設(shè)設(shè)置閃閃回?cái)?shù)據(jù)據(jù)庫(kù)功能能為啟用用狀態(tài)(3)檢檢查閃閃回?cái)?shù)據(jù)據(jù)庫(kù)功能能是否已已經(jīng)啟用用,如下下:SQL SEL

18、ECTflashback_onFROMv$database ;FLASHBACK_ON-YES從查詢結(jié)結(jié)果可以以看出,閃回?cái)?shù)數(shù)據(jù)庫(kù)功功能已經(jīng)經(jīng)成功啟啟用。2116.5.2使使用用閃回?cái)?shù)數(shù)據(jù)庫(kù)啟用閃回回?cái)?shù)據(jù)庫(kù)庫(kù)功能后后,就可可以對(duì)數(shù)數(shù)據(jù)庫(kù)進(jìn)進(jìn)行閃回回操作了了。使用用閃回?cái)?shù)數(shù)據(jù)庫(kù),需要用用戶具有有SYSDBA權(quán)限。閃回?cái)?shù)數(shù)據(jù)庫(kù)的的語(yǔ)法形形式如下下:FLASHBACKSTANDBY DATABASEdatabase_name TO BEFORE SCN |TIMESTAMP expr;語(yǔ)法說(shuō)明明如下。STANDBY:表示示恢復(fù)一一個(gè)備用用數(shù)據(jù)庫(kù)庫(kù),如果果沒有相相應(yīng)的備備用數(shù)據(jù)據(jù)庫(kù),則則系統(tǒng)返返回一個(gè)

19、個(gè)錯(cuò)誤。如果不不指定該該選項(xiàng),則所恢恢復(fù)的數(shù)數(shù)據(jù)庫(kù)可可以是主主數(shù)據(jù)庫(kù)庫(kù),也可可以是備備用數(shù)據(jù)據(jù)庫(kù)。database_name:數(shù)據(jù)據(jù)庫(kù)名稱稱。默認(rèn)認(rèn)為當(dāng)前前數(shù)據(jù)庫(kù)庫(kù)。SCN:指定一一個(gè)SCN。TIMESTAMP:指定一一個(gè)時(shí)間間戳。Expr:指定定一個(gè)值值或表達(dá)達(dá)式。BEFORE:恢復(fù)到到指定SCN或或時(shí)間戳戳之前。2216.5.2使使用用閃回?cái)?shù)數(shù)據(jù)庫(kù)【例16.8】Oracle數(shù)數(shù)據(jù)庫(kù)閃閃回的示示例如下下。(1)在在scott用戶下下創(chuàng)建兩兩個(gè)表student1與student2,并并向這兩兩個(gè)表添添加數(shù)據(jù)據(jù)(注意意使用COMMIT命命令進(jìn)行行提交)。(2)獲獲取系系統(tǒng)當(dāng)前前的時(shí)間間,供閃閃回

20、數(shù)據(jù)據(jù)庫(kù)時(shí)使使用。(3)刪刪除student1表,并修改改student2表表中的數(shù)數(shù)據(jù)。(4)下下面使使用sys用戶戶閃回當(dāng)當(dāng)前數(shù)據(jù)據(jù)庫(kù):參見教材材P361(5)使使用scott用戶戶連接數(shù)數(shù)據(jù)庫(kù),查詢student1表和和student2表表。從查詢結(jié)結(jié)果可以以看出,scott用用戶下存存在student1表,并并且student2表中記記錄的sname值依依然為TRACY,這這就說(shuō)明明當(dāng)前數(shù)數(shù)據(jù)庫(kù)中中的數(shù)據(jù)據(jù)已經(jīng)恢恢復(fù)到了了指定的的時(shí)間點(diǎn)點(diǎn)。2316.6閃回?cái)?shù)據(jù)據(jù)歸檔(FlashbackDataArchive)閃回?cái)?shù)據(jù)據(jù)歸檔的的實(shí)現(xiàn)機(jī)機(jī)制與前前面幾種種閃回不不同,它它將改變變的數(shù)據(jù)據(jù)另外

21、存存儲(chǔ)到特特定的閃閃回?cái)?shù)據(jù)據(jù)歸檔區(qū)區(qū)中,從從而讓閃閃回不再再受撤消消數(shù)據(jù)的的限制,大大提提高了數(shù)數(shù)據(jù)的保保留時(shí)間間,閃回回?cái)?shù)據(jù)歸歸檔中的的數(shù)據(jù)行行可以保保留幾年年甚至幾幾十年。閃回?cái)?shù)據(jù)據(jù)歸檔并并不針對(duì)對(duì)所有的的數(shù)據(jù)改改變,它它只記錄錄UPDATE和DELETE語(yǔ)句句,而不不記錄INSERT語(yǔ)語(yǔ)句。2416.6.1創(chuàng)創(chuàng)建建與管理理閃回?cái)?shù)數(shù)據(jù)歸檔檔區(qū)1創(chuàng)建建閃回?cái)?shù)數(shù)據(jù)歸檔檔區(qū)創(chuàng)建閃回回?cái)?shù)據(jù)歸歸檔區(qū)的的語(yǔ)法形形式如下下:CREATEFLASHBACK ARCHIVEDEFAULT archive_nameTABLESPACE tablespace_name QUOTA sizeK| MRETENTI

22、ONretention_time;2管理理閃回?cái)?shù)數(shù)據(jù)歸檔檔區(qū)對(duì)已創(chuàng)建建的閃回回?cái)?shù)據(jù)歸歸檔區(qū),可以進(jìn)進(jìn)行如下下形式的的管理添加加表空間間、刪除除表空間間、修改改數(shù)據(jù)保保留期限限、修改改磁盤限限額大小小、清除除閃回?cái)?shù)數(shù)據(jù)歸檔檔區(qū)中的的數(shù)據(jù)和和刪除閃閃回?cái)?shù)據(jù)據(jù)歸檔區(qū)區(qū)。2516.6.2為為表表指定閃閃回?cái)?shù)據(jù)據(jù)歸檔區(qū)區(qū)1在創(chuàng)創(chuàng)建表時(shí)時(shí)為表指指定閃回回?cái)?shù)據(jù)歸歸檔區(qū)在創(chuàng)建表表時(shí)為表表指定閃閃回?cái)?shù)據(jù)據(jù)歸檔區(qū)區(qū),需要要使用FLASHBACKARCHIVE子句句?!纠?6.17】在system用戶下下創(chuàng)建表表table01,并并為其指指定閃回回?cái)?shù)據(jù)歸歸檔區(qū)為為archive01。具體體如下:SQL CONNECTsystem/admin已連接。SQL CREATETABLEtable01 (idNUMBER,text VARCHAR2(10)2FLASHBACKARCHIVEarchive01;表已創(chuàng)建建。2616.6.2為為表

溫馨提示

  • 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)論