這是因爲oracle11g沒有開啓這個功能
用管理員用戶sys(也就是sysdba)執行以下語句即可
alter databases add supplemental log data;
如果我們想恢復某些數據,執行(查看誤操作的sql語句,例如我們不小心刪除了test表的某條數據,再從下面的結果中複製insert語句並執行即可)
select undo_sql from flashback_transaction_query where table_name='TEST'; #注意oracle中where後面的表名需爲大寫,否則會提示找不到表
顯示在前面的結果爲最新的操作
將scott用戶的test表恢復到10分鐘前的數據
flashback select * from scott.test to timestamp sysdate-10/1440;
不小心誤刪某個數據庫表,使用flashback恢復
create table test(a int) tablespace USERS; 後面tablespace部分不能缺少,否則刪除後無法進入回收站
drop table test;
flashback table test to before drop; 原數據庫表裏面的數據也恢復了