Oracleg數(shù)據(jù)庫(kù)基礎(chǔ)教程之閃回技術(shù)_第1頁(yè)
Oracleg數(shù)據(jù)庫(kù)基礎(chǔ)教程之閃回技術(shù)_第2頁(yè)
Oracleg數(shù)據(jù)庫(kù)基礎(chǔ)教程之閃回技術(shù)_第3頁(yè)
Oracleg數(shù)據(jù)庫(kù)基礎(chǔ)教程之閃回技術(shù)_第4頁(yè)
Oracleg數(shù)據(jù)庫(kù)基礎(chǔ)教程之閃回技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩60頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第14章閃回技術(shù)本章內(nèi)容閃回技術(shù)概述閃回查詢(xún)技術(shù)閃回查詢(xún)閃回版本查詢(xún)閃回事務(wù)查詢(xún)閃回錯(cuò)誤操作技術(shù)閃回表閃回刪除閃回?cái)?shù)據(jù)庫(kù)本章要求了解閃回技術(shù)掌握閃回查詢(xún)操作掌握閃回版本查詢(xún)操作掌握閃回事務(wù)查詢(xún)操作掌握閃回表操作掌握閃回刪除操作掌握閃回?cái)?shù)據(jù)庫(kù)操作14.1閃回技術(shù)概述閃回基本概念閃回技術(shù)分類(lèi)14.1.1基本概念Oracle9i實(shí)現(xiàn)了基于回滾段的閃回查詢(xún)(FlashbackQuery)技術(shù),即從回滾段中讀取一定時(shí)間內(nèi)對(duì)表進(jìn)行操作的數(shù)據(jù),恢復(fù)錯(cuò)誤的DML操作。在Oracle10g中,除提高了閃回查詢(xún)功能,實(shí)現(xiàn)了閃回版本查詢(xún)、閃回事務(wù)查詢(xún)外,還實(shí)現(xiàn)了閃回表、閃回刪除和閃回?cái)?shù)據(jù)庫(kù)的功能。閃回技術(shù)是數(shù)據(jù)庫(kù)恢復(fù)技術(shù)歷史上一次重大的進(jìn)步,從根本上改變了數(shù)據(jù)恢復(fù)。采用閃回技術(shù),可以針對(duì)行級(jí)和事務(wù)級(jí)發(fā)生過(guò)變化的數(shù)據(jù)進(jìn)行恢復(fù),減少了數(shù)據(jù)恢復(fù)的時(shí)間,而且操作簡(jiǎn)單,通過(guò)SQL語(yǔ)句就可以實(shí)現(xiàn)數(shù)據(jù)的恢復(fù),大大提高了數(shù)據(jù)庫(kù)恢復(fù)的效率。14.1.2閃回技術(shù)分類(lèi)閃回查詢(xún)(FlashbackQuery):查詢(xún)過(guò)去某個(gè)時(shí)間點(diǎn)或某個(gè)SCN值時(shí)表中的數(shù)據(jù)信息;閃回版本查詢(xún)(FlashbackVersionQuery):查詢(xún)過(guò)去某個(gè)時(shí)間段或某個(gè)SCN段內(nèi)表中數(shù)據(jù)的變化情況;閃回事務(wù)查詢(xún)(FlashbackTransactionQuery):查看某個(gè)事務(wù)或所有事務(wù)在過(guò)去一段時(shí)間對(duì)數(shù)據(jù)進(jìn)行的修改;閃回表(FlashbackTable):將表恢復(fù)到過(guò)去的某個(gè)時(shí)間點(diǎn)或某個(gè)SCN值時(shí)的狀態(tài);閃回刪除(FlashbackDrop):將已經(jīng)刪除的表及其關(guān)聯(lián)對(duì)象恢復(fù)到刪除前的狀態(tài);閃回?cái)?shù)據(jù)庫(kù)(FlashbackDatabase):將數(shù)據(jù)庫(kù)恢復(fù)到過(guò)去某個(gè)時(shí)間點(diǎn)或某個(gè)SCN值時(shí)的狀態(tài)。注意閃回查詢(xún)、閃回版本查詢(xún)、閃回事務(wù)查詢(xún)以及閃回表主要是基于撤銷(xiāo)表空間中的回滾信息實(shí)現(xiàn)的;閃回刪除、閃回?cái)?shù)據(jù)庫(kù)是基于Oracle10g中的回收站(RecycleBin)和閃回恢復(fù)區(qū)(FlashRecoveryArea)特性實(shí)現(xiàn)的。為了使用數(shù)據(jù)庫(kù)的閃回技術(shù),必須啟用撤銷(xiāo)表空間自動(dòng)管理回滾信息。如果要使用閃回刪除技術(shù)和閃回?cái)?shù)據(jù)庫(kù)技術(shù),還需要啟用回收站、閃回恢復(fù)區(qū)。14.2閃回查詢(xún)技術(shù)概述閃回查詢(xún)閃回版本查詢(xún)閃回事務(wù)查詢(xún)閃回查詢(xún)的機(jī)制閃回查詢(xún)是指利用數(shù)據(jù)庫(kù)回滾段存放的信息查看指定表中過(guò)去某個(gè)時(shí)間點(diǎn)的數(shù)據(jù)信息,或過(guò)去某個(gè)時(shí)間段數(shù)據(jù)的變化情況,或某個(gè)事務(wù)對(duì)該表的操作信息等。為了使用閃回查詢(xún)功能,需要啟動(dòng)數(shù)據(jù)庫(kù)撤銷(xiāo)表空間來(lái)管理回滾信息。與撤銷(xiāo)表空間相關(guān)的參數(shù)包括:

