Oracle使用了革命一的技术来形容它在Oracle 10g中引入的闪回技术。这一技术在某些情况下确实使数据的恢复变得非常简单、快捷而且可靠。
闪回技术是这样处理的:当一个表被删除时,它并不是真的被删除了,而只是被放到了回收站(recyclebin)里了,只要这表还在回收站里,它就可以被重新恢复(闪回)回来。该回收站被放在所在的表空间,Oracle并不保证所有删除的表都能闪回成功。因为当用户在某个表空间上创建一个新表时,Oracle首先使用空闲的磁盘空间,如果没有足够的磁盘空间,Oracle将使用回收站的磁盘空间。因此在创建表空间时最好留出足够的磁盘空间以方便日后进行恢复工作。
要使Oracle能够使用这一技术,DBA还需要将系统参数recyclebin设置为ON。
flashback相关语法:
-----------------查看recyclebin的值(flashblack是否打开)-----------------
show parameter bin;
-----------------打开flashblack功能(修改参数值on为打开,off为关闭)-----------------
alter system set recyclebin=on;
-----------------显示被删除的表-----------------
show recyclebin;
-----------------清除回收站里的表,table_name为表名(original name)-----------------
purge table表名;
-----------------清除回收站里所有的表-----------------
purge recyclebin;
-----------------从回收站恢复表-----------------
flashback table 表名 to before drop;
-----------------直接删除一张表,(不到回收站)-----------------
drop teble 表名 purge;
提示:
闪回技术只能保护非系统表空间中的表,而且这些表还必须存放在本地管理的表空间中。尽管在一个表被删除时,依赖于该表的绝大多数对象也受到回收站的保护,但是位图、引用完整性约束等并不受到回收站的保护。