oracle误删数据表还原的二种方法(oracle还原)

undo_retention integer 10800

      FSCN

   3435958

运用使用顾客尝试闪回
SQL> connect username/password
Connected.

幸存数据:
SQL> select count(*) from hs_passport;

undo_tablespace string UNDOTBS1

2. oracle误去除表数据后的的高效回复效率方法

FETCH c_temp INTO r_temp;

System altered.

改正暗中认可的undo_retention参数设置:

Oracle误删除表数据后的恢复详整
 
测量检验情形:
SYSTEM:IBM AIX 5L                         Oracle Version:10gR2
 

后生可畏、如若是刚刚删除,那么有两方式:


先是用show parameter undo;命令查看那个时候的数据库参数undo_retention设置。

2.1 方法一
透过oracle提供的回闪功能

CURSOR c_temp IS SELECT * FROM hr.job_history;


展现如下:复制代码
代码如下:undo_management string AUTO


这种方式简便,轻便理解,功用和地点的等同一时间间为你误操作早前的光阴,最棒是离误操作比较近的,因为oracle保存在回滚保持段里的数据时间有料定的年华节制由undo_retention
那几个参数值决定。

NAME                                 TYPE        VALUE

主意1,通过oracle提供的回闪功用:复制代码
代码如下:exec dbms_flashback.enable_at_time);

查看FIRST_CHANGE#,NEXT_CHANGE#,FIRST_TIME
SQL> set pagesize 9999
SQL> col fscn for 999999999
SQL> col nscn for 999999999
SQL> select name,FIRST_CHANGE# fscn,NEXT_CHANGE# nscn,FIRST_TIME
from v$archived_log;

复制代码 代码如下:select * from
hr.job_history as of timestamp to_timestamp;

这种格局能够将去除的数据复苏到相应的表中,首先要保证该顾客有实行dbms_flashback包的权力。

LOOP

undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace                      string      UNDOTBS2
undo_retention(保持力卡塔尔,900单位是秒,即15分钟。
修改默许的undo_retention参数设置: SQL> ALTER SYSTEM SET undo_retention=10800 SCOPE=BOTH;

EXIT WHEN c_temp%NOTFOUND;

2.2 方法二
insert into hr.job_history
select * from hr.job_history as of timestamp to_timestamp(‘2011-04-15
08:20:00’, ‘yyyy-mm-dd hh24:mi:ss’);
这种艺术大约,轻巧理解,功效和地点的均等,此处的时刻为你误操作从前的时刻,最佳是离误操作比较近的,因为oracle保存在回滚保持段里的数目时间有断定的日子限定,那一个限定由undo_retention
这一个参数值决定。

方法2,insert into hr.job_history

当前的SCN为:
SQL> select dbms_flashback.get_system_change_number fscn from
dual;

undo_retention,10800单位是秒。即3个钟头。

NAME                                 TYPE        VALUE