1/数据恢复到具体的某个时间点以前的数据
employees_test 只是误操作的表的表名
flashback table employees_test to timestamp to_timestamp ('2012-08-02 19:12:20','yyyy-mm-dd hh24:mi:ss');
2、如果上面的脚本不能执行,先执行如下脚本
ALTER TABLE employees_test ENABLE ROW MOVEMENT;
2、如果上面的脚本不能执行,先执行如下脚本
ALTER TABLE employees_test ENABLE ROW MOVEMENT;
如果执行了步骤2、再执行1后报回滚段不够,错误信息如下:
ORA-01555: 快照过旧: 回退段号 11 (名称为 "_SYSSMU11_4182116359$") 过小
需要查看下回滚时间段保留长时间
,
17 SQL> show parameter undo 18 19 NAME TYPE VALUE 20 -------------------- ----------- -------------- 21 undo_management string AUTO 22 undo_retention integer 900 23 undo_tablespace string UNDO2 24 SQL> create undo tablespace undo1 datafile '/u01/app/oracle/oradata/yft/undo01.dbf' size 1m;
这就表示只保留900秒,是oracle默认保留的时间长度
22 undo_retention integer 900