场景一: 删除了表数据,没有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操做都不会把数据放到回收站,会直接删除。索引