今天同事反应数据库中的数据没了,某涨表的数据被谁删了,里面有他重要的测试数据,知道情况后,我就问他大概什么时候没的,他说就不久前,走开了一下,走之前测试的时候还在的,根据他说的这些,被删除的时间应该不长,应该能用闪回查询把数据找回来,后来数据果然找回来了,下面简单用一个例子演示这个过程:
SQL> create table aaa(a int);
SQL> create table aaa(a int);
Table created.
SQL> insert into aaa values(23);
1 row created.
SQL> commit;
Commit complete.
SQL> select current_scn from v$database; #先记下此时的SCN
CURRENT_SCN
-----------
7280732925
-----------
7280732925
SQL> select * from aaa;
A
----------
23
----------
23
SQL> delete from aaa;
1 row deleted.
SQL> commit;
Commit complete.
SQL> select * from aaa; #数据已经被删
no rows selected
SQL> select * from aaa as of scn 7280732925; #通过这个查询原来的数据又能查到了
A
----------
23
----------
23
这个功能针对一些误操作还是很有用的,当然真实系统上备份才是王道。。。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26463985/viewspace-711792/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26463985/viewspace-711792/