设为首页 加入收藏

TOP

Oracle学习(15)【DBA向】:闪回(二)
2015-11-21 01:59:03 来源: 作者: 【 】 浏览:1
Tags:Oracle 学习 DBA 闪回
是相同的,例如用户创建了一个test表,使用drop命令删除该表后,又创建了一个test表,这时,如果再次删除该表就会导致向回收站中添加了两个相同的表。

Oracle回收站举例。

SQL> --闪回删除(drop): oracle回收站
SQL> select * from tab;


TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
DEPT TABLE
EMP TABLE
BONUS TABLE
SALGRADE TABLE
EMP10 TABLE
EMP20 TABLE
TESTSAVEPOINT TABLE
TESTDELETE TABLE
BIN$91xa7gtoQfiGlzbFlex5HQ==$0 TABLE
TEST3 TABLE
MYPERSON TABLE


TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
EMPINCOMEVIEW VIEW
TESTSEQ TABLE
HREMP SYNONYM
MSG1 TABLE
TEST1 TABLE
PM_CI TABLE
PM_STU TABLE
FLASHBACK_TABLE TABLE
SYS_TEMP_FBT TABLE


已选择20行。


SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
EMPINCOME BIN$91xa7gtoQfiGlzbFlex5HQ==$0 TABLE 2012-03-27:15:34:39
SQL> purge recyclebin;


回收站已清空。


SQL> drop table testseq purge; (不经回收站直接彻底删除)


表已删除。

闪回删除:回收站中对象的命名规则

为了确保添加到回收站中的对象的名称都是唯一的,系统会对这些保存到回收站中的对象进行重命名,重命名的格式如下:

BIN$globalUID$version


?其中: BIN表示RECYCLEBIN;globalUID是一个全局唯一的、24个字非长的对象,该标识与原对象名没有任何关系;version指数据库分配的版本号。

闪回删除举例

闪回使用drop命令删除的表 ?使用表名闪回
SQL> select * from test3;


TID TNAME GEND
---------- -------------------- ----
1 Tom 男


SQL> drop table test3;


表已删除。


SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TEST3 BIN$vORkLd1GQKKsPs9PO/H8oQ==$0 TABLE 2012-03-29:10:46:20
SQL> flashback table test3 to before drop;


闪回完成。


SQL> show recyclebin
SQL> select * from test3;


TID TNAME GEND
---------- -------------------- ----
1 Tom 男



?使用recyclebin name闪回
SQL> drop table test3;


表已删除。


SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TEST3 BIN$V2swGcDdROGeCxvlh9SA3A==$0 TABLE 2012-03-29:10:51:45
SQL> flashback table "BIN$V2swGcDdROGeCxvlh9SA3A==$0" to before drop;


闪回完成。



闪回重名的表
SQL> drop table test3;


表已删除。


SQL> create table test3(tid number);


表已创建。


SQL> drop table test3;


表已删除。


SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TEST3 BIN$R5hrMHspQ1GmHWOXKJX1Ig==$0 TABLE 2012-03-29:10:49:03
TEST3 BIN$WO/lCOgSTo6kuIJ/thjM/A==$0 TABLE 2012-03-29:10:48:44
SQL> flashback table test3 to before drop;


闪回完成。


SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TEST3 BIN$WO/lCOgSTo6kuIJ/thjM/A==$0 TABLE 2012-03-29:10:48:44
SQL> flashback table test3 to before drop;
flashback table test3 to before drop
*
第 1 行出现错误:
ORA-38312: 原始名称已被现有对象使用




SQL> select * from test3;


未选定行


SQL> flashback table test3 to before drop rename to test3new;


闪回完成。


SQL> select * from test3new;


TID TNAME GEND
---------- -------------------- ----
1 Tom 男

闪回删除: 需要考虑的事情


1. Oracle的回收站:管理员没有回收站
2. 执行闪回删除: 一般的闪回删除,闪回重名的表,通过回收站中的名字执行闪回 (加双引号)

3.闪回删除对下列表无效: ?在SYSTEM 表空间内的表 ?用精细审计的数据库或 虚拟的私人数据库 ?属于字典管理的表空间 ?由于空间不足已经被手动或自动删除的表 4.以下依赖不被保护: ?位图索引 ?表之前删掉的索引




闪回版本查询

语法

闪回版本查询,提供了一个审计行改变的查询功能,通过它可以查找到
首页 上一页 1 2 3 4 下一页 尾页 2/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Oracle获得日期中的年份 下一篇ORACLE11G在同一台linux服务器从..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: