oracle dbms_flashback,oracle 恢复 被delete的数据 使用dbms_flashback的scn

1:以具有dba身份的用户登录,如果不是dba用户在使用过程中无法查看scn(System Change Number).

登录到sqlplus : sqlplus rpg/rpg;

设置显示时间标识:set time on;

本例使用数据表为:

create table STU

(

ID  INTEGER,

SNM VARCHAR2(30)

)

先加入一条数据

16:17:20 SQL> insert into  stu values(1,'rpg');

16:23:51 SQL> select * from stu;

ID SNM

--------------------------------------- ------------------------------

2 rpg

1 rpg

---删除数据 使用delete不要使用truncate

16:25:42 SQL> delete from stu;

2 rows deleted

---注意此处要提交修改的结果

16:26:03 SQL> commit;

Commit complete

---查看当前表,可见数据已经被删除

16:26:11 SQL> select * from stu;

ID SNM

--------------------------------------- ------------------------------

---查看当前dbms_flashback得到scn以便于确认当前数据的存在范围

16:27:14 SQL> select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER

------------------------

554631

--修改后面的scn的值,测试在哪一个scn上数据还存在

16:27:32 SQL>  select * from stu as of scn 554625;

ID SNM

--------------------------------------- ------------------------------

16:28:40 SQL> select * from stu as of scn 554590;

ID SNM

--------------------------------------- ------------------------------

---可见在下面554570以前的号上数据是存在的

16:28:51 SQL> select * from stu as of scn 554570;

ID SNM

--------------------------------------- ------------------------------

2 rpg

---恢复数据到当前表中

16:28:58 SQL> insert into stu select * from stu as of scn 554570;

1 row inserted

--提交

16:30:24 SQL> commit;

Commit complete

--- 查看恢复结果

16:30:28 SQL> select * from stu;

ID SNM

--------------------------------------- ------------------------------

2 rpg

PS:也可以按照时间上来恢复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值