第16章Oracle資料學(xué)習(xí)ppt課件_第1頁
第16章Oracle資料學(xué)習(xí)ppt課件_第2頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第16章 Oracle Database 11g閃回技術(shù)本章要點(diǎn):了解閃回技術(shù)的意義。掌握閃回表的運(yùn)用。了解閃回刪除的原理。掌握閃回刪除的運(yùn)用。掌握閃回版本查詢的運(yùn)用。掌握閃回事務(wù)查詢的運(yùn)用。掌握閃回?cái)?shù)據(jù)庫的運(yùn)用。了解閃回?cái)?shù)據(jù)歸檔與其他閃回技術(shù)的區(qū)別。掌握閃回?cái)?shù)據(jù)歸檔區(qū)的創(chuàng)建與管理。掌握閃回?cái)?shù)據(jù)歸檔的運(yùn)用。216.1 閃回表(Flashback Table)閃回表技術(shù)用于恢復(fù)表中的數(shù)據(jù),可以在線進(jìn)展閃回表操作。閃回表本質(zhì)上是將表中的數(shù)據(jù)恢復(fù)到指定的時間點(diǎn)(TIMESTAMP)或系統(tǒng)改動號(SCN)上,并將自動恢復(fù)索引、觸發(fā)器和約束等屬性,同時數(shù)據(jù)庫堅(jiān)持聯(lián)機(jī),從而添加整體的可用性。閃回表需求用到

2、數(shù)據(jù)庫中的吊銷表空間,可以經(jīng)過SHOW PARAMETER undo語句查看與吊銷表空間相關(guān)的信息。316.1 閃回表(Flashback Table)【例16.1】查看當(dāng)前數(shù)據(jù)庫中與吊銷表空間相關(guān)的設(shè)置,如下:SQL SHOW PARAMETER undo ;NAME TYPE VALUE- -undo_management string AUTOundo_retention integer 1200undo_tablespace string UNDOTBS1416.1 閃回表(Flashback Table)進(jìn)展閃回表操作需求運(yùn)用FLASHBACK TABLE語句,其語法如下:FLASH

3、BACK TABLE schema. table TO SCN | TIMESTAMP expr ENABLE | DISABLE TRIGGERS ;語法闡明如下。schema:方式名。table_name:表名。SCN:系統(tǒng)改動號。相對時間點(diǎn)而言,系統(tǒng)改動號比較難以了解,用戶很難知道應(yīng)該閃回到哪個SCN,而時間那么顯得明了得多??梢赃\(yùn)用SCN_TO_TIMESTAMP函數(shù)將SCN轉(zhuǎn)變?yōu)閷?yīng)的時間。TIMESTAMP:時間戳,包括年月日時分秒。可以運(yùn)用TIMESTAMP_TO_SCN函數(shù)將時間轉(zhuǎn)變?yōu)閷?yīng)的SCN。Expr:指定一個值或表達(dá)式,用于表示時間點(diǎn)或SCN。ENABLE TRIGGE

4、RS:與表相關(guān)的觸發(fā)器恢復(fù)后,默以為啟用形狀。DISABLE TRIGGERS:與表相關(guān)的觸發(fā)器恢復(fù)后,默以為禁用形狀。默許情況下為此選項(xiàng)。516.1 閃回表(Flashback Table)【例16.2】下面舉例引見如何運(yùn)用FLASHBACK TABLE語句執(zhí)行閃回表操作。(1)在system用戶下創(chuàng)建表mytest,如下:SQL CREATE TABLE mytest (id NUMBER) ;表已創(chuàng)建。(2)向mytest表中插入一條記錄,并運(yùn)用COMMIT命令提交,如下:SQL INSERT INTO mytest VALUES (1) ;已創(chuàng)建 1 行。SQL COMMIT ;提交完

