(学习笔记)
在10G众多的特性中我觉得这两个特性是相当有用的。比如很多时候我们会遇到用户误删除了一个表或者一个表中的某些记录,这个时候这两个特性中的其中一个就可以用来完成这样的工作。在这里就FLASHBACK TABLE 进行试验证明,而FLASHBACK DROP给出概念。
FLASHBACK TABLE 可以让人们当误删除表中记录的时候恢复到指定时间点,它使用的是UNDO信息,所以时间不能太长,毕竟UNDO是会被重用的。另外在表中ROWID用来唯一标示一行记录,所以在FLASHBACK的时候ROWID可能会发生变化,所以必须开启行的移动功能。下面是试验:
SQL> select * from con2;
IM
----------------------------------------
3
3
3
3
3
SQL> delete con2;
5 rows deleted
SQL> commit;
Commit complete
SQL> select * from con2;
IM
----------------------------------------
17分钟后 我们发现了记录被误删
SQL> alter table con2 enable row movement;
Table altered
SQL> select * from con2;
IM
----------------------------------------
我们不确定到底何时删除 先回复到5分钟前
SQL> flashback table con2 to timestamp systimestamp- interval '5' minute;
Done
SQL> select * from con2;
IM
----------------------------------------
没有记录,然后恢复到20分钟前
SQL> flashback table con2 to timestamp systimestamp- interval '20' minute;
Done
SQL> select * from con2;
IM
----------------------------------------
3
3
3
3
3
OK记录回来了。
FLASHBACK DROP是当人们误使用DROP命令删除对象的时候使用的,它使用的一个叫做回收站的的逻辑结构进行的,每一个表空间都有回收站(recycle bin)
这里只给出概念啦。。具体大家自己去看哈。。