Oracle 数据表误删恢复 Flashback

1. 前提条件. recyclebin 参数打开.

 验证参数是否打开:

SHOW PARAMETER RECYCLEBIN

2. 如果参数没有打开的话 需要打开,并且重启一下数据库方法为

alter system set recyclebin=on scope=spfile;

3. 登录数据库

sqlplus / as sysdba
#关闭数据库
shutdown immediate
#开启数据库
startup

4. 创建表测试

Create table zhaobsh (Test varchar(20));
insert into table zhaobsh values ("zhaobsh");
select * from zhaobsh
drop table zhaobsh

5. 回滚表

flashback TABLE zhaobsh TO BEFORE DROP ;

技术含量比较低 但是 比较有用 如果开启了 recyclebin的话 并且drop 表的时间在 比较短的情况下.

6. 回滚到某一时间节点的方法

保证表可以movement

命令

ALTER TABLE zhaobsh ENABLE ROW MOVEMENT;

将表回滚到五分钟之前

flashback table zhaobsh to timestamp systimestamp - interval '5' minute; 

回滚到一个精确的时间节点的语法

FLASHBACK TABLE zhaobsh TO TIMESTAMP TO_TIMESTAMP('2018-06-20 10:04:01 PM','YYYY-MM-DD HH:MI:SS AM')

注意一点 这里的时间是数据库的时间 不是客户端的时间 需要严格匹配 不然结果是不对的.

猜你喜欢

转载自www.cnblogs.com/jinanxiaolaohu/p/9206366.html
今日推荐