5、成。616.1 閃回表(Flashback Table)(3)查詢系統(tǒng)當(dāng)前時間,用于閃回時運(yùn)用,如下:SQL SELECT TO_CHAR(SYSDATE , YYYY-MM-DD HH24:MI:SS) FROM dual ;TO_CHAR(SYSDATE,YY-2021-10-06 10:44:47(4)再次向mytest表中添加一條記錄,并運(yùn)用COMMIT命令提交,如下:SQL INSERT INTO mytest VALUES (2) ;已創(chuàng)建 1 行。SQL COMMIT ;提交完成。(5)啟用mytest表的行挪動功能,如下:SQL ALTER TABLE mytest ENABL

6、E ROW MOVEMENT ;表已更改。716.1 閃回表(Flashback Table)(6)運(yùn)用FLASHBACK TABLE命令,將mytest表中的數(shù)據(jù)閃回到第3步查詢出來的時間點(diǎn)上,如下:SQL FLASHBACK TABLE mytest TO TIMESTAMP 2 TO_TIMESTAMP(2021-10-06 10:44:47 , YYYY-MM-DD HH24:MI:SS) ;閃回完成。(7)查詢mytest表中的數(shù)據(jù),察看其數(shù)據(jù)能否閃回到了時間點(diǎn)2021-10-06 10:44:47上,如下:SQL SELECT * FROM mytest ; ID- 1816.2

7、閃回刪除(Flashback Drop)閃回刪除技術(shù)用于恢復(fù)曾經(jīng)被用戶刪除(Drop)的數(shù)據(jù)庫對象,這需求運(yùn)用到Oracle數(shù)據(jù)庫系統(tǒng)中的回收站機(jī)制。916.2.1 回收站(RecycleBin)1禁用與啟用回收站Oracle系統(tǒng)中的回收站在默許情況下是啟用形狀的,可以經(jīng)過設(shè)置初始化參數(shù)recyclebin的值來修正回收站的形狀,這需求運(yùn)用ALTER SESSION語句,其語法方式如下:ALTER SESSION SET recyclebin = ON | OFF ;假設(shè)回收站處于禁用(OFF)形狀,那么被刪除的數(shù)據(jù)庫對象無法保管到回收站中,只能是被徹底刪除。1016.2.1 回收站(Recy

8、cleBin)2查看回收站中的信息查看回收站中的信息時,普通用戶可以運(yùn)用SHOW RECYCLEBIN命令,也可以運(yùn)用user_recyclebin數(shù)據(jù)字典,而數(shù)據(jù)庫管理員那么可以運(yùn)用dba_recyclebin數(shù)據(jù)字典。下面運(yùn)用DESC命令了解user_recyclebin數(shù)據(jù)字典的構(gòu)造,如下:參見教材P3521116.2.1 回收站(RecycleBin)3去除回收站中的對象去除回收站中的對象需求運(yùn)用PURGE命令,其語法方式如下:PURGE TABLESPACE tablespace_name USER user_name | TABLE table_name | INDEX index

9、_name | RECYCLEBIN | DBA_RECYCLEBIN ;1216.2.2 運(yùn)用閃回刪除閃回刪除的語法方式如下:FLASHBACK TABLE table_name TO BEFORE DROP RENAME TO new_table_name ;其中,table_name可以運(yùn)用表的原名,也可以運(yùn)用表在回收站中的稱號。假設(shè)表的原名一樣,那么在運(yùn)用原名進(jìn)展閃回刪除操作時,默許復(fù)原最近一次刪除的表。表被復(fù)原后,默許情況下運(yùn)用其原名,而假設(shè)該稱號曾經(jīng)存在,那么需求在復(fù)原該表時對其重命名,這時需求運(yùn)用RENAME TO子句。1316.2.2 運(yùn)用閃回刪除【例16.5】在scott用戶

10、下創(chuàng)建表mytest2并刪除該表后,查詢該表在回收站中的信息,如下:參見教材P354再運(yùn)用FLASHBACK語句復(fù)原該表,并對其重命名,如下:SQL FLASHBACK TABLE BIN$4VMKTgAvRVG84DxR7n+cFg=$0 2 TO BEFORE DROP 3 RENAME TO mytest2_new ;閃回完成。運(yùn)用SELECT語句查詢mytest2_new表,檢查能否勝利復(fù)原,如下:SQL SELECT * FROM mytest2_new ; ID- 11416.3 閃回版本查詢(Flashback Version Query)閃回版本查詢技術(shù)用于查詢某段時間內(nèi)對表的

11、操作記錄,主要針對INSERT、UPDATE和DELETE操作。閃回版本查詢的語法方式如下:SELECT column_name , . FROM table_nameVERSIONS BETWEEN SCN | TIMESTAMP expr | MINVALUE AND expr | MAXVALUE | AS OF SCN | TIMESTAMP expr ;1516.3 閃回版本查詢(Flashback Version Query)【例16.6】在scott用戶下創(chuàng)建表myversion,并對該表進(jìn)展一系列增刪改操作,如下:參見教材P355上述操作在每次DML操作后都運(yùn)用COMMIT命令

12、進(jìn)展提交。接下來運(yùn)用閃回版本查詢獲取myversion表上的一切操作記錄。如下:參見教材P356在上述查詢中運(yùn)用了Flashback Version Query的部分偽列,其中,versions_operation表示對該行執(zhí)行的操作,其值可為I、U和D,分別對應(yīng)INSERT、UPDATE和DELETE;versions_starttime表示對該行進(jìn)展改動時的起始時間戳(versions_startscn表示起始SCN);versions_endtime表示此次改動不再有效時的終了時間戳(versions_endscn表示終了SCN)。1616.4 閃回事務(wù)查詢(Flashback Tran

13、saction Query)閃回事務(wù)查詢是對閃回版本查詢的擴(kuò)展,經(jīng)過它可以審計(jì)事務(wù)甚至吊銷一個已提交的事務(wù)。在運(yùn)用閃回版本查詢時,閃回操作針對的是表,而運(yùn)用閃回事務(wù)查詢那么針對flashback_transaction_query視圖,該視圖的構(gòu)造如下:參見教材P3561716.4 閃回事務(wù)查詢(Flashback Transaction Query)【例16.7】上一節(jié)引見了閃回版本查詢的運(yùn)用,經(jīng)過閃回版本查詢可以了解表的操作記錄,這些操作記錄都是已提交的事務(wù)。假設(shè)需求吊銷某個事務(wù),可以運(yùn)用如下步驟。(1)運(yùn)用閃回版本查詢獲取事務(wù)ID,這需求用到Flashback Version Query

14、的另外一個偽列versions_xid,例如獲取myversion表上的事務(wù)ID,如下:參見教材P357(2)運(yùn)用閃回事務(wù)查詢需求用戶具有SELECT ANY TRANSACTION權(quán)限,下面運(yùn)用system用戶為scott用戶授予該權(quán)限:參見教材P357(3)在scott用戶下運(yùn)用閃回事務(wù)查詢獲取010018003F050000對應(yīng)的事務(wù)信息,如下:參見教材P357查詢結(jié)果中的undo_sql字段很明確地給出了吊銷事務(wù)的語句,也就是說假設(shè)想要吊銷刪除“記錄3的事務(wù),只需求執(zhí)行如下語句即可:insert into SCOTT.MYVERSION(ID,TEXT) values (3,記錄3);

15、1816.5 閃回?cái)?shù)據(jù)庫(Flashback Database)閃回?cái)?shù)據(jù)庫,實(shí)踐上就是將數(shù)據(jù)庫回退到過去的一個時間點(diǎn)或SCN上,從而實(shí)現(xiàn)整個數(shù)據(jù)庫的恢復(fù),這種恢復(fù)不需求經(jīng)過備份,所以運(yùn)用起來更方便、更快速。1916.5.1 閃回?cái)?shù)據(jù)庫設(shè)置閃回?cái)?shù)據(jù)庫是依賴于閃回日志的,Oracle系統(tǒng)提供了一組閃回日志,記錄了數(shù)據(jù)庫的前滾操作。首先需求了解如下幾個參數(shù)。db_recovery_file_dest:閃回日志的存放位置。db_recovery_file_dest_size:存放閃回日志的空間(即恢復(fù)區(qū))的大小。db_flashback_retention_target:閃回?cái)?shù)據(jù)的保管時間,其單位為分

