数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

使用Oracle10g提供的flashback drop新特性


发布日期:2020年01月22日
 
使用Oracle10g提供的flashback drop新特性

为了加快用户错误操作的恢复Oracleg提供了flashback drop的功能

而在以前的版本中除了不完全恢复通常没有一个好的解决办法

Oracle g的flashback drop功能允许你从当前数据库中恢复一个被drop了的对象在执行drop操作时现在Oracle不是真正删除它而是将该对象自动将放入回收站对于一个对象的删除其实仅仅就是简单的重令名操作

所谓的回收站是一个虚拟的容器用于存放所有被删除的对象在回收站中被删除的对象将占用创建时的同样的空间你甚至还可以对已经删除的表查询也可以利用flashback功能来恢复它 这个就是flashback drop功能

回收站内的相关信息可以从recyclebin/user_recyclebin/dba_recyclebin等视图中获取或者通过SQL*Plus的show recyclebin 命令查看

SYS AS SYSDBA on MAR >connect eygle/eygle

Connected

EYGLEon MAR >create table t as select * from dba_users;

Table created

EYGLEon MAR >drop table t;

Table dropped

EYGLEon MAR >show recyclebin;

ORIGINAL NAMERECYCLEBIN NAMEOBJECT TYPEDROP TIME

T BIN$T+hCJvgNAgAIMR+Q==$ TABLE:::

EYGLEon MAR > FLASHBACK TABLE t TO BEFORE DROP;

Flashback complete

EYGLEon MAR >desc t

NameNull?Type

USERNAMENOT NULL VARCHAR()

USER_ID NOT NULL NUMBER

PASSWORD VARCHAR()

ACCOUNT_STATUSNOT NULL VARCHAR()

LOCK_DATEDATE

EXPIRY_DATEDATE

DEFAULT_TABLESPACENOT NULL VARCHAR()

TEMPORARY_TABLESPACENOT NULL VARCHAR()

CREATED NOT NULL DATE

PROFILE NOT NULL VARCHAR()

INITIAL_RSRC_CONSUMER_GROUPVARCHAR()

EXTERNAL_NAMEVARCHAR()

EYGLEon MAR >show recyclebin;

如果想要彻底清除这些对象可以使用Purge命令如:

EYGLEon MAR >show recyclebin;

ORIGINAL NAMERECYCLEBIN NAMEOBJECT TYPEDROP TIME

TBIN$ycNBfhan/gNAgAIMR+Q==$ TABLE:::

EYGLEon MAR >purge table t;

Table purged

EYGLEon MAR >show recyclebin;

使用 purge recyclebin可以清除回收站中的所有对象

类似的我们可以通过purge user_recyclebin或者是purge dba_recyclebin来清除不同的回收站对象

通过PURGE TABLESPACE TSNAMEPURGE TABLESPACE TSNAME USER USERNAME命令来选择清除回收站

如果需要彻底删除一个表不想放到回收站中可以在drop语句中增加purge选项

drop table tablename purge

上一篇:Oracle优化经典文章------索引原理篇

下一篇:oracle修改processes参数