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
- 浏览: 7110 次
相关推荐
在Oracle数据库管理中,偶尔会遇到误删除表(`drop table`)并且执行了Purge操作的情况,这可能导致重要的业务数据永久丢失。尤其是在没有有效的备份策略或备份已过期的情况下,数据恢复变得异常困难。本文档将详细...
Oracle数据库中的回收站...通过本文,读者可以学习到如何处理Oracle数据库中因误操作导致的删除问题,包括使用回收站功能、flashback drop技术以及通过job批量处理回收站中的对象,从而提高数据库管理的效率和安全性。
5. Flash Drop:在 Oracle 10g 中,启用 Flash Drop 功能,可以将删除的表和对象暂存于回收站中,以便随时恢复。例如:DROP TABLE TABLE_NAME PURGE; 6. 回收站的概念:Oracle 回收站的概念与 Windows 回收站相同,...
本文介绍了几种常用的彻底删除Oracle数据表的方法,包括使用`PURGE`命令、在`DROP`语句中添加`PURGE`选项等。正确应用这些方法可以帮助管理员有效地管理数据库空间,并避免不必要的数据残留问题。
Oracle 恢复误删除数据 Oracle 数据库是企业级的关系数据库管理系统,广泛应用于各种行业。然而,在实际操作中,误删除数据是...Oracle 恢复误删除数据需要了解闪回方法的使用和限制,同时也需要注意空间占用的问题。
当表被DROP后,如果没有立即被其他数据覆盖,Oracle会将其放置在**回收站**(Recycle Bin)中,这使得用户可以在一定时间内恢复被删除的表。 #### 三、误删除数据的具体恢复方法 ##### 3.1 DELETE误删除的恢复方法 ...
- **原理**:当使用`DROP`命令删除表后,Oracle并没有立即清除表占用的空间,而是将其放入了一个特殊的区域——回收站中,直到这些空间被新的数据覆盖。 - **查询回收站**:可以通过查询`USER_TABLES`视图或`USER_...
Oracle 10G的回收站是数据库管理系统中一个重要的特性,它允许用户在不小心删除数据库对象后能够方便地恢复这些对象,从而极大地减少了因误操作导致的数据丢失问题。回收站本质上是一个数据字典表,存储了被Drop操作...
在了解如何彻底删除Oracle表和如何使用闪回恢复回收站中的数据之前,我们需要先明白回收站的工作原理。 回收站的工作原理在于,当执行`DROP TABLE`等删除命令时,Oracle并不立即释放相关的磁盘空间,而是将被删除的...
这个程序需要能够连接到源SQL Server数据库读取数据,并将这些数据插入到目标Oracle数据库中的相应表中。 ```java package 数据迁移; import java.sql.*; /** * @中华人民共和国行政区划代码迁移 * @模块:...
Oracle Database 10g是Oracle公司推出的一款关系型数据库管理系统,它在企业级应用中广泛使用,提供了强大的数据存储和管理能力。删除表是数据库管理中的常见操作,本压缩包包含的是关于在Oracle 10g中如何删除表的...
在Oracle数据库管理过程中,误删表是常见的操作失误之一,而如何有效、快速地恢复这些被误删的表对于DBA(数据库管理员)来说至关重要。本文将详细介绍如何在Oracle环境下利用回收站功能进行误删表的恢复。 ### ...
这样做将会彻底删除表及其相关联的对象,类似于 Oracle 10g 之前的版本中的行为。 ##### 5. **空间管理** - **空间压力**:当表空间被回收站中的数据填满时,Oracle 会根据先进先出的原则自动清理最旧的记录,以...
这一特性最早出现在Oracle 9i版本中,但在Oracle Database 10g中得到了进一步的增强和完善。 ### 闪回删除的原理 当一个表被删除时,并不是立即从数据库中永久清除,而是移动到了回收站(Recycle Bin)。回收站...
- **F选项**:在Oracle 12c及更高版本中,`DROP TABLE`默认将表移到回收站,除非使用`PURGE`选项立即删除,因此空间可能不会立即释放。 **问题2解析:** 关于子查询,以下三个陈述是正确的: A. 子查询可以使用`...
DROP TABLE语句删除表,但10g版本后,如果不加PURGE选项,表会被放入回收站,需要额外操作彻底删除。RENAME语句用于重命名表、视图等对象。COMMENT语句可以为表或列添加注释。此外,SQL还支持创建各种约束,如非空...
在Oracle中,当用户执行了`DROP TABLE`操作时,系统并不会立即永久删除数据,而是将其移动到回收站(Recyclebin)。回收站是Oracle为用户提供的一种临时存储已删除对象的地方,以便在需要时可以恢复。要从回收站中...
### Oracle回收站功能详解与彻底删除表方法 ...通过使用`PURGE`命令和相关SQL语句,可以有效地完成这些任务。同时,需要注意避免因SQL语句编写不当而导致的ORA-00933错误,以确保操作的顺利进行。
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其在数据管理、事务处理和企业级应用中扮演着核心角色。在日常运维中,"Oracle删除"通常涉及到数据的清理、表的删除以及数据库对象的撤销等操作。下面我们将...
`PURGE`命令用于从回收站中彻底删除对象,这一操作是不可逆的。它可以用于: 1. 删除单个表或索引,使用原始对象名或系统生成的`BIN$`名字。 2. 清除指定表空间的所有回收站内容。 3. 清理整个回收站,包括所有用户...