關於oracle閃回資料歸檔的總結
Flashback Data Archive閃回資料歸檔概述:
一句話就是undo的長期儲存
我們知道關係型資料庫要保證一致性,例如A使用者update一條資料,未提交,此時為保證一致性B使用者是看不到A更改後的資料的,那麼此時B使用者需要從undo表空間裡面檢視資料的前映象,如果找不到前映象就會報錯,非常經典的ora-01555快照過舊的錯誤,還有就是閃回表和閃回查詢也要依靠UNDO表空間記錄的回滾資訊,
然而undo表空間裡面的資料是迴圈複寫的,具體迴圈複寫的規則請見http://blog.itpub.net/29654823/viewspace-2106256/ ,這樣時間久了,所以經常在做回閃查詢時,我們會因為找不到undo block而收到1555錯誤, 由此11G裡面引入了Flashback Data Archive ,他用於儲存資料的所有改變,時間由你自己設定,消耗的是更多的磁碟空間,現在來看下這個特性。
一:建立閃回資料歸檔
1)建立管理閃回資料歸檔的使用者
SQL>create user FR_ADMIN identified by oracle;
2)用sys使用者賦予FR_ADMIN需要的許可權
SQL> grant create session,FLASHBACK ARCHIVE ADMINISTER to fr_admin;
SQL> grant CREATE FLASHBACK ARCHIVE to fr_admin;
3)建立閃回資料歸檔使用的表空間
SQL> create tablespace fratbs datafile '/u01/app/oracle/oradata/PROD1/fratbs01.dbf' size 1g autoextend on next 2m ;
4)建立閃回資料歸檔fra1,並保留一年,配額1g;
SQL>create flashback archive fra1 tablespace fratbs quota 1g retention 1 year;
SQL>drop flashback archive fra1 ; ##刪除資料歸檔
5)開啟某張表的閃回資料歸檔,
SQL>alter table tablename flashback archive; ## 這樣就會使用預設的閃回資料歸檔
或者:
SQL>alter table tablename flashback archive fra1;
取消對於資料表的閃迴歸檔可以使用如下命令:
SQL>alter table table_name no flashback archive;
二:閃回資料歸檔的管理:
SQL> alter flashback archive fra1 set default; ##注意需要sys使用者操作
Flashback archive altered.
SQL> alter flashback archive fra1 add tablespace fratbs ; --新增表空間
Flashback archive altered.
SQL> alter flashback archive fra1 remove tablespace fratbs ;--刪除表空間
Flashback archive altered.
SQL> alter flashback archive fra1 modify tablespace fratbs quota 2048M;--新增配額
Flashback archive altered.
SQL> alter flashback archive fra1 modify retention 3 year;
Flashback archive altered.
SQL> alter flashback archive fra1 purge all; -- 清除所有
Flashback archive altered.
SQL> alter flashback archive fra1 purge before timestamp (systimestamp - interval '2' day);--清除2天前的
Flashback archive altered.
SQL> alter flashback archive fra1 purge before scn 123344;
Flashback archive altered.
三:閃回資料歸檔的限制
在使用閃迴歸檔的過程中有某些限制。對於已經啟用閃回的表,不能使用DDL命令drop column(11r2可以drop column),但可以add column命令。刪除屬於一個啟用了閃回資料歸檔的表列的唯一方法是首先關閉閃迴歸檔功能。但是,這樣會刪除所有閃迴歸檔資料。
下面這些是11GR2之前不支援的,
1、ALTER TABLE:
Drops, renames, or modifies a column (11GR2是可以的)
Performs partition or subpartition operations
Converts a LONG column to a LOB column
Includes an UPGRADE TABLE clause, with or without an INCLUDING DATA clause
2、 DROP TABLE
3、TRUNCATE TABLE (11GR2是可以的)
4、RENAME TABLE (11GR2也是可以的)
四:監控閃回資料歸檔
1、查哪些表已經啟用了閃回資料歸檔
SQL> select * from dba_flashback_archive_tables;
TABLE_NAME OWNER_NAME FLASHBACK_ARCHIVE_NAME ARCHIVE_TABLE_NAME STATUS
----------- ----------- ---------------------- ---------------- -------------
T1 GYJ FLASH1 SYS_FBA_HIST_17877 ENABLED
2、查資料庫中所有的閃回資料歸檔
SQL> select flashback_archive_name,retention_in_days from dba_flashback_archive;
FLASHBACK_ARCHIVE_NAME RETENTION_IN_DAYS
-------------------------------------------------- -----------------
FLASH1 1095
3、查有關閃回資料歸檔所使用的表空間的資訊
SQL> select flashback_archive_name,tablespace_name,quota_in_mb from dba_flashback_archive_ts;
FLASHBACK_ARCHIVE_NAME TABLESPACE_NAME QUOTA_IN_MB
---------------------------- ----------------------- ----------------------------------
FLASH1 FLASH_TBS1 2048
心得:
關於oracle11g的這個新特性,由於它有諸多的限制,以及必然帶來的效能問題,導致生產環境很少使用,並且生產環境很少存在要閃回某張表到很長時間之前的需求,如果非得恢復到很長時間之前,可以使用資料泵(生產環境一般都是rman+expdp備份的)。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29654823/viewspace-2125330/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle閃回資料歸檔Oracle
- Oracle 11g 閃回資料歸檔Oracle
- [zt] Oracle 11g 閃回資料歸檔Oracle
- 閃回(關於閃回資料庫)資料庫
- 清除閃回資料歸檔區資料
- 閃回資料歸檔-- Flashback Data ArchiveHive
- 11g閃回資料歸檔
- 【oracle 】閃回與歸檔位置的理解Oracle
- Oracle 11g閃回資料歸檔新功能解析Oracle
- 【Flashback】11g的閃回資料歸檔初探
- FlashBack總結之閃回資料庫與閃回刪除資料庫
- 11g新特性--Oracle 11g 閃回資料歸檔Oracle
- 開閃回及閃迴歸檔
- Oracle 11g新特性--閃回資料歸檔(flashback data archive)[zt]OracleHive
- RAC資料庫啟用歸檔和閃回的步驟資料庫
- 閃回(關於閃回查詢)
- Oracle資料庫的閃回恢復區及多歸檔路徑的設定Oracle資料庫
- 10g關閉歸檔/啟用閃回恢復區歸檔
- Oracle閃回技術之閃回資料庫Oracle資料庫
- Oracle閃回技術 為Oracle閃回配置資料庫Oracle資料庫
- Oracle資料庫閃回Oracle資料庫
- Oracle閃回資料庫Oracle資料庫
- 10g閃回區和歸檔目錄的關係
- 【FLASHBACK】關於閃回資料庫的一點說明資料庫
- 閃回與歸檔引數的設定
- 資料庫基於版本的閃回資料庫
- Oracle 閃回技術 概覽 資料庫閃回功能Oracle資料庫
- Oracle閃回查詢,閃回版本查詢與閃回事務查詢的使用區別總結Oracle
- 基於SCN閃回資料庫資料庫
- 【Flashback】啟用閃回資料庫功能需要在歸檔模式下完成資料庫模式
- Oracle 閃回資料庫測試Oracle資料庫
- 詳解oracle資料庫閃回Oracle資料庫
- 【備份恢復】閃回資料庫(二) 基於 SCN 閃回資料庫資料庫
- 歸檔放在閃回區帶來的問題
- Oracle資料庫的閃回恢復區Oracle資料庫
- 一個關於資料庫閃回區問題的處理資料庫
- Oracle的閃回恢復區和歸檔日誌多路徑設定Oracle
- 【備份恢復】 閃回技術之閃迴歸檔