查詢閃迴歸檔文檔是否開啓:archive log list;
開啓閃迴歸檔文檔:在mount狀態執行alter database archivelog;
設置合理的閃回區:
db_recovery_file_dest:指定閃回恢復區的位置
db_recovery_file_dest_size:指定閃回恢復區的可用空間大小
db_flashback_retention_target:指定數據庫可以回退的時間,單位爲分鐘,默認1440分鐘(1天),實際取決於閃回區大小
檢查是否開啓閃回:
select flashback_on from v$database;
開啓閃回:
mount狀態:alter database archivelog;
alter system set db_recovery_file_dest='/home/U01/app/oracle/fast_recovery_area' scope=both;
alter system set db_recovery_file_dest_size=60G scope=both;
alter system set db_flashback_retention_target=4320 scope=both;
alter database flashback on;
關閉閃回:
alter database flashback off;
閃回操作:
回看某一時間段的表數據
select * from scott.dept as of timestamp to_timestamp('2017-12-14 16:20:00','yyyy-mm-dd hh24:mi:ss');
閃回查詢:
單表修改閃回操作:
alter table tcl_mrp_header_history enable row movement;
flashback TABLE tcl_mrp_header_history to timestamp TO_TIMESTAMP('20180928 10:00:00','YYYYMMDD HH24:MI:SS');
單表被刪除閃回操作:
當一個表被drop掉,表會被放入recyclebin回收站,可通過回收站做表的閃回。表上的索引、約束等同樣會被恢復
不支持sys/system用戶表空間對象,可通過alter system set recyclebin=off;關閉回收站功能
flashback table XXX to before drop;
備註:即使不開始flashback,只要開啓了recyclebin,那麼就可以閃回DROP表。
但如果連續覆蓋,就需要指定恢復的表名,如果已經存在表,則需要恢復重命名。
閃回數據庫:
flashback database to timestamp to_timestamp('2017-12-14 14:12:46','yyyy-mm-dd HH24:MI:SS');
備註:慎重使用