UNDO_MANAGEMENT:指定回滾段的管理方式,如果設(shè)置為AUTO,則采用撤銷(xiāo)表空間自動(dòng)管理回滾信息;

UNDO_TABLESPACE:指定用于回滾信息自動(dòng)管理的撤銷(xiāo)表空間名;

UNDO_RETENTIOIN:指定回滾信息的最長(zhǎng)保留時(shí)間。14.2.1閃回查詢(xún)閃回查詢(xún)可以返回過(guò)去某個(gè)時(shí)間點(diǎn)已經(jīng)提交事務(wù)操作的結(jié)果?;菊Z(yǔ)法:SELECTcolumn_name[,…]FROMtable_name[ASOFSCN|TIMESTAMPexpression][WHEREcondition]基于ASOFTIMESTAMP的閃回查詢(xún)基于ASOFSCN的閃回查詢(xún)(1))基基于于ASOFTIMESTAMP的的閃閃回回查查詢(xún)?cè)僑QL>ALTERSESSIONSETNLS_DATE_FORMAT='YYYY-MM-DDHH24:MI:SS';SQL>SETTIMEON09:12:50SQL>SELECTempno,salFROMscott.empWHEREempno=7844;EMPNOSAL--------------7844150009:13:00SQL>UPDATEscott.empSETsal=2000WHEREempno=7844;09:13:07SQL>COMMIT;09:13:12SQL>UPDATEscott.empSETsal=2500WHEREempno=7844;09:14:28SQL>UPDATEscott.empSETsal=3000WHEREempno=7844;09:14:41SQL>COMMIT;09:14:50SQL>UPDATEscott.empSETsal=3500WHEREempno=7844;09:15:43SQL>COMMIT;查詢(xún)?cè)?844號(hào)號(hào)員員工工的的當(dāng)當(dāng)前前工工資資值值。。09:15:48SQL>SELECTempno,salFROMscott.empWHEREempno=7844;EMPNOSAL-----------------78443500查詢(xún)7844號(hào)號(hào)員工前前一個(gè)小小時(shí)的工工資值。。09:16:00SQL>SELECTempno,salFROMscott.empASOFTIMESTAMPSYSDATE-1/24WHEREempno=7844;EMPNOSAL----------------78441500查詢(xún)第一一個(gè)事務(wù)務(wù)提交,,第二個(gè)個(gè)事務(wù)還還沒(méi)有提提交時(shí)7844號(hào)員工工的工資資。09:16:22SQL>SELECTempno,salFROMscott.empASOFTIMESTAMPTO_TIMESTAMP('2009-3-2309:14:41','YYYY-MM-DDHH24:MI:SS')WHEREempno=7844;EMPNOSAL-----------------78442000查詢(xún)第二二個(gè)事務(wù)務(wù)提交,,第三個(gè)個(gè)事務(wù)還還沒(méi)有提提交時(shí)7844號(hào)員工工的工資資09:17:47SQL>SELECTempno,salFROMscott.empASOFTIMESTAMPTO_TIMESTAMP('2009-3-2309:15:43','YYYY-MM-DDHH24:MI:SS')WHEREempno=7844;EMPNOSAL-----------------78443000如果需要要,可以以將數(shù)據(jù)據(jù)恢復(fù)到到過(guò)去某某個(gè)時(shí)刻刻的狀態(tài)態(tài)。09:25:23SQL>UPDATEscott.empSETsal=(SELECTsalFROMscott.empASOFTIMESTAMPTO_TIMESTAMP('2009-3-239:15:43','YYYY-MM-DDHH24:MI:SS')WHEREempno=7844)WHEREempno=7844;09:25:55SQL>COMMIT;09:26:13SQL>SELECTempno,salFROMscott.empWHEREempno=7844;EMPNOSAL----------------7844300014.2.2閃閃回回版本查查詢(xún)09:27:58SQL>SELECTcurrent_scnFROMv$database;CURRENT_SCN-----------61724409:27:58SQL>SELECTempno,salFROMscott.empWHEREempno=7844;EMPNOSAL----------------7844300009:28:21SQL>UPDATEscott.empSETsal=5000WHEREempno=7844;09:29:23SQL>COMMIT;09:29:31SQL>UPDATEscott.empSETsal=5500WHEREempno=7844;09:29:55SQL>COMMIT;09:30:14SQL>SELECTcurrent_scnFROMv$database;CURRENT_SCN-----------61731709:30:37SQL>SELECTempno,salFROMscott.empASOFSCN617244WHEREempno=7844;EMPNOSAL---------------78443000注意事實(shí)上,,Oracle在內(nèi)內(nèi)部都是是使用SCN的的,即使使指定的的是ASOFTIMESTAMP,Oracle也也會(huì)將將其轉(zhuǎn)換換成SCN。系系統(tǒng)時(shí)間間與SCN之間間的對(duì)應(yīng)應(yīng)關(guān)系可可以通過(guò)過(guò)查詢(xún)SYS模模式下的的SMON_SCN_TIME表獲獲得。SELECTscn,TO_CHAR(time_dp,'YYYY-MM-DDHH24:MI:SS')time_dpFROMsys.smon_scn_time;利用閃回回版本查查詢(xún),可可以查看看一行記記錄在一一段時(shí)間間內(nèi)的變變化情況況,即一一行記錄錄的多個(gè)個(gè)提交的的版本信信息,從從而可以以實(shí)現(xiàn)數(shù)數(shù)據(jù)的行行級(jí)恢復(fù)復(fù)。基本語(yǔ)法法SELECTcolumn_name[,…]FROMtable_name[VERSIONSBETWEENSCN|TIMESTAMPMINVALUE|expressionANDMAXVALUE|expression][ASOFSCN|TIMESTAMPexpression]WHEREcondition參數(shù)說(shuō)明明VERSIONSBETWEEN:用于于指定閃閃回版本本查詢(xún)時(shí)時(shí)查詢(xún)的的時(shí)間段段或SCN段;;ASOF:用用于指定定閃回查查詢(xún)時(shí)查查詢(xún)的時(shí)時(shí)間點(diǎn)或或SCN。在閃回版版本查詢(xún)?cè)兊哪繕?biāo)標(biāo)列中,,可以使使用下列列幾個(gè)偽偽列返回回版本信信息。VERSIONS_STARTTIME::基于時(shí)間間的版本本有效范范圍的下下界;VERSIONS_STARTSCN:基于SCN的版本有有效范圍圍的下界界;VERSIONS_ENDTIME:基于時(shí)時(shí)間的版版本有效效范圍的的上界;;VERSIONS_ENDSCN:基于SCN的版本有有效范圍圍的上界界;VERSIONS_XID:操作的的事務(wù)ID;VERSIONS_OPERATION:執(zhí)行操操作的類(lèi)類(lèi)型,I表示INSERT,D表示DELETE,U表示UPDATE。SQL>UPDATEscott.empSETsal=6000WHEREempno=7844;SQL>UPDATEscott.empSETsal=6500WHEREempno=7844;SQL>UPDATEscott.empSETsal=7000WHEREempno=7844;SQL>COMMIT;SQL>UPDATEscott.empSETsal=7500WHEREempno=7844;SQL>COMMIT;SQL>SETLINESIZE600SQL>COLSTARTTIMEFORMATA30SQL>COLENDTIMEFORMATA30SQL>COLOPERATIONFORMATA10基于VERSIONSBETWEENTIMESTAMP的閃回回版本查查詢(xún)。SQL>SELECTversions_xidXID,versions_starttimeSTARTTIME,versions_endtimeENDTIME,versions_operationOPERATION,salFROMscott.empVERSIONSBETWEENTIMESTAMPMINVALUEANDMAXVALUEWHEREempno=7844ORDERBYSTARTTIME;基于VERSIONSBETWEENSCN的閃回回版本查查詢(xún)。SQL>SELECTversions_xidXID,versions_startscnSTARTSCN,versions_endscnENDSCN,versions_operationOPERATION,salFROMscott.empVERSIONSBETWEENSCNMINVALUEANDMAXVALUEWHEREempno=7844ORDERBYSTARTSCN;查詢(xún)當(dāng)前前7844號(hào)員員工的工工資。SQL>SELECTempno,salFROMscott.empWHEREempno=7844;EMPNOSAL----------------78447500如果需要要,可以以將數(shù)據(jù)據(jù)恢復(fù)到到過(guò)去某某個(gè)時(shí)刻刻的狀態(tài)態(tài)。SQL>UPDATEscott.empSETsal=(SELECTsalFROMscott.empASOFTIMESTAMPTO_TIMESTAMP('2009-3-2310:25:03','YYYY-MM-DDHH24:MI:SS')WHEREempno=7844)WHEREempno=7844;SQL>COMMIT;SQL>SELECTempno,salFROMscott.empWHEREempno=7844;EMPNOSAL-----------------78446000注意在進(jìn)行閃閃回版本本查詢(xún)時(shí)時(shí),可以以同時(shí)使使用VERSIONS短語(yǔ)語(yǔ)和ASOF短語(yǔ)語(yǔ)。ASOF短語(yǔ)決決定了進(jìn)進(jìn)行查詢(xún)?cè)兊臅r(shí)間間點(diǎn)或SCN,,VERSIONS短短語(yǔ)決決定了可可見(jiàn)的行行的版本本信息。。對(duì)于在在VERSIONSBETWEEN下界界之前開(kāi)開(kāi)始的事事務(wù),或或在ASOF指定的的時(shí)間或或SCN之后完完成的事事務(wù),系系統(tǒng)返回回的版本本信息為為NULL。將VERSIONSBWTWEENTIMESTAMP與與ASOFTIMESTAMP配合使使用。SQL>SELECTversions_xidXID,versions_starttimeSTARTTIME,versions_endtimeENDTIME,versions_operationOPERATION,salFROMscott.empVERSIONSBETWEENTIMESTAMPMINVALUEANDMAXVALUEASOFTIMESTAMPTO_TIMESTAMP('2009-3-2310:24:40','YYYY-MM-DDHH24:MI:SS')WHEREempno=7844ORDERBYSTARTTIME;將VERSIONSBWTWEENSCN與ASOFSCN配合合使用SQL>SELECTversions_xidXID,versions_startscnSTARTSCN,versions_endscnENDSCN,versions_operationOPERATION,salFROMscott.empVERSIONSBETWEENSCNMINVALUEANDMAXVALUEASOFSCN620045WHEREempno=7844ORDERBYSTARTSCN;14.2.3閃閃回事務(wù)查查詢(xún)閃回事務(wù)查查詢(xún)提供了了一種查看看事務(wù)級(jí)數(shù)數(shù)據(jù)庫(kù)變化化的方法。??梢詮腇LASHBACK_TRANSATION_QUERY中查看回回滾段中存存儲(chǔ)的事務(wù)務(wù)信息。例如:SQL>SELECToperation,undo_sql,table_nameFROMFLASHBACK_TRANSACTION_QUERY;SQL>SELECToperation,undo_sql,table_nameFROMFLASHBACK_TRANSACTION_QUERYWHERExid=HEXTORAW('04001E002E010000');通常,將閃閃回事務(wù)查查詢(xún)與閃回回版本查詢(xún)?cè)兿嘟Y(jié)合,,先利用閃閃回版本查查詢(xún)獲取事事務(wù)ID及及事務(wù)操作作結(jié)果,然然后利用事事務(wù)ID查查詢(xún)事務(wù)的的詳細(xì)操作作信息。SQL>SELECTversions_xid,salFROMscott.empVERSIONSBETWEENSCNMINVALUEANDMAXVALUEWHEREempno=7844;SQL>SELECToperation,undo_sqlFROMFLASHBACK_TRANSACTION_QUERYWHERExid=HEXTORAW('04001E002E010000');14.3閃閃回錯(cuò)錯(cuò)誤操作技技術(shù)閃回表閃回刪除閃回?cái)?shù)據(jù)庫(kù)庫(kù)14.3.1閃閃回表概述閃回表是將將表恢復(fù)到到過(guò)去的某某個(gè)時(shí)間點(diǎn)點(diǎn)的狀態(tài),,為DBA提供了一一種在線(xiàn)、、快速、便便捷地恢復(fù)復(fù)對(duì)表進(jìn)行行的修改、、刪除、插插入等錯(cuò)誤誤的操作。。與閃回查詢(xún)?cè)儾煌?,閃閃回查詢(xún)只只是得到表表在過(guò)去某某個(gè)時(shí)間點(diǎn)點(diǎn)上的快照照,并不改改變表的當(dāng)當(dāng)前狀態(tài),,而閃回表表則是將表表及附屬對(duì)對(duì)象一起恢恢復(fù)到以前前的某個(gè)時(shí)時(shí)間點(diǎn)。利用閃回表表技術(shù)恢復(fù)復(fù)表中數(shù)據(jù)據(jù)的過(guò)程,,實(shí)際上是是對(duì)表進(jìn)行行DML操操作的過(guò)程程。Oracle自自動(dòng)維護(hù)與與表相關(guān)聯(lián)聯(lián)的索引、、觸發(fā)器、、約束等,,不需要DBA參與與。為了使用數(shù)數(shù)據(jù)庫(kù)閃回回表功能,,必須滿(mǎn)足足下列條件件:用戶(hù)具有FLASHBACKANYTABLE系統(tǒng)權(quán)限,,或者具有有所操作表表的FLASHBACK對(duì)象權(quán)限;;用戶(hù)具有所所操作表的的SELECT,INSERT,DELETE,,ALTER對(duì)象權(quán)限;;數(shù)據(jù)庫(kù)采采用撤銷(xiāo)銷(xiāo)表空間間進(jìn)行回回滾信息息的自動(dòng)動(dòng)管理,,合理設(shè)設(shè)置UNDO_RETENTIOIN參數(shù)值,,保證指指定的時(shí)時(shí)間點(diǎn)或或SCN對(duì)應(yīng)信息息保留在在撤銷(xiāo)表表空間中中;啟動(dòng)被操操作表的的ROWMOVEMENT特性,可可以采用用下列方方式進(jìn)行行:ALTERTABLEtableENABLEROWMOVEMENT;閃回表操操作的基基本語(yǔ)法法為FLASHBACKTABLE[schema.]tableTOSCN|TIMESTAMPexpression[ENABLE|DISABLETRIGGERS]參數(shù)說(shuō)明明SCN:將表恢恢復(fù)到指指定的SCN時(shí)狀態(tài);;TIMESTAMP:將表恢恢復(fù)到指指定的時(shí)時(shí)間點(diǎn);;ENABLE|DIABLETRIGGER:在恢復(fù)復(fù)表中數(shù)數(shù)據(jù)的過(guò)過(guò)程中,,表上的的觸發(fā)器器是激活活還是禁禁用(默默認(rèn)為禁禁用)。。注意SYS用用戶(hù)或以以ASSYSDBA身份登登錄的用用戶(hù)不能能執(zhí)行閃閃回表操操作。SQL>CONNscott/tigerSQL>SETTIMEON09:14:01SQL>CREATETABLEtest(IDNUMBERPRIMARYKEY,nameCHAR(20));09:14:12SQL>INSERTINTOtestVALUES(1,'ZHANG');09:14:24SQL>COMMIT;09:14:32SQL>INSERTINTOtestVALUES(2,'ZHAO');09:14:39SQL>COMMIT;09:14:43SQL>INSERTINTOtestVALUES(3,'WANG');09:14:49SQL>COMMIT;09:16:31SQL>SELECTcurrent_scnFROMv$database;CURRENT_SCN-----------67537109:16:50SQL>UPDATEtestSETname='LIU'WHEREid=1;09:17:02SQL>COMMIT;09:17:05SQL>SELECT*FROMtest;IDNAME-----------1LIU2ZHAO3WANG09:17:13SQL>DELETEFROMtestWHEREid=3;09:17:51SQL>COMMIT;09:18:02SQL>SELECT*FROMtest;IDNAME-----------1LIU2ZHAO啟動(dòng)test表表的ROWMOVEMENT特性性09:19:33SQL>ALTERTABLEtestENABLEROWMOVEMENT;將test表恢恢復(fù)到2009-3-2409:17:51時(shí)時(shí)刻的狀狀態(tài)09:20:06SQL>FLASHBACKTABLEtestTOTIMESTAMPTO_TIMESTAMP('2009-3-2409:17:51','YYYY-MM-DDHH24:MI:SS');09:20:18SQL>SELECT*FROMtest;IDNAME-----------1LIU2ZHAO3WANG將test表恢恢復(fù)到SCN為為675371的狀態(tài)態(tài)09:20:25SQL>FLASHBACKTABLEtestTOSCN675371;09:20:50SQL>SELECT*FROMtest;IDNAME-----------1ZHANG2ZHAO3WANG14.3.2閃閃回回刪除閃回刪除除概述回收站管管理閃回刪除除操作(1)閃閃回刪除除概述閃回刪除除可恢復(fù)復(fù)使用DROPTABLE語(yǔ)句刪刪除的表表,是一一種對(duì)意意外刪除除的表的的恢復(fù)機(jī)機(jī)制。閃回刪除除功能的的實(shí)現(xiàn)主主要是通通過(guò)Oracle10g數(shù)數(shù)據(jù)庫(kù)中中的“回回收站””(RecycleBin)技術(shù)術(shù)實(shí)現(xiàn)的的。在Oracle10g數(shù)據(jù)據(jù)庫(kù)中,,當(dāng)執(zhí)行行DROPTABLE操作作時(shí),并并不立即即回收表表及其關(guān)關(guān)聯(lián)對(duì)象象的空間間,而是是將它們們重命名名后放入入一個(gè)稱(chēng)稱(chēng)為“回回收站””的邏輯輯容器中中保存,,直到用用戶(hù)決定定永久刪刪除它們們或存儲(chǔ)儲(chǔ)該表的的表空間間存儲(chǔ)空空間不足足時(shí),表表才真正正被刪除除。為了使用用閃回刪刪除技術(shù)術(shù),必須須開(kāi)啟數(shù)數(shù)據(jù)庫(kù)的的“回收收站”。。(2)回回收站管管理啟動(dòng)“回回收站””要使用閃閃回刪除除功能,,需要啟啟動(dòng)數(shù)據(jù)據(jù)庫(kù)的““回收站站”,即即將參數(shù)數(shù)RECYCLEBIN設(shè)置置為ON。在默默認(rèn)情況況下“回回收站””已啟動(dòng)動(dòng)。SQL>SHOWPARAMETERRECYCLEBINSQL>ALTERSYSTEMSETRECYCLEBIN=ON;查看“回回收站””當(dāng)執(zhí)行DROPTABLE操作時(shí)時(shí),表及及其關(guān)聯(lián)聯(lián)對(duì)象被被命名后后保存在在“回收收站”中中,可以以通過(guò)查查詢(xún)USER_RECYCLEBIN,DBA_RECYCLEBIN視圖圖獲得被被刪除的的表及其其關(guān)聯(lián)對(duì)對(duì)象信息息。SQL>DROPTABLEtest;SQL>SELECTBJECT_NAME,ORIGINAL_NAME,TYPEFROMUSER_RECYCLEBIN;如果在刪刪除表時(shí)時(shí)使用了了PURGE短短語(yǔ),則則表及其其關(guān)聯(lián)對(duì)對(duì)象被直直接釋放放,空間間被回收收,相關(guān)關(guān)信息不不會(huì)進(jìn)入入“回收收站”中中。SQL>CREATETABLEtest_purge(IDNUMBERPRIMARYKEY,nameCHAR(20));SQL>DROPTABLEtest_purgePURGE;SQL>SELECTBJECT_NAME,ORIGINAL_NAME,TYPEFROMUSER_RECYCLEBIN;清除回收收站由于被刪刪除表及及其關(guān)聯(lián)聯(lián)對(duì)象的的信息保保存在““回收站站”中,,其存儲(chǔ)儲(chǔ)空間并并沒(méi)有釋釋放,因因此需要要定期清清空“回回收站””,或清清除“回回收站””中沒(méi)用用的對(duì)象象(表、、索引、、表空間間),釋釋放其所所占的磁磁盤(pán)空間間。清除回收收站語(yǔ)法法為:PURGE[TABLEtable|INDEXindex]|[RECYCLEBIN|DBA_RECYCLEBIN]|[TABLESPACEtablespace[USERuser]]參數(shù)說(shuō)明明TABLE:從“回收收站”中中清除指指定的表表,并回回收其磁磁盤(pán)空間間;INDEX:從“回回收站””中清除除指定的的索引,,并回收收其磁盤(pán)盤(pán)空間;;RECYCLEBIN:清空用用戶(hù)“回回收站””,并回回收所有有對(duì)象的的磁盤(pán)空空間;DBA_RECYCLEBIN:清空整個(gè)數(shù)數(shù)據(jù)庫(kù)系統(tǒng)的的“回收站””,只有具有有SYSDBA權(quán)限的用戶(hù)才才可以使用;;TABLESPACE:清除“回收收站”中指定定的表空間,,并回收磁盤(pán)盤(pán)空間;USER:清除“回收收站”中指定定表空間中特特定用戶(hù)的對(duì)對(duì)象,并回收收磁盤(pán)空間。。例如:SQL>PURGEINDEX"BIN$i+nXRT6iTp6Gb3zoP/R5Fw==$0";SQL>PURSETABLETEST;SQL>PURGERECYCLEBIN;(3)閃回刪刪除操作閃回刪除的基基本語(yǔ)法為FLASHBACKTABLE[schema.]tableTOBEFOREDROP[RENAMETOtable]注意只有采用本地地管理的、非非系統(tǒng)表空間間中的表可以以使用閃回刪刪除操作。示例SQL>CREATETABLEexample(IDNUMBERPRIMARYKEY,NAMECHAR(20));SQL>INSERTINTOexampleVALUES(1,'BEFOREDROP');SQL>COMMIT;SQL>DROPTABLEexample;SQL>FLASHBACKTABLEexampleTOBEFOREDROPRENAMETOnew_example;SQL>SELECT*FROMnew_example;IDNAME--------------1BEFOREDROP14.3.3閃回?cái)?shù)數(shù)據(jù)庫(kù)閃回?cái)?shù)據(jù)庫(kù)概概述閃回?cái)?shù)據(jù)庫(kù)的的限制啟動(dòng)閃回?cái)?shù)據(jù)據(jù)庫(kù)的條件閃回?cái)?shù)據(jù)庫(kù)操操作(1)閃回?cái)?shù)數(shù)據(jù)庫(kù)概述閃回?cái)?shù)據(jù)庫(kù)技技術(shù)是將數(shù)據(jù)據(jù)庫(kù)快速恢復(fù)復(fù)到過(guò)去的某某個(gè)時(shí)間點(diǎn)或或SCN值時(shí)時(shí)的狀態(tài),以以解決由于用用戶(hù)錯(cuò)誤操作作或邏輯數(shù)據(jù)據(jù)損壞引起的的問(wèn)題。閃回?cái)?shù)據(jù)庫(kù)操操作不需要使使用備份重建建數(shù)據(jù)文件,,而只需要應(yīng)應(yīng)用閃回日志志文件和歸檔檔日志文件。。為了使用數(shù)據(jù)據(jù)庫(kù)閃回技術(shù)術(shù),需要預(yù)先先設(shè)置數(shù)據(jù)庫(kù)庫(kù)的閃回恢復(fù)復(fù)區(qū)和閃回日日志保留時(shí)間間。閃回恢復(fù)復(fù)區(qū)用于保存存數(shù)據(jù)庫(kù)運(yùn)行行過(guò)程中產(chǎn)生生的閃回日志志文件,而閃閃回日志保留留時(shí)間是指閃閃回恢復(fù)區(qū)中中的閃回日志志文件保留的的時(shí)間,即數(shù)數(shù)據(jù)庫(kù)可以恢恢復(fù)到過(guò)去的的最大時(shí)間。。(2)閃回?cái)?shù)數(shù)據(jù)庫(kù)的限制制閃回?cái)?shù)據(jù)庫(kù)操操作的限制::數(shù)據(jù)文件損壞壞或丟失等介介質(zhì)故障不能能使用閃回?cái)?shù)數(shù)據(jù)庫(kù)進(jìn)行恢恢復(fù)。閃回?cái)?shù)數(shù)據(jù)庫(kù)只能基基于當(dāng)前正常常運(yùn)行的數(shù)據(jù)據(jù)文件;閃回?cái)?shù)據(jù)庫(kù)功功能啟動(dòng)后,,如果發(fā)生數(shù)數(shù)據(jù)庫(kù)控制文文件重建或利利用備份恢復(fù)復(fù)控制文件,,則不能使用用閃回?cái)?shù)據(jù)庫(kù)庫(kù);不能使用閃回回?cái)?shù)據(jù)庫(kù)進(jìn)行行數(shù)據(jù)文件收收縮操作;不能使用閃回回?cái)?shù)據(jù)庫(kù)將數(shù)數(shù)據(jù)庫(kù)恢復(fù)到到在閃回日志志中可獲得最最早的SCN之前的SCN,因?yàn)殚W閃回日志文件件在一定條件件下被刪除,,而不是始終終保存在閃回回恢復(fù)區(qū)中。。(3)啟動(dòng)閃閃回?cái)?shù)據(jù)庫(kù)的的條件閃回?cái)?shù)據(jù)庫(kù)功功能需要滿(mǎn)足足的條件:數(shù)據(jù)庫(kù)必須處處于歸檔模式式(ARCHIVELOG);數(shù)據(jù)庫(kù)設(shè)置了了閃回恢復(fù)區(qū)區(qū);數(shù)據(jù)庫(kù)啟用了了FLASHBACKDATABASE特性性。設(shè)置數(shù)據(jù)庫(kù)的的歸檔模式SQL>CONNSYS/TIGERASSYSDBASQL>ARCHIVELOGLIST;SQL>SHUTDOWNIMMEDIATESQL>STARTUPMOUNTSQL>ALTERDATABASEARCHIVELOG;SQL>ALTERDATABASEOPEN;SQL>ALTERSYSTEMARCHIVELOGSTART;SQL>ARCHIVELOGLIST;設(shè)置數(shù)據(jù)庫(kù)的的閃回恢復(fù)區(qū)區(qū)在Oracle10g數(shù)據(jù)庫(kù)安裝裝過(guò)程中,默默認(rèn)情況下已已設(shè)置了數(shù)據(jù)據(jù)庫(kù)的閃回恢恢復(fù)區(qū)??梢酝ㄟ^(guò)參數(shù)數(shù)查詢(xún)數(shù)據(jù)閃閃回恢復(fù)區(qū)及及其空間大小小。SQL>SHOWPARAMETERDB_RECOVERY_FILE啟動(dòng)數(shù)據(jù)庫(kù)FLASHBACK特性性為了使用閃回回?cái)?shù)據(jù)庫(kù),還還需要啟動(dòng)數(shù)數(shù)據(jù)庫(kù)的FLASHBACK特性,,生成閃回日日志文件。在在默認(rèn)情況下下,數(shù)據(jù)庫(kù)的的FLASHBACK特特性是關(guān)閉的的。在數(shù)據(jù)庫(kù)處于于MOUNT狀態(tài)時(shí)執(zhí)行行ALTERDATABAEFLASHBACKON命令,啟啟動(dòng)數(shù)據(jù)庫(kù)的的FLASHBACK特特性;可以在數(shù)據(jù)庫(kù)庫(kù)處于MOUNT狀態(tài)時(shí)時(shí)執(zhí)行ALTERDATABAEFLASHBACKOFF命命令,關(guān)閉數(shù)數(shù)據(jù)庫(kù)的FLASHBACK特性。。需要通過(guò)參數(shù)數(shù)DB_FLASHBACK_RETENTION_TARGET設(shè)設(shè)置閃回日志志保留時(shí)間,,該參數(shù)默認(rèn)認(rèn)值為1440分鐘,,即一天。示例SQL>SHUTDOWNIMMEDIATESQL>STARTUPMOUNTSQL>ALTERDATABASEFLASHBACKON;SQL>ALTERDATABASEOPEN;

溫馨提示

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

評(píng)論

0/150

提交評(píng)論