Oracle 11g 回收站(recyclebin)的使用(一)

2014-11-24 18:29:06 · 作者: · 浏览: 2

Flashback是以undo segment中的内容为基础的,因此受限于undo_retenton参数,要使用flashback的特征,必须启动自动撤销表空间。


This supported parameter was introduced in Oracle 10.2.0


从文档上我们可以看到这个变化说明,到了11g中,这个参数在session依然可以立即修改并影响当前的session,但如果是在系统一级修改的话,那么就要加deferred参数,对当前已经连接的sesion没有影响,但新连接的session将受到影响


Flashback不支持sys用户,system表空间下面的对象,也不能从回收站里拿到。故使用sys或是system用户登录时,show recyclebin为空。


启动闪回数据库的步骤:


1, 开启归档模式:alter database archivelog;


2, 配置闪回区:alter system set db_recovery_file_dest=’/../’


3, 配置闪回保留时间,默认是1440minutes:alter system set db_flashback_retention_target=’2880’;


4, 启动闪回数据库:shutdown immediate;startup mount


Alter database flashback on/off;


5, 执行闪回操作:shutdown immediate;startup mount;


Flashback database to timestamp to_date(‘2001-02-03’,’yyyy-mm-dd hh24:mi:ss’);


或是:flashback database to scn 2323534;


Alter database open ready only;检查闪回时刻是否是所需的数据,如果不是,可以继续修改。


检查完毕之后:shutdown immediate;startup mount; alter database open resetlogs;resetlogs是将control file中的scn#与数据文件中的scn#同步,消除时间间隔。


V$flashback_database_log视图,可以查看闪回日志所占的空间,最早能闪回到的scn,最早能闪回到的时间点


7,查看回收站:show recyclebin; 或是select * from sys.recyclebin$查 所有的回收站。


8,恢复被删除的表:flashback table t_name to before drop;如果闪回


的表名与当前的表名相同,需要重命名才可以闪回


Flashback table t_name to before drop rename to t_new;


9,闪回指定的表


查看表结构:desc “BIN$qrjyuHuVotHgQAB/AQAQ3w==$0”;


查看表的记录:select count(*) from “BIN$qrjyuHuVotHgQAB/AQAQ3w==$0”;


安装表名称恢复:flashback table “BIN$qrjyuHuVotHgQAB/AQAQ3w==$0” to before drop;


越过回收站直接删除:drop table t purge;drop user cascade; drop tablespace users including contents;


清空回收站:purge index idx_1; purge user_recyclebin; purge dba_recyclebin;


当设置db_recovery_file_dest为空的时候,也可以取消闪回区,如果已经启用flashback database;则这个方法不能取消。


查看当前的scn:select current_scn from v$database;


查看哪些对象可以利用闪回恢复区来存放:


SQL> select file_type from v$flash_recovery_area_usage;



FILE_TYPE


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


CONTROL FILE


REDO LOG


ARCHIVED LOG


BACKUP PIECE


IMAGE COPY


FLASHBACK LOG


FOREIGN ARCHIVED LOG



7 rows selected.



查看闪回恢复区空间的使用情况:


SQL> select * from v$flash_recovery_area_usage;



FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE


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


NUMBER_OF_FILES


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


CONTROL FILE 0 0


0



REDO LOG 0 0


0



ARCHIVED LOG 0 0


0




FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE


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


NUMBER_OF_FILES


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


BACKUP PIECE 0 0


0



IMAGE COPY 0 0


0



FLASHBACK LOG 0 0


0




FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE


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


NUMBER_OF_FILES


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


FOREIGN ARCHIVED LOG 0 0


0




7 rows selecte