16、,默許值為1440,即一天。2016.5.1 閃回?cái)?shù)據(jù)庫設(shè)置啟用閃回?cái)?shù)據(jù)庫功能需求運(yùn)用如下語法方式:ALTER DATABSE FLASHBACK ON | OFF ;啟用閃回?cái)?shù)據(jù)庫功能的步驟如下。(1)確定當(dāng)前數(shù)據(jù)庫的日志方式能否為歸檔方式 (2)設(shè)置閃回?cái)?shù)據(jù)庫功能為啟用形狀 (3)檢查閃回?cái)?shù)據(jù)庫功能能否曾經(jīng)啟用,如下:SQL SELECT flashback_on FROM v$database ;FLASHBACK_ON-YES從查詢結(jié)果可以看出,閃回?cái)?shù)據(jù)庫功能曾經(jīng)勝利啟用。2116.5.2 運(yùn)用閃回?cái)?shù)據(jù)庫啟用閃回?cái)?shù)據(jù)庫功能后,就可以對數(shù)據(jù)庫進(jìn)展閃回操作了。運(yùn)用閃回?cái)?shù)據(jù)庫,需求用戶具有S

17、YSDBA權(quán)限。閃回?cái)?shù)據(jù)庫的語法方式如下:FLASHBACK STANDBY DATABASE database_name TO BEFORE SCN | TIMESTAMP expr ;語法闡明如下。STANDBY:表示恢復(fù)一個備用數(shù)據(jù)庫,假設(shè)沒有相應(yīng)的備用數(shù)據(jù)庫,那么系統(tǒng)前往一個錯誤。假設(shè)不指定該選項(xiàng),那么所恢復(fù)的數(shù)據(jù)庫可以是主數(shù)據(jù)庫,也可以是備用數(shù)據(jù)庫。database_name:數(shù)據(jù)庫稱號。默以為當(dāng)前數(shù)據(jù)庫。SCN:指定一個SCN。TIMESTAMP:指定一個時間戳。Expr:指定一個值或表達(dá)式。BEFORE:恢復(fù)到指定SCN或時間戳之前。2216.5.2 運(yùn)用閃回?cái)?shù)據(jù)庫【例16.8】

