1.基本閃回查詢
select * from? dept as of timestamp to_timestamp('2016-09-10 11:00:00','yyyy-mm-dd hh24:mi:ss');
2.閃回表
alter table emp enable row movement;
flashback table dept to timestamp to_timestamp('2016-09-10 11:00:00','yyyy-mm-dd hh24:mi:ss');
3.常見錯誤:ORA-00604: 遞歸 SQL 級別 1 出現錯誤
ORA-01732: 此視圖的數據操縱操作非法
00604. 00000 -? "error occurred at recursive SQL level %s"
*Cause:??? An error occurred while processing a recursive SQL statement
?????????? (a statement applying to internal dictionary tables).
*Action:?? If the situation described in the next error on the stack
?????????? can be corrected, do so; otherwise contact Oracle Support.
解決方法:
alter system set "_COMPLEX_VIEW_MERGING"=true;
alter system set "_SIMPLE_VIEW_MERGING"=true;
4.相關技術
(1)查看回收站:
SHOW RECYCLEBIN;
(2)徹底刪除表:
DROP TABLE EMP PURGE;
(3)清空回收站:
PURGE RECYCLEBIN;
(5)閃回數據庫:
功能描述:閃回數據庫可將整個數據庫回退到過去某個時間點,閃回表是某張表的時空穿梭oracle數據庫復制技術,閃回數據庫則是整個數據庫的時空穿梭。當然,閃回點之后的所有工作就丟失了,其實就相當于數據庫的不完整恢復,所以只能以模式打開數據庫。閃回數據庫會造成停機時間,當然相比于傳統備份恢復機制,恢復過程會快很多。
工作原理:閃回數據庫不使用撤銷數據,使用另外一種機制來保留回退所需要的恢復數據,當啟用閃回數據庫,發生變化的數據塊會不斷從數據庫緩沖區緩存中復制到閃回緩沖區,然后oracle數據庫復制技術,稱為恢復寫入器( )的后臺進程會將這些數據刷新到磁盤中的閃回日志文件中。閃回的過程,則是一個 提取閃回日志-->將塊映像復制回數據文件 的過程。
配置閃回數據庫(閃回數據庫要求數據庫為歸檔模式)
(a).指定閃回恢復區,也就是存放閃回日志的位置,但閃回恢復區不僅僅是為了存放閃回日志,的很多備份恢復技術都用到這個區域,比如控制文件的自動備份等都會存放到此區域。
SQL> alter system set db_recovery_file_dest ='/flash_recovery_area';
(b).指定恢復區大小
SQL> alter system set db_recovery_file_dest_size=4G;?
(c).指定閃回日志保留時間為2小時,即通過閃回操作,可以將數據庫回退到前兩小時內的任意時間點
SQL> alter system set db_flashback_retention_target=120;?
(d).有序關閉數據庫--mount模式下啟用閃回數據庫--打開數據庫
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database flashback on;
SQL> alter database open;
(e). 使用閃回數據庫功能
SQL> shutdown immediate;
SQL> startup mount;
SQL> flashback database to timestamp sysdate-60/1440;
SQL> alter database open resetlogs;