oracle使用flashback時,沒有顯示undosql

這是因爲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;          原數據庫表裏面的數據也恢復了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章