程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle 11g 閃回數據歸檔簡介

Oracle 11g 閃回數據歸檔簡介

編輯:Oracle數據庫基礎

以下的文章主要介紹的是Oracle 11g 閃回數據歸檔,Oracle 11g 閃回數據歸檔這一功能可以把UNDO數據進行相關實際歸檔,以下就是相關內容的介紹。希望你在浏覽完之後會有所收獲。

雖然ORA-01555錯誤可以通過種種手段來避免和減少,但是隨著時間的流逝,這些UNDO信息總會失去,那麼能否將這些信息保存起來,使得數據庫在一定的歷史周期之內可以不斷向後追溯,使得我們可以看到一個數據表在任意歷史時間點上的切片呢?

從Oracle Database 11g開始,Oracle 提供了一個這樣的功能:閃回數據歸檔(Flashback Data Archive)。通過這一功能Oracle數據庫可以將UNDO數據進行歸檔,從而提供全面的歷史數據查詢,也因此Oracle引入一個新的概念Oracle Total Recall,也即Oracle全面回憶功能。

閃回數據歸檔可以和我們一直熟悉的日志歸檔類比,日志歸檔記錄的是Redo的歷史狀態,用於保證恢復的連續性;而閃回歸檔記錄的是UNDO的歷史狀態,可以用於對數據進行閃回追溯查詢;後台進程LGWR用於將Redo信息寫出到日志文件,ARCH進程負責進行日志歸檔;在Oracle 11g中,新增的後台進程FBDA(Flashback Data Archiver Process)則用於對閃回數據進行歸檔寫出:

  1. [Oracle@sp3: ~]$ps -ef | grep fbda | grep -v grep  
  2. Oracle 3251 1 0 Jan07 ? 00:00:11 ora_fbda_ccdb  

閃回歸檔數據甚至可以以年為單位進行保存,Oracle 11g可以通過內部分區和壓縮算法減少空間耗用,這一特性對於需要審計以及歷史數據分區的環境尤其有用,但是注意,對於繁忙的數據庫環境,閃回數據存儲顯然要耗用更多的存儲空間。當然,用戶可以根據需要,對部分表進行閃回數據歸檔,從而滿足特定的業務需求。

因為閃回數據歸檔需要獨立的存儲,所以在使用該特性之前需要創建獨立的ASSM(自動段空間管理)表空間:

  1. sys@TQGZS11G> create tablespace fbda datafile 
    '/Oracle/oradata/tqgzs11g/FBDA.dbf' size 200M
     segment space management auto;  
  2. Tablespace created.  

然後可以基於該表空間創建閃回數據歸檔區,FlashBACK ARCHIVE ADMINISTER系統權限是創建閃回數據存檔所必需的,此處使用SYS用戶進行:


  1. sys@TQGZS11G> create Flashback archive fda tablespace fbda retention 1 month;  
  2. Flashback archive created.  

此後就可以使用該歸檔區來記錄數據表的閃回數據量。為了測試方便,先將UNDO表空間更改為較小,以使得UNDO數據能夠盡快老化:

  1. sys@TQGZS11G> create undo tablespace UNDOTBS2_SMALL datafile '/Oracle/oradata/tqgzs11g/UNDOTBS2_SMALL.dbf' size 20M autoextend off;  
  2. Tablespace created.  
  3. sys@TQGZS11G> alter system set undo_tablespaceUNDOTBS2_SMALL;  
  4. System altered.  
  5. sys@TQGZS11G> show parameter undo  
  6. NAME TYPE VALUE  
  7. undo_management string AUTO  
  8. undo_retention integer 900  
  9. undo_tablespace string UNDOTBS2_SMALL  

接下來使用測試用戶連接,對測試表執行閃回歸檔設置,FlashBACK ARCHIVE對象權限是啟用歷史數據跟蹤所必需的:

  1. sys@TQGZS11G> conn tq/tq  
  2. Connected.  
  3. tq@TQGZS11G> select TABLE_NAME from user_tables;  
  4. TABLE_NAME  
  5. T  
  6. EMP  
  7. tq@TQGZS11G> alter table t Flashback archive fda;  
  8. Table altered.  

取消對於數據表的閃回歸檔可以使用如下命令:

  1. alter table table_name no Flashback archive; 

上述的相關內容就是對Oracle 11g 閃回數據歸檔的描述,希望會給你帶來一些幫助在此方面。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved