Oracle 引入閃回技術使得一些邏輯誤操作不再需要利用歸檔日志和數據庫備份進行時間點恢複,在前面介紹的諸多閃回技術中,除了Flashback Database依賴于閃回日志外,其它閃回技術都是依賴于Undo撤銷數據,都與數據庫初始化參數undo_retention密切相關,所以就存在一個限制就是undo中的信息不能被覆蓋。
Oracle11g中的閃回數據歸檔(Flashback Data Archive)與前面所說的閃回技術實現機制不同,它是通過将變化數據存儲到創建的閃回歸檔區中,得以與undo區别開來。 同時Flashback Data Archive 并不是記錄數據庫的所有變化,而隻是記錄了指定表的數據變化,是Flashback database的補充。
準備一個Oracle 11g數據庫使用FBDA功能是相當簡單的,隻需要經過幾個簡單的步驟即可:
(1) 創建或指定一個或多個表空間用于FBDA保留曆史數據
(2) 随意指派一個FBDA作為數據庫的默認FBDA
(3) 指派一個用戶賬戶作為FBDA管理員,授予它FLASHBACK ARCHIVE ADMINISTER系統權限
(4) 授予FBDA權限給适合的用戶賬号
(5) 授予FLASHBACK和SELECT權限給合适的FBDA表用戶
(6) 為FBDA用戶授予DBMS_FLASHBACK存儲過程EXECUTE權限
創建閃回數據歸檔:
1. 創建閃回數據歸檔:
CREATE FLASHBACK ARCHIVE fla1 TABLESPACE tbs1 QUOTA 10GRETENTION 5 YEAR;
2. 對 FLA1 歸檔中的表啟用曆史記錄跟蹤:
ALTER TABLE inventory FLASHBACK ARCHIVE fla1;
3. 查看曆史記錄數據:
SELECT product_number, product_name, count FROM inventory AS OF TIMESTAMPTO_TIMESTAMP ('2019-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS');
使用默認閃回歸檔:
1.創 建 默 認 閃 回 數 據 歸 檔
CREATE FLASHBACK ARCHIVE DEFAULT fla2TABLESPACE tbs1 QUOTA 10G RETENTION 2 YEAR;
2.對表啟用曆史記錄跟蹤:
ALTER TABLE stock _data FLASHBACK ARCHIVE;
注:因為使用了默認的閃回數據歸檔,所以不需要提供閃回數據歸檔名稱。
3. 禁用曆史記錄跟蹤:
ALTER TABLE stock _data NO FLASHBACK ARCHIVE;
1. 增加空間:
ALTER FLASHBACK ARCHIVE fla1 ADD TABLESPACE tbs3 QUOTA 5G;
2. 更改保留時間:
ALTER FLASHBACK ARCHIVE fla1 MODIFY RETENTION 2 YEAR;
3. 清除數據:
ALTER FLASHBACK ARCHIVE fla1 PURGE BEFORETIMESTAMP(SYSTIMESTAMP - INTERVAL '1' day);
4. 删除閃回數據歸檔:
DROP FLASHBACK ARCHIVE fla1;
篇幅有限,關于閃回歸檔就不做演示了,大家可以自己在虛拟機環境做相關測試。
後面會分享更多關于devops和DBA方面内容,感興趣的朋友可以關注下!
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!