18、Oracle數(shù)據(jù)庫閃回的例如如下。(1)在scott用戶下創(chuàng)建兩個表student1與student2,并向這兩個表添加數(shù)據(jù)(留意運(yùn)用COMMIT命令進(jìn)展提交)。 (2)獲取系統(tǒng)當(dāng)前的時間,供閃回?cái)?shù)據(jù)庫時運(yùn)用。 (3)刪除student1表,并修正student2表中的數(shù)據(jù)。 (4)下面運(yùn)用sys用戶閃回當(dāng)前數(shù)據(jù)庫:參見教材P361(5)運(yùn)用scott用戶銜接數(shù)據(jù)庫,查詢student1表和student2表。 從查詢結(jié)果可以看出,scott用戶下存在student1表,并且student2表中記錄的sname值依然為TRACY,這就闡明當(dāng)前數(shù)據(jù)庫中的數(shù)據(jù)曾經(jīng)恢復(fù)到了指定的時間點(diǎn)。2316.6

19、 閃回?cái)?shù)據(jù)歸檔(Flashback Data Archive)閃回?cái)?shù)據(jù)歸檔的實(shí)現(xiàn)機(jī)制與前面幾種閃回不同,它將改動的數(shù)據(jù)另外存儲到特定的閃回?cái)?shù)據(jù)歸檔區(qū)中,從而讓閃回不再受吊銷數(shù)據(jù)的限制,大大提高了數(shù)據(jù)的保管時間,閃回?cái)?shù)據(jù)歸檔中的數(shù)據(jù)行可以保管幾年甚至幾十年。閃回?cái)?shù)據(jù)歸檔并不針對一切的數(shù)據(jù)改動,它只記錄UPDATE和DELETE語句,而不記錄INSERT語句。2416.6.1 創(chuàng)建與管理閃回?cái)?shù)據(jù)歸檔區(qū)1創(chuàng)建閃回?cái)?shù)據(jù)歸檔區(qū)創(chuàng)建閃回?cái)?shù)據(jù)歸檔區(qū)的語法方式如下:CREATE FLASHBACK ARCHIVE DEFAULT archive_nameTABLESPACE tablespace_name Q

20、UOTA size K | M RETENTION retention_time ;2管理閃回?cái)?shù)據(jù)歸檔區(qū)對已創(chuàng)建的閃回?cái)?shù)據(jù)歸檔區(qū),可以進(jìn)展如下方式的管理添加表空間、刪除表空間、修正數(shù)據(jù)保管期限、修正磁盤限額大小、去除閃回?cái)?shù)據(jù)歸檔區(qū)中的數(shù)據(jù)和刪除閃回?cái)?shù)據(jù)歸檔區(qū)。2516.6.2 為表指定閃回?cái)?shù)據(jù)歸檔區(qū)1在創(chuàng)建表時為表指定閃回?cái)?shù)據(jù)歸檔區(qū)在創(chuàng)建表時為表指定閃回?cái)?shù)據(jù)歸檔區(qū),需求運(yùn)用FLASHBACK ARCHIVE子句?!纠?6.17】在system用戶下創(chuàng)建表table01,并為其指定閃回?cái)?shù)據(jù)歸檔區(qū)為archive01。詳細(xì)如下:SQL CONNECT system/admin已銜接。SQL CREATE TABLE table01 (id NUMBER , text VARCHAR2(10) 2 FLASHBACK ARCHIVE archive01 ;表已創(chuàng)建。2616.6.2 為表

溫馨提示

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

評論

0/150

提交評論