場景一: 刪除了表數據,沒有commit 處理方法: 直接使用sqlplus或者,toad,pl/sql工具進行回滾(rollback) 便可恢復sql
場景二: 若是刪除的數據,已經提交commit 處理方法:使用閃回技術(flash back)數據庫
閃回概念及具體使用方法: (1). 閃回(flashback):實現從回滾段中讀取表必定時間內操做過的數據,可用來進行數據比對,或者恢復意外提交形成的錯誤數據。 (2). 回滾段:回滾段用於存放數據修改以前的值 (3). Oracle delete數據或者drop表時,並非直接刪除,而是像windows系統同樣,把數據放到回收站 使用SELECT * FROM user_recyclebin,能夠查看被刪除的表或索引等 (4). 限制: 1.表的結構未改動;若是在刪除後表結構發生改動則不能使用閃回; 2.用戶必須有足夠的權限 (5). 恢復數據使用實例:windows
1. alter table test1 enable row movement;
//在閃回前必須 啓動行移動功能 不然會報錯誤:ORA-08189: 由於未啓用行移動功能, 不能閃回表
2. FLASHBACK TABLE test1 TO TIMESTAMP to_timestamp('2013-06-03 15:35:00','yyyy-mm-dd hh24:mi:ss');
//注意:恢復時間點必須是在刪除數據以前 這裏是2013-06-03 15:35:57 以前就能夠
(6). 恢復表使用實例:工具
flashback table test1 to before drop;
(7). 固然flashback還能夠把整個數據庫恢復到必定的時間點code
(8). 注意: 1. 對 drop table test1 purge; 2. TRUNCATE TABLE test1; 的數據是不能使用flashback恢復的,由於這drop table tableName purge 和truncat操做都不會把數據放到回收站,會直接刪除。索引