网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 数据库技术 > Oracle > 性能调优 > Oracle10g新特性—闪回表-性能调优  

Oracle10g新特性—闪回表-性能调优

2008-07-16  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

        删除表的恢复

中国网管联盟bitsCN.com

        如果某个用户不小心删除了一个十分重要的表,后果将非常严重。在9i中提供的闪回特性只能恢复DML语句造成的影响,而无法恢复DDL语句的影响。DBA只能通过重建一张表,然后从备份数据中导入。 网管论坛bbs_bitsCN_com

        利用Oracle 10G中的闪回表的特性,DBA可以轻松完成这项工作,并将影响降到最小。下面就举一个例子说明:

网管联盟bitsCN@com

        创建表:

         SQL> create table abc (f number(9));

        表已创建。
         SQL> create index idx_test on abc(f);
中国网管联盟bitsCN.com

        索引已创建。

         SQL> insert into abc values(1);
网管有家www.bitscn.net

        已创建 1 行。

         SQL> insert into abc values(2);
中国网管联盟bitsCN.com

        已创建 1 行。

         SQL> insert into abc values(3);
网管联盟bitsCN_com

        已创建 1 行。 网管u家bitscn.net

        删除表:

         SQL> drop table abc;

        表已删除。
         SQL> select * from tab;
        TNAME TABTYPE CLUSTERID
        ------------------ -------------- ----------
        BIN$XXUGsbYvSqa8Mrd6GstP+g==$0 TABLE
网管u家www.bitscn.net

        请注意,在原表abc被删除后,abc没有了,却出现了一张新表BIN$XXUGsbYvSqa8Mrd6GstP+g==$0。这就是Oracle 10G中对删除表的处理,原表实际上并没有完全删除掉,而是被系统重新命名成了一个系统定的新表。它还存在于原先的表空间,并且保持了原有的结构。

中国网管论坛bbs.bitsCN.com

        依赖于原表的存储过程都失效了。而建在表上的索引和触发器也会被重新命名。

         SQL> select index_name, index_type, table_name from ind;
        INDEX_NAME INDEX_TYPE TABLE_NAME
        ------------------- ------------------- ----------------------
        BIN$1++ilvsQQ7mfPh2pvont5A==$0 NORMAL BIN$XXUGsbYvSqa8Mrd6GstP+g==$0
网管网www_bitscn_com

        被删除的表及其相关对象都会被放置在一个称为recyclebin的逻辑容器中:

         SQL> show recyclebin
        ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
        ---------------- ---------------------------- ------------ ---------------
        ABC BIN$XXUGsbYvSqa8Mrd6GstP+g==$0 TABLE 2005-08-29:18:03:10
网管网www_bitscn_com

        显示了被删除对象的原有名字,删除后的名字,对象类型以及删除时间。

中国网管论坛bbs.bitsCN.com

        通过使用flashback table语句就可以恢复表!

网管u家u.bitsCN.com

        闪回完成。

         SQL> select * from tab;
        TNAME TABTYPE CLUSTERID
        ------------------ -------------- ----------
        ABC TABLE
网管下载dl.bitscn.com

        这样就轻松的将对象恢复了! 网管联盟bitsCN_com

        注意,对象被恢复后,它在recyclebin中占用的空间并不会被释放。必须使用PURGERECYCLEBIN来清空占用的空间。

         SQL> PURGE RECYCLEBIN;
中国网管联盟bitsCN.com

        回收站已清空。 网管网www.bitscn.com

        当然,如果想要彻底删除一个对象,让它不占用回收站的空间,可以用以下语句实现:

         SQL> DROP TABLE ABC PURGE;
中国网管联盟bitsCN.com

  网管论坛bbs_bitsCN_com

TAGs   性能   特性       SQL>   删除   abc   对象   创建   恢复   BIN      
 上一篇:Oracle10g新特性—表空间管理-性能调优   下一篇:Oracle10g新特性—增强的CONNECT BY子句-性能调优
Oracle10g新特性—闪回表-性能调优 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: