在oracle 10g之前的版本中当用户错误的删除了一个重要的表时,DBA都会感到非常紧张,因为此时如果没有可用的逻辑备份就只能进行不完全恢复了。而这种恢复既复杂又耗时,而且也没有人敢保证恢复能百分之百成功。Oracle 10g的闪回技术基本上解决了这一难题。但是呢,Oracle并不保证所有删除的表都能闪回成功。因为当用户在某个表空间上创建一个新表(或需要磁盘空间)时,Oracle首先使用空闲的磁盘空间,如果没有足够的磁盘空间,oracle将使用回收站的磁盘空间。因此在创建表空间时最好留出足够的磁盘空间以方便日后进行恢复工作。
要使Oracle能够使用这一闪回技术,DBA还需要使用Oracle的alter system 命令将系统参数recyclebin设置为ON。
(1)、conn system/system;
(2)、检查系统参数recyclebin设置情况:show parameter bin
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
recyclebin string on
Oracle10g默认安装这个参数是设置为on的,如果检查是为off,就是用如下命令设置:
(3)、alter system set recyclebin=on;然后在使用方法(2)命令检查是否设置成功。
(4)、使用scott用户进数据库删除该用户下的一个表test:drop table test;删除后,我们提交一个事务。
(5)、使用命令查询回收站中的数据:select original_name,object_name,type from user_recyclebin;
ORIGINAL_NAME OBJECT_NAME TYPE
-------------------------------- ------------------------------ ------
---------
SYS_C0019221 BIN$h5+dotNQR5OJ01KFviNNvQ==$0 INDEX
TBCJ BIN$Hvru3rWpSq6HgQyXYKDEOA==$0 TABLE
TBUSER BIN$p2uX3b99R/61blECOndFgg==$0 TABLE
SYS_C0019219 BIN$chdZ2LpsTXyODiblN7y6Eg==$0 INDEX
SYS_C0019225 BIN$HiNeojLQR/So33DSYtiBoA==$0 INDEX
TBCJ BIN$rK3ITpw1TKeiHBYmVj+PbQ==$0 TABLE
SYS_C0019223 BIN$8fmX0cviTq23GRxDsdfL3g==$0 INDEX
TBUSER BIN$XaHHs5amRZq4O21XDI9p8w==$0 TABLE
AGENTS BIN$sw7eZiufSf+JQhOVRFg1yA==$0 TABLE
TEST BIN$ASaoxGlHT5mTGp8jr74bmA==$0 TABLE
(6)、使用闪回命令从回收站恢复刚才删除的test表:flashback table "BIN$ASaoxGlHT5mTGp8jr74bmA==$0" to before drop;刚才误删的表恢复成功。
posted on 2012-08-23 11:29
Glorin 阅读(167)
评论(0) 编辑 收藏