以下的文章主要介紹的是Oracle 11g 閃回數(shù)據(jù)歸檔,Oracle 11g 閃回數(shù)據(jù)歸檔這一功能可以把UNDO數(shù)據(jù)進(jìn)行相關(guān)實際歸檔,以下就是相關(guān)內(nèi)容的介紹。希望你在瀏覽完之后會有所收獲。
雖然ORA-01555錯誤可以通過種種手段來避免和減少,但是隨著時間的流逝,這些UNDO信息總會失去,那么能否將這些信息保存起來,使得數(shù)據(jù) 庫在一定的歷史周期之內(nèi)可以不斷向后追溯,使得我們可以看到一個數(shù)據(jù)表在任意歷史時間點上的切片呢?
從Oracle Database 11g開始,Oracle 提供了一個這樣的功能:閃回數(shù)據(jù)歸檔(Flashback Data Archive)。通過這一功能Oracle數(shù)據(jù)庫可以將UNDO數(shù)據(jù)進(jìn)行歸檔,從而提供全面的歷史數(shù)據(jù)查詢,也因此Oracle引入一個新的概念 Oracle Total Recall,也即Oracle全面回憶功能。
閃回數(shù)據(jù)歸檔可以和我們一直熟悉的日志歸檔類比,日志歸檔記錄的是Redo的歷史狀態(tài),用于保證恢復(fù)的連續(xù)性;而閃回歸檔記錄的是UNDO的歷史狀 態(tài),可以用于對數(shù)據(jù)進(jìn)行閃回追溯查詢;后臺進(jìn)程LGWR用于將Redo信息寫出到日志文件,ARCH進(jìn)程負(fù)責(zé)進(jìn)行日志歸檔;在Oracle 11g中,新增的后臺進(jìn)程FBDA(Flashback Data Archiver Process)則用于對閃回數(shù)據(jù)進(jìn)行歸檔寫出:
- [oracle@sp3: ~]$ps -ef | grep fbda | grep -v grep
- oracle 3251 1 0 Jan07 ? 00:00:11 ora_fbda_ccdb
閃回歸檔數(shù)據(jù)甚至可以以年為單位進(jìn)行保存,Oracle 11g可以通過內(nèi)部分區(qū)和壓縮算法減少空間耗用,這一特性對于需要審計以及歷史數(shù)據(jù)分區(qū)的環(huán)境尤其有用,但是注意,對于繁忙的數(shù)據(jù)庫環(huán)境,閃回數(shù)據(jù)存儲顯 然要耗用更多的存儲空間。當(dāng)然,用戶可以根據(jù)需要,對部分表進(jìn)行閃回數(shù)據(jù)歸檔,從而滿足特定的業(yè)務(wù)需求。
因為閃回數(shù)據(jù)歸檔需要獨立的存儲,所以在使用該特性之前需要創(chuàng)建獨立的ASSM(自動段空間管理)表空間:
- sys@TQGZS11G> create tablespace fbda datafile
'/oracle/oradata/tqgzs11g/FBDA.dbf' size 200M
segment space management auto;- Tablespace created.
然后可以基于該表空間創(chuàng)建閃回數(shù)據(jù)歸檔區(qū),F(xiàn)LASHBACK ARCHIVE ADMINISTER系統(tǒng)權(quán)限是創(chuàng)建閃回數(shù)據(jù)存檔所必需的,此處使用SYS用戶進(jìn)行:
sys@TQGZS11G> create flashback archive fda tablespace fbda retention 1 month;- Flashback archive created.
此后就可以使用該歸檔區(qū)來記錄數(shù)據(jù)表的閃回數(shù)據(jù)量。為了測試方便,先將UNDO表空間更改為較小,以使得UNDO數(shù)據(jù)能夠盡快老化:
- sys@TQGZS11G> create undo tablespace UNDOTBS2_SMALL datafile '/oracle/oradata/tqgzs11g/UNDOTBS2_SMALL.dbf' size 20M autoextend off;
- Tablespace created.
- sys@TQGZS11G> alter system set undo_tablespace= UNDOTBS2_SMALL;
- System altered.
- sys@TQGZS11G> show parameter undo
- NAME TYPE VALUE
- undo_management string AUTO
- undo_retention integer 900
- undo_tablespace string UNDOTBS2_SMALL
接下來使用測試用戶連接,對測試表執(zhí)行閃回歸檔設(shè)置,F(xiàn)LASHBACK ARCHIVE對象權(quán)限是啟用歷史數(shù)據(jù)跟蹤所必需的:
- sys@TQGZS11G> conn tq/tq
- Connected.
- tq@TQGZS11G> select TABLE_NAME from user_tables;
- TABLE_NAME
- T
- EMP
- tq@TQGZS11G> alter table t flashback archive fda;
- Table altered.
取消對于數(shù)據(jù)表的閃回歸檔可以使用如下命令:
- alter table table_name no flashback archive;
上述的相關(guān)內(nèi)容就是對Oracle 11g 閃回數(shù)據(jù)歸檔的描述,希望會給你帶來一些幫助在此方面。