`
dongzhaowu
  • 浏览: 7110 次
社区版块
存档分类
最新评论

oracle中purge和drop的区别

阅读更多

Purge和drop的区别:
Oracle 10g提供的flashback drop 新特性为了加快用户错误操作的恢复,Oracle10g提供了flashback drop的功能。而在以前的版本中,除了不完全恢复,通常没有一个好的解决办法。
Oracle 10g的flashback drop功能,允许你从当前数据库中恢复一个被drop了的对象,在执行drop操作时,现在Oracle不是真正删除它,而是将该对象自动将放入回收站。对于一个对象的删除,其实仅仅就是简单的重令名操作。
所谓的回收站,是一个虚拟的容器,用于存放所有被删除的对象。在回收站中,被删除的对象将占用创建时的同样的空间,你甚至还可以对已经删除的表查询,也可以利用flashback功能来恢复它,这个就是flashback drop功能。
回收站内的相关信息可以从recyclebin/user_recyclebin/dba_recyclebin等视图中获取,或者通过SQL*Plus的show recyclebin 命令查看。
 
C:\>sqlplus /nolog
SQL*Plus: Release 10.1.0.2.0 - Production on 星期三6月1 10:09:32 2005
Copyright (c) 1982, 2004, Oracle.  All rights reserved.
SQL> conn tiger/tiger@xe
已连接。
SQL> select count(*) from goodsinfo1;
  COUNT(*)
----------
     38997
SQL> drop table goodsinfo1;
表已删除。
SQL> commit;
提交完成。
SQL> select count(*) from goodsinfo1;
select count(*) from goodsinfo1
                     *
第1 行出现错误:
ORA-00942: table or view does not exist
 
啊!天啊!我删错了表,怎么办好呢?啊!将数据库闪回到刚才删除表前的时间就可以啦。
不行!那其它的操作也会一齐闪回。现在可以用flashback drop的功能了。
 
SQL> show recyclebin;
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
GOODSINFO1       BIN$RFG58GsfRheKlVKnWw8KKQ==$0 TABLE        2005-06-01:10:11:03
 
SQL> FLASHBACK TABLE goodsinfo1 TO BEFORE DROP;
 
闪回完成。
 
SQL> select count(*) from goodsinfo1;
  COUNT(*)
----------
     38997
 
看看已删除的表回来了。真的谢天谢地啊!
 
SQL> show recyclebin;
 
如果想要彻底清除这些对象,可以使用Purge命令,如:
SQL> select count(*) from goodsinfo2;
  COUNT(*)
----------
     38997
SQL> drop table goodsinfo2;
表已删除。
SQL> commit;
提交完成。
SQL> show recyclebin;
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
GOODSINFO2       BIN$BgSuEWMOSLOGZPcIc97O8w==$0 TABLE        2005-06-01:10:13:18
SQL> purge table goodsinfo2;
表已清除。
SQL> show recyclebin;
SQL>
使用purge recyclebin可以清除回收站中的所有对象。
类似的我们可以通过purge user_recyclebin或者是purge dba_recyclebin来清除不同的回收站对象。
通过PURGE TABLESPACE TSNAME,PURGE TABLESPACE TSNAME USER USERNAME命令来选择清除回收站。
 
 
ps:用户drop后不进recycle bin,所以不用purge

分享到:
评论

相关推荐

    oracle drop table purge无备份bbed恢复.docx

    在Oracle数据库管理中,偶尔会遇到误删除表(`drop table`)并且执行了Purge操作的情况,这可能导致重要的业务数据永久丢失。尤其是在没有有效的备份策略或备份已过期的情况下,数据恢复变得异常困难。本文档将详细...

    BLOG_Oracle 回收站及flashback drop_LHR.pdf

    Oracle数据库中的回收站...通过本文,读者可以学习到如何处理Oracle数据库中因误操作导致的删除问题,包括使用回收站功能、flashback drop技术以及通过job批量处理回收站中的对象,从而提高数据库管理的效率和安全性。

    Oracle回收站空间清空.doc

    5. Flash Drop:在 Oracle 10g 中,启用 Flash Drop 功能,可以将删除的表和对象暂存于回收站中,以便随时恢复。例如:DROP TABLE TABLE_NAME PURGE; 6. 回收站的概念:Oracle 回收站的概念与 Windows 回收站相同,...

    彻底删除 Oracle 的数据表

    本文介绍了几种常用的彻底删除Oracle数据表的方法,包括使用`PURGE`命令、在`DROP`语句中添加`PURGE`选项等。正确应用这些方法可以帮助管理员有效地管理数据库空间,并避免不必要的数据残留问题。

    Oracle恢复误删除数据

    Oracle 恢复误删除数据 Oracle 数据库是企业级的关系数据库管理系统,广泛应用于各种行业。然而,在实际操作中,误删除数据是...Oracle 恢复误删除数据需要了解闪回方法的使用和限制,同时也需要注意空间占用的问题。

    Oracle数据库误删除数据的不同恢复方法整理(超级实用)

    当表被DROP后,如果没有立即被其他数据覆盖,Oracle会将其放置在**回收站**(Recycle Bin)中,这使得用户可以在一定时间内恢复被删除的表。 #### 三、误删除数据的具体恢复方法 ##### 3.1 DELETE误删除的恢复方法 ...

    Oracle数据库误删除数据的不同恢复方法整理

    - **原理**:当使用`DROP`命令删除表后,Oracle并没有立即清除表占用的空间,而是将其放入了一个特殊的区域——回收站中,直到这些空间被新的数据覆盖。 - **查询回收站**:可以通过查询`USER_TABLES`视图或`USER_...

    Oracle 10G中的回收站

    Oracle 10G的回收站是数据库管理系统中一个重要的特性,它允许用户在不小心删除数据库对象后能够方便地恢复这些对象,从而极大地减少了因误操作导致的数据丢失问题。回收站本质上是一个数据字典表,存储了被Drop操作...

    彻底删除和闪回oracle表

    在了解如何彻底删除Oracle表和如何使用闪回恢复回收站中的数据之前,我们需要先明白回收站的工作原理。 回收站的工作原理在于,当执行`DROP TABLE`等删除命令时,Oracle并不立即释放相关的磁盘空间,而是将被删除的...

    SQLSERVER到ORACLE的数据库迁移

    这个程序需要能够连接到源SQL Server数据库读取数据,并将这些数据插入到目标Oracle数据库中的相应表中。 ```java package 数据迁移; import java.sql.*; /** * @中华人民共和国行政区划代码迁移 * @模块:...

    Oracle Database 10g删除表的程序.rar_oracle 10g

    Oracle Database 10g是Oracle公司推出的一款关系型数据库管理系统,它在企业级应用中广泛使用,提供了强大的数据存储和管理能力。删除表是数据库管理中的常见操作,本压缩包包含的是关于在Oracle 10g中如何删除表的...

    oracle 误删除表恢复

    在Oracle数据库管理过程中,误删表是常见的操作失误之一,而如何有效、快速地恢复这些被误删的表对于DBA(数据库管理员)来说至关重要。本文将详细介绍如何在Oracle环境下利用回收站功能进行误删表的恢复。 ### ...

    用oracle10g的flashback闪回功能快速恢复oracle中被删除的表

    这样做将会彻底删除表及其相关联的对象,类似于 Oracle 10g 之前的版本中的行为。 ##### 5. **空间管理** - **空间压力**:当表空间被回收站中的数据填满时,Oracle 会根据先进先出的原则自动清理最旧的记录,以...

    oracle 闪回已删除的表

    这一特性最早出现在Oracle 9i版本中,但在Oracle Database 10g中得到了进一步的增强和完善。 ### 闪回删除的原理 当一个表被删除时,并不是立即从数据库中永久清除,而是移动到了回收站(Recycle Bin)。回收站...

    Oracle.Premium.1z0-071.by.VCEplus.69q.pdf

    - **F选项**:在Oracle 12c及更高版本中,`DROP TABLE`默认将表移到回收站,除非使用`PURGE`选项立即删除,因此空间可能不会立即释放。 **问题2解析:** 关于子查询,以下三个陈述是正确的: A. 子查询可以使用`...

    ORACLE基础学习培训课件.pptx

    DROP TABLE语句删除表,但10g版本后,如果不加PURGE选项,表会被放入回收站,需要额外操作彻底删除。RENAME语句用于重命名表、视图等对象。COMMENT语句可以为表或列添加注释。此外,SQL还支持创建各种约束,如非空...

    oracle闪回技术

    在Oracle中,当用户执行了`DROP TABLE`操作时,系统并不会立即永久删除数据,而是将其移动到回收站(Recyclebin)。回收站是Oracle为用户提供的一种临时存储已删除对象的地方,以便在需要时可以恢复。要从回收站中...

    Oracle 回收站功能,彻底删除表ORA-00933:SQL command not properly ended

    ### Oracle回收站功能详解与彻底删除表方法 ...通过使用`PURGE`命令和相关SQL语句,可以有效地完成这些任务。同时,需要注意避免因SQL语句编写不当而导致的ORA-00933错误,以确保操作的顺利进行。

    Oracle删除

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其在数据管理、事务处理和企业级应用中扮演着核心角色。在日常运维中,"Oracle删除"通常涉及到数据的清理、表的删除以及数据库对象的撤销等操作。下面我们将...

    Oracle管理 | 回收站

    `PURGE`命令用于从回收站中彻底删除对象,这一操作是不可逆的。它可以用于: 1. 删除单个表或索引,使用原始对象名或系统生成的`BIN$`名字。 2. 清除指定表空间的所有回收站内容。 3. 清理整个回收站,包括所有用户...

Global site tag (gtag.js) - Google Analytics