oracle中drop命令,oracle的drop命令

以前用oracle9i没有遇到的问题,今天碰到了。

oracle9i的drop命令可以删除表同时删除了表空间,是不可以rollback的。今天用10g开发时测试时删除一个表,无意中查看竟然表的条目数没有减少,而是多了一个自己不认的表明。郁闷中。。。。。。。。。。

google一下才发现是10g的drop命令原理发生了改变。10g开始引入了flashback drop的新特性,10g的drop操作不慎真正删除它,而是自动放入回收站Recycle Bin里面了,drop的操作只不过是重命名而已。

知道了原理就可以解决问题了。这个新特性带来了的好处就是不用害怕误删除了,因为可以恢复回来数据,恢复的操作也很简单,原理不多解释了,执行

flashback table 表名 to before drop;

当然flashback这个命令是非常强大的,不仅可以闪回表,database也可以,初步认识,不拓展了。

每件事都是双面的,新特性带来了好处,也有另一个烦恼,就是数据没有真正的物理删除,物理空间势必不断增大,有什么办法解决呢?这个问题其实和系统的回收站是一个道理,清理回收站就可以了。

查看回收站:select * from recyclebin;

可以按需求查看所需要的信息。

删除:purge tablespace 表空间名;(空间名recyclebin里有)

以上操作是在一般用户session下,有个dba_recyclebin可以更多操作。

第一次写笔记,都是皮毛,写给自己看的,还望精通的人别扔板砖。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值