版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第12章章 閃回技術(shù)閃回技術(shù)主要內(nèi)容 閃回技術(shù)介紹 閃回查詢 閃回版本查詢 閃回事務(wù)查詢 閃回表 閃回刪除 閃回?cái)?shù)據(jù)庫(kù) 12.1 閃回技術(shù)介紹閃回技術(shù)介紹 閃回基本概念 閃回技術(shù)分類基本概念 Oracle 9i實(shí)現(xiàn)了基于回滾段的閃回查詢(Flashback Query)技術(shù),即從回滾段中讀取一定時(shí)間內(nèi)對(duì)表進(jìn)行操作的數(shù)據(jù),恢復(fù)錯(cuò)誤的DML操作。 在Oracle 11g中,除提高了閃回查詢功能,實(shí)現(xiàn)了閃回版本查詢、閃回事務(wù)查詢外,還實(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ā)生過變化的數(shù)據(jù)
2、進(jìn)行恢復(fù),減少了數(shù)據(jù)恢復(fù)的時(shí)間,而且操作簡(jiǎn)單,通過SQL語句就可以實(shí)現(xiàn)數(shù)據(jù)的恢復(fù),大大提高了數(shù)據(jù)庫(kù)恢復(fù)的效率。 閃回技術(shù)分類 閃回查詢(Flashback Query):查詢過去某個(gè)時(shí)間點(diǎn)或某個(gè)SCN值時(shí)表中的數(shù)據(jù)信息; 閃回版本查詢(Flashback Version Query):查詢過去某個(gè)時(shí)間段或某個(gè)SCN段內(nèi)表中數(shù)據(jù)的變化情況; 閃回事務(wù)查詢(Flashback Transaction Query):查看某個(gè)事務(wù)或所有事務(wù)在過去一段時(shí)間對(duì)數(shù)據(jù)進(jìn)行的修改; 閃回表(Flashback Table):將表恢復(fù)到過去的某個(gè)時(shí)間點(diǎn)或某個(gè)SCN值時(shí)的狀態(tài); 閃回刪除(Flashback Dro
3、p):將已經(jīng)刪除的表及其關(guān)聯(lián)對(duì)象恢復(fù)到刪除前的狀態(tài); 閃回?cái)?shù)據(jù)庫(kù)(Flashback Database):將數(shù)據(jù)庫(kù)恢復(fù)到過去某個(gè)時(shí)間點(diǎn)或某個(gè)SCN值時(shí)的狀態(tài)。12.2 閃回查詢閃回查詢 閃回查詢的概念 閃回查詢操作12.2.1閃回查詢的概念 閃回查詢是指利用數(shù)據(jù)庫(kù)回滾段存放的信息查看指定表中過去某個(gè)時(shí)間點(diǎn)的數(shù)據(jù)信息,或過去某個(gè)時(shí)間段數(shù)據(jù)的變化情況,或某個(gè)事務(wù)對(duì)該表的操作信息等。 為了使用閃回查詢功能,需要啟動(dòng)數(shù)據(jù)庫(kù)撤銷表空間來管理回滾信息。 與撤銷表空間相關(guān)的參數(shù)包括 : UNDO_MANAGEMENT:指定回滾段的管理方式,如果設(shè)置為AUTO,則采用撤銷表空間自動(dòng)管理回滾信息; UNDO_T
4、ABLESPACE:指定用于回滾信息自動(dòng)管理的撤銷表空間名; UNDO_RETENTIOIN:指定回滾信息的最長(zhǎng)保留時(shí)間。 12.2.2閃回查詢操作閃回查詢操作 閃回查詢可以返回過去某個(gè)時(shí)間點(diǎn)已經(jīng)提交事務(wù)操作的結(jié)果。 基本語法: SELECT column_name, FROM table_name AS OF SCN|TIMESTAMP expression WHERE condition 基于AS OF TIMESTAMP的閃回查詢 基于AS OF SCN的閃回查詢 基本語法為: SELECT column_name,FROM table_name AS OF SCN|TIMESTAMP
5、expression WHERE condition; 20:57:35 SQLSELECT empno,sal FROM scott.emp WHERE empno=7369; EMPNO SAL - - 7369 800 20:57:39 SQLUPDATE scott.emp SET sal=2000 WHERE empno=7369; 20:57:59 SQLCOMMIT; 20:58:03 SQLUPDATE scott.emp SET sal=2500 WHERE empno=7369; 20:58:54 SQLCOMMIT; 20:58:57 SQLSELECT empno,sa
6、l FROM scott.emp WHERE empno=7369; EMPNO SAL - - 7369 2500 21:01:02 SQLSELECT empno,sal FROM scott.emp AS OF TIMESTAMP SYSDATE-1/24 WHERE empno=7369; EMPNO SAL - - 7369 800 21:02:43 SQLSELECT empno,sal FROM scott.emp AS OF TIMESTAMP TO_TIMESTAMP(2012-11-22 20:58:10,YYYY-MM-DD HH24:MI:SS) WHERE empno
7、=7369; EMPNO SAL - - 7369 2000 下面是一個(gè)基于AS OF SCN的閃回查詢示例。 21:08:34 SQLSELECT current_scn FROM v$database; CURRENT_SCN - 1455600 21:08:37 SQLSELECT empno,sal FROM scott.emp WHERE empno=7369; EMPNO SAL - - 7369 2500 21:09:08 SQLUPDATE scott.emp SET sal=5000 WHERE empno=7369; 21:09:26 SQLCOMMIT; 21:09:44
8、 SQLSELECT current_scn FROM v$database; CURRENT_SCN - 1455634 21:09:53 SQLSELECT empno,sal FROM scott.emp AS OF SCN 1455600 WHERE empno=7369; EMPNO SAL - - 7369 250012.3 閃回版本查詢閃回版本查詢 閃回版本查詢的概念 閃回版本查詢操作12.3.1閃回版本查詢的概念閃回版本查詢的概念 閃回版本查詢可以查詢一條記錄在一段時(shí)間內(nèi)的變化情況,即一條記錄的多個(gè)提交版本信息。 閃回版本查詢的基本語法為: SELECT column_name
9、, FROM table_name VERSIONS BETWEEN SCN|TIMESTAMP MINVALUE|expression AND MAXVALUE|expression AS OF SCN|TIMESTAMP expression WHERE condition 在閃回版本查詢的目標(biāo)列中,可以使用下列偽列返回行的版本信息。 VERSIONS_STARTTIME:基于時(shí)間的版本有效范圍的下界。 VERSIONS_STARTSCN:基于SCN的版本有效范圍的下界。 VERSIONS_ENDTIME:基于時(shí)間的版本有效范圍的上界。 VERSIONS_ENDSCN:基于SCN的版本有效
10、范圍的上界。 VERSIONS_XID:操作的事務(wù)ID。 VERSIONS_OPERATION:執(zhí)行操作的類型,I 表示INSERT,D 表示DELETE,U 表示UPDATE。13.3.2閃回版本查詢操作閃回版本查詢操作 下面是一個(gè)閃回版本查詢示例。 SQLUPDATE scott.emp SET sal=6000 WHERE empno=7844; SQLUPDATE scott.emp SET sal=6000 WHERE empno=7369; SQLUPDATE scott.emp SET sal=7000 WHERE empno=7369; SQLCOMMIT; SQLUPDATE
11、 scott.emp SET sal=7500 WHERE empno=7369; SQLCOMMIT; 可以基于VERSIONS BETWEEN TIMESTAMP進(jìn)行閃回版本查詢: SQLSELECT versions_xid XID,versions_starttime STARTTIME, versions_endtime ENDTIME, versions_operation OPERATION, sal FROM scott.emp VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE WHERE empno=7369 ORDER BY
12、STARTTIME; 可以基于VERSIONS BETWEEN SCN進(jìn)行閃回版本查詢: SQLSELECT versions_xid XID,versions_startscn STARTSCN, versions_endscn ENDSCN, versions_operation OPERATION, sal FROM scott.emp VERSIONS BETWEEN SCN MINVALUE AND MAXVALUE WHERE empno=7369 ORDER BY STARTSCN;12.4 閃回事務(wù)查詢閃回事務(wù)查詢 閃回事務(wù)查詢的概念 閃回事務(wù)查詢操作12.4.1閃回事務(wù)查詢的
13、概念閃回事務(wù)查詢的概念 閃回事務(wù)查詢可以返回在一個(gè)特定事務(wù)中行的歷史數(shù)據(jù)及與事務(wù)相關(guān)的元數(shù)據(jù),或返回在一個(gè)時(shí)間段內(nèi)所有事務(wù)的操作結(jié)果及事務(wù)的元數(shù)據(jù)。 在Oracle 11g數(shù)據(jù)庫(kù)中,為了記錄事務(wù)操作的詳細(xì)信息,需要啟動(dòng)數(shù)據(jù)庫(kù)的日志追加功能 SQLALTER DATABASE ADD SUPPLEMENTAL LOG DATA; 可以從FLASHBACK_TRANSATION_QUERY中查看撤銷表空間中存儲(chǔ)的事務(wù)信息12.4.2閃回事務(wù)查詢操作閃回事務(wù)查詢操作12.5 閃回表閃回表 閃回表是將表及附屬對(duì)象一起恢復(fù)到以前的某個(gè)時(shí)刻的狀態(tài)。閃回表的操作實(shí)際上是對(duì)表進(jìn)行DML操作。 要對(duì)表進(jìn)行閃回操
14、作,需要啟動(dòng)表的ROW MOVEMENT特性,其方法為: ALTER TABLE table ENABLE ROW MOVEMENT; 閃回表操作的基本語法為: FLASHBACK TABLE schema.table TO SCN|TIMESTAMP expression ENABLE|DISABLE TRIGGERS12.6 閃回刪除閃回刪除 閃回刪除的概念 閃回刪除操作 12.6.1閃回刪除的概念閃回刪除的概念 閃回刪除可恢復(fù)使用DROP TABLE語句刪除的表,是一種對(duì)意外刪除的表的恢復(fù)機(jī)制。 在Oracle 11g數(shù)據(jù)庫(kù)中,當(dāng)執(zhí)行DROP TABLE操作時(shí),并不立即回收表及其關(guān)聯(lián)對(duì)象
15、的空間,而是將它們重命名后放入一個(gè)稱為“回收站”的邏輯容器中保存,直到用戶決定永久刪除它們或存儲(chǔ)該表的表空間存儲(chǔ)空間不足時(shí),表才真正被刪除。 為了使用閃回刪除技術(shù),必須開啟數(shù)據(jù)庫(kù)的“回收站”。 啟動(dòng)“回收站” 要使用閃回刪除功能,需要啟動(dòng)數(shù)據(jù)庫(kù)的“回收站”,即將參數(shù)RECYCLEBIN設(shè)置為ON。在默認(rèn)情況下“回收站”已啟動(dòng)。 SQLSHOW PARAMETER RECYCLEBIN SQLALTER SYSTEM SET RECYCLEBIN=ON; 查看“回收站” 當(dāng)執(zhí)行DROP TABLE操作時(shí),表及其關(guān)聯(lián)對(duì)象被命名后保存在“回收站”中,可以通過查詢USER_RECYCLEBIN,DBA
16、_RECYCLEBIN視圖獲得被刪除的表及其關(guān)聯(lián)對(duì)象信息。 SQLDROP TABLE test; SQLSELECT BJECT_NAME,ORIGINAL_NAME,TYPE FROM USER_RECYCLEBIN; 12.6.2閃回刪除操作閃回刪除操作 閃回刪除的基本語法為 FLASHBACK TABLE schema.table TO BEFORE DROP RENAME TO new_name 注意 只有采用本地管理的、非系統(tǒng)表空間中的表可以使用閃回刪除操作。 示例 SQLCREATE TABLE example( ID NUMBER PRIMARY KEY, NAME CHAR(
17、20); SQLINSERT INTO example VALUES(1,BEFORE DROP); SQLCOMMIT; SQLDROP TABLE example; SQLFLASHBACK TABLE example TO BEFORE DROP RENAME TO new_example; SQLSELECT * FROM new_example; ID NAME - 1 BEFORE DROP12.7 閃回?cái)?shù)據(jù)庫(kù)閃回?cái)?shù)據(jù)庫(kù) 閃回?cái)?shù)據(jù)庫(kù)的概念 閃回?cái)?shù)據(jù)庫(kù)操作 12.7.1閃回?cái)?shù)據(jù)庫(kù)的概念閃回?cái)?shù)據(jù)庫(kù)的概念 閃回?cái)?shù)據(jù)庫(kù)技術(shù)是將數(shù)據(jù)庫(kù)快速恢復(fù)到過去的某個(gè)時(shí)間點(diǎn)或SCN值時(shí)的狀態(tài),以解決由于用
18、戶錯(cuò)誤操作或邏輯數(shù)據(jù)損壞引起的問題。 閃回?cái)?shù)據(jù)庫(kù)操作不需要使用備份重建數(shù)據(jù)文件,而只需要應(yīng)用閃回日志文件和歸檔日志文件。 為了使用數(shù)據(jù)庫(kù)閃回技術(shù),需要預(yù)先設(shè)置數(shù)據(jù)庫(kù)的閃回恢復(fù)區(qū)和閃回日志保留時(shí)間。閃回恢復(fù)區(qū)用于保存數(shù)據(jù)庫(kù)運(yùn)行過程中產(chǎn)生的閃回日志文件,而閃回日志保留時(shí)間是指閃回恢復(fù)區(qū)中的閃回日志文件保留的時(shí)間,即數(shù)據(jù)庫(kù)可以恢復(fù)到過去的最大時(shí)間。 閃回?cái)?shù)據(jù)庫(kù)操作的限制: 數(shù)據(jù)文件損壞或丟失等介質(zhì)故障不能使用閃回?cái)?shù)據(jù)庫(kù)進(jìn)行恢復(fù)。閃回?cái)?shù)據(jù)庫(kù)只能基于當(dāng)前正常運(yùn)行的數(shù)據(jù)文件; 閃回?cái)?shù)據(jù)庫(kù)功能啟動(dòng)后,如果發(fā)生數(shù)據(jù)庫(kù)控制文件重建或利用備份恢復(fù)控制文件,則不能使用閃回?cái)?shù)據(jù)庫(kù); 不能使用閃回?cái)?shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)文件收縮
19、操作; 不能使用閃回?cái)?shù)據(jù)庫(kù)將數(shù)據(jù)庫(kù)恢復(fù)到在閃回日志中可獲得最早的SCN之前的SCN,因?yàn)殚W回日志文件在一定條件下被刪除,而不是始終保存在閃回恢復(fù)區(qū)中。 閃回?cái)?shù)據(jù)庫(kù)功能需要滿足的條件: 配置了數(shù)據(jù)庫(kù)的快速恢復(fù)區(qū)。 數(shù)據(jù)庫(kù)必須運(yùn)行在歸檔模式。 在數(shù)據(jù)庫(kù)加載狀態(tài)下啟用數(shù)據(jù)庫(kù)的FLASHBACK特性。 通過設(shè)置數(shù)據(jù)庫(kù)參數(shù)DB_FLASHBACK_RETENTION_TARGET,確定可以在多長(zhǎng)時(shí)間內(nèi)閃回?cái)?shù)據(jù)庫(kù)。 設(shè)置數(shù)據(jù)庫(kù)的歸檔模式 SQL CONN SYS/TIGER AS SYSDBA SQL ARCHIVE LOG LIST; SQL SHUTDOWN IMMEDIATE SQL STARTUP
20、 MOUNT SQL ALTER DATABASE ARCHIVELOG; SQL ALTER DATABASE OPEN; SQL ALTER SYSTEM ARCHIVE LOG START; SQL ARCHIVE LOG LIST; 設(shè)置數(shù)據(jù)庫(kù)的閃回恢復(fù)區(qū) 在Oracle 11g數(shù)據(jù)庫(kù)安裝過程中,默認(rèn)情況下已設(shè)置了數(shù)據(jù)庫(kù)的閃回恢復(fù)區(qū)。 可以通過參數(shù)查詢數(shù)據(jù)閃回恢復(fù)區(qū)及其空間大小。 SQL SHOW PARAMETER DB_RECOVERY_FILE 啟動(dòng)數(shù)據(jù)庫(kù)FLASHBACK特性 為了使用閃回?cái)?shù)據(jù)庫(kù),還需要啟動(dòng)數(shù)據(jù)庫(kù)的FLASHBACK特性,生成閃回日志文件。在默認(rèn)情況下,數(shù)據(jù)庫(kù)的
21、FLASHBACK特性是關(guān)閉的。 在數(shù)據(jù)庫(kù)處于MOUNT狀態(tài)時(shí)執(zhí)行ALTER DATABAE FLASHBACK ON命令,啟動(dòng)數(shù)據(jù)庫(kù)的FLASHBACK特性; 需要通過參數(shù)DB_FLASHBACK_RETENTION_TARGET設(shè)置閃回日志保留時(shí)間,該參數(shù)默認(rèn)值為1 440分鐘,即一天。 12.7.2閃回?cái)?shù)據(jù)庫(kù)操作閃回?cái)?shù)據(jù)庫(kù)操作 閃回?cái)?shù)據(jù)庫(kù)基本語法為 FLASHBACK STANDBY DATABASE database TO SCN|TIMESTAMP expression| BEFORE SCN|TIMESTAMPexpression 參數(shù)說明 STANDBY:指定執(zhí)行閃回的數(shù)據(jù)庫(kù)為備
22、用數(shù)據(jù)庫(kù); TO SCN:將數(shù)據(jù)庫(kù)恢復(fù)到指定SCN的狀態(tài); TO TIMESTAMP:將數(shù)據(jù)庫(kù)恢復(fù)到指定的時(shí)間點(diǎn); TO BEFORE SCN:將數(shù)據(jù)庫(kù)恢復(fù)到指定SCN的前一個(gè)SCN狀態(tài) TO BEFORE TIMESTAMP:將數(shù)據(jù)庫(kù)恢復(fù)到指定時(shí)間點(diǎn)前一秒的狀態(tài)。 查詢數(shù)據(jù)庫(kù)系統(tǒng)當(dāng)前時(shí)間和當(dāng)前SCN。 SQLSELECT SYSDATE FROM DUAL; SYSDATE - 2009-03-25 12:36:19 SQLSELECT CURRENT_SCN FROM V$DATABASE; CURRENT_SCN - 735884 查詢數(shù)據(jù)庫(kù)中當(dāng)前最早的閃回SCN和時(shí)間。 SQLSELECT OLDEST_FLASHBACK_SCN, OLDEST_FLASHBACK_TIME FROM V$FLASHBACK_DATABASE_LOG; OLDEST_FLASHBACK_SCN LDEST_FLASHBACK_TI - - 730955 2009-03-25 10:26:50 改變數(shù)據(jù)庫(kù)的當(dāng)前
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)生消防演練課
- 超星食品安全組日常飲食
- 部編版八年級(jí)地理上冊(cè)第三章第一節(jié)《自然資源的基本特征》課件
- 放射性皮炎的護(hù)理重點(diǎn)
- 1.1 物質(zhì)結(jié)構(gòu)研究的內(nèi)容課件高二上學(xué)期化學(xué)蘇教版(2019)選擇性必修第二冊(cè)
- 彩虹教案反思
- 虎和兔說課稿
- 函數(shù)的說課稿
- 產(chǎn)科科室護(hù)理一級(jí)質(zhì)控
- 被針刺傷應(yīng)急演練
- NB-T47013.3-2015承壓設(shè)備無損檢測(cè)第3部分:超聲檢測(cè)
- 2025年日歷英文版縱向排版周一開始
- S7-1200PLC技術(shù)及應(yīng)用 課件 項(xiàng)目17 步進(jìn)電機(jī)控制
- 《生物技術(shù)制藥》課程介紹與教學(xué)大綱
- 《現(xiàn)代農(nóng)業(yè)技術(shù)推廣》課件-第七組 農(nóng)民問題專題調(diào)研
- 第30課 家居收納技巧 課件 2023-2024學(xué)年蘇教版初中勞動(dòng)技術(shù)七年級(jí)上冊(cè)
- 2024中國(guó)一汽校園招聘1000+崗位高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
- GB/T 19533-2024汽車用壓縮天然氣鋼瓶定期檢驗(yàn)與評(píng)定
- 婦產(chǎn)科護(hù)士晉升述職報(bào)告
- 骨髓腔內(nèi)輸液(IOI)技術(shù)
- 提高學(xué)生地理空間思維能力的教學(xué)方法
評(píng)論
0/150
提交評(píng)論