如何彻底的删除Oracle表 及 闪回恢复在回收站里的数据

当一个表被删除时,它并不是真正的被删除了,而只是放在回收站里(recyclebin)了,当然只要表还在回收站里,它就可以被重新恢复,这也就是“闪回”技术的基本原理。需要说明的是,oracle并不提供100%的闪回,因为当用户在某个表空间里创建一个新表时或需要磁盘空间时,oracle首先使用空闲的磁盘空间,当没有足够的磁盘空间时,oracle会使用回收站的磁盘空间。

2 删除表 test

3 查看 回收站

SQL> show recyclebin
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME         
---------------- ------------------------------ ------------ -------------------
TEST             BIN$TsRUiy4NTICSiCNF0y9bAQ==$0 TABLE        2010-04-16:22:17:26

在回收站里有 名为test 的表,说明表并没有真正的被删除。

4 使用purge命令:

SQL> purge recyclebin;

回收站已清空。

再次查看回收站:

SQL> show recyclebin

无结果,证明表真正的被删除了。当然,此时也无法进行闪回恢复了。下面进行闪回实验;

SQL> create table t  as select * from emp;---建立实验表 T

表已创建。

SQL> drop table t;--逻辑删除表T

表已删除。

SQL> show recyclebin  --查看回收站
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME         
---------------- ------------------------------ ------------ -------------------
T                BIN$XSAPpdnPQ9uMJh72G0ZCIg==$0 TABLE        2010-04-16:22:40:12

SQL> select object_name,ts_name,space
  2  from user_recyclebin;

OBJECT_NAME                    TS_NAME                             SPACE       
------------------------------ ------------------------------ ----------       
BIN$XSAPpdnPQ9uMJh72G0ZCIg==$0 USERS                                   8       

SQL> --结果显示此表使用的磁盘空间为8个数据块,存放在users 表空间。
SQL> select * from t;--再次查询表T
select * from t
              *
第 1 行出现错误:
ORA-00942: 表或视图不存在

-------使用闪回技术
SQL> flashback table t to before drop;

闪回完成。

SQL> show recyclebin
SQL> --可以看出,回收站里没有T
SQL> select * from t;--再次查询表T

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM
---------- ---------- --------- ---------- -------------- ---------- ----------
    DEPTNO                                                                     
----------                                                                     
      7369 SMITH      CLERK           7902 17-12月-80            800           
        20                                                                     
                                                                               
      7499 ALLEN      SALESMAN        7698 20-2月 -81           1600        300
        30                                                                     
                                                                               
      7521 WARD       SALESMAN        7698 22-2月 -81           1250        500
        30                                                                     
                                                                               

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM
---------- ---------- --------- ---------- -------------- ---------- ----------
    DEPTNO                                                                     
----------                                                                     
      7566 JONES      MANAGER         7839 02-4月 -81           2975           
        20                                                                     
                                                                               
      7654 MARTIN     SALESMAN        7698 28-9月 -81           1250       1400
        30                                                                     
                                                                               
      7698 BLAKE      MANAGER         7839 01-5月 -81           2850           
        30                                                                     
                                                                               

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM
---------- ---------- --------- ---------- -------------- ---------- ----------
    DEPTNO                                                                     
----------                                                                     
      7782 CLARK      MANAGER         7839 09-6月 -81           2450           
        10                                                                     
                                                                               
      7788 SCOTT      ANALYST         7566 19-4月 -87           3000           
        20                                                                     
                                                                               
      7839 KING       PRESIDENT            17-11月-81           5000           
        10                                                                     
                                                                               

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM
---------- ---------- --------- ---------- -------------- ---------- ----------
    DEPTNO                                                                     
----------                                                                     
      7844 TURNER     SALESMAN        7698 08-9月 -81           1500          0
        30                                                                     
                                                                               
      7876 ADAMS      CLERK           7788 23-5月 -87           1100           
        20                                                                     
                                                                               
      7900 JAMES      CLERK           7698 03-12月-81            950           
        30                                                                     
                                                                               

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM
---------- ---------- --------- ---------- -------------- ---------- ----------
    DEPTNO                                                                     
----------                                                                     
      7902 FORD       ANALYST         7566 03-12月-81           3000           
        20                                                                     
                                                                               
      7934 MILLER     CLERK           7782 23-1月 -82           1300           
        10                                                                     
                                                                               

已选择14行。

SQL> drop table t purge;---彻底删除

表已删除。

SQL> show recyclebin---无结果返回
提示:

闪回技术只能保护非系统表空间的表,而且这些表还必须存放在本地管理的表空间里。尽管在一个表被删除时,依赖该表的绝大多数对象也受到回收站的保护,但是位图连接的索引(Bitmap Jion Indexes),引用完整性约束(referential integrity constrains) 等并不受到回收站的保护,一定要记住这一点!

1.jpg

2.jpg

时间: 2024-09-06 21:23:44

如何彻底的删除Oracle表 及 闪回恢复在回收站里的数据的相关文章

闪回的用途与实战(闪回表,闪回删除,闪回重名删除,闪回版本查询)

闪回可以做的操作有如下几种类型:1.当数据错误删除,并且提交时(flashback table)2.当错误删除了一张表drop table(flashback drop)3.通过闪回获取表的历史记录(flashback version query)4.当错误地执行了一个事务,并且提交了(flashback transaction query)5.将整个数据库进行恢复. 使用闪回条件:1.切换到管理员上. 假设开始登录的用户名和密码是MISPS 如果是连接远程的,连接sqlplus的方式是: sq

oracle-为什么用plsql删除Oracle表中的字段,过一段时间怎么几个字段又出来了

问题描述 为什么用plsql删除Oracle表中的字段,过一段时间怎么几个字段又出来了 为什么删除Oracle数据库中某张表的字段,怎么过一会几个字段又出来了呢??? 用的hibernate和spring,, 这个是什么情况 解决方案 会不会是hibernate自动帮你建的啊?

oracle 可以做闪回的操作有哪些

问题描述 请问下ORACLE可以做闪回的操作有哪些? 解决方案 闪回数据库闪回表(一种是删除表,一种是执行了错误的操作)闪回查询

oracle 9i使用闪回查询恢复数据库误删问题_oracle

如果用户误删/更新了数据后,作为用户并没有什么直接的方法来进行恢复,他们必须求助DBA来对数据库进行恢复,到了Oracle9i,这一个难堪局面有所改善.Oracle 9i中提供了一项新的技术手段--闪回查询,用户使用闪回查询可以及时取得误操作前的数据,并可以针对错误进行相应的恢复措施,而这一切都无需DBA干预. 因为一时手贱,生产上的数据被我给delete掉了. 用的是delete语句,然后很迅速的还给commit了 下面这两个语句: ALTER TABLE tablename ENABLE r

浅谈ORACLE 10G 闪回恢复区

oracle|恢复   何为闪回恢复区 Oracle 10g 有一项新功能称为:自动的基于磁盘的备份与恢复( Automatic Disk-Based Backup and Recovery ).实现该功能的基础为本文要讲述的闪回恢复区( Flash Recovery Area ).闪回恢复区是 Oracle 10g 中的新事物.简单的说,闪回恢复区是一块用以存储恢复相关的文件的存储空间.允许用户集中存储所有恢复相关的文件.   闪回恢复区可以放在如下几种存储形式上: l         目录

归档日志物理删除后闪回恢复区空间未释放

连接数据库进去提示ora-00257:archiver error.Connect internal only,until freed. 登录服务器,操作系统验证,登录好久登录不进去 无奈,把oracle服务重启了下,终于登录进去了 查询v$archived_log 里面有2条归档日志记录,但是在磁盘上怎么找都找不到 select * from V$FLASH_RECOVERY_AREA_USAGE;--显示归档日志占用闪回恢复区有98% select sum(percent_space_use

Oracle的闪回恢复区详解

1.什么是闪回恢复区? Oracle 10g 有一项新功能称为:自动的基于磁盘的备份与恢复( Automatic Disk-Based Backup and Recovery ).实现该功能的基础为本文要讲述的闪回恢复区( Flash Recovery Area ).闪回恢复区是 Oracle 10g 中的新事物.简单的说,闪回恢复区是一块用以存储恢复相关的文件的存储空间.允许用户集中存储所有恢复相关的文件. 闪回恢复区可以放在如下几种存储形式上: (1)目录 (2)一个文件系统 (3)自动存储

10g关闭归档/启用闪回恢复区归档

一.关闭归档 1.启动SQL*PLUS以管理身份登录Oracle数据库: SQL> connect / as sysdba 2.关闭数据库实例 SQL> shutdown immediate 3.备份数据库:在对数据库做出任何重要的改变之前,建议备份数据库以免出现任何问题. 4.启动一个新的实例并装载数据库,但不打开数据库: SQL> startup mount 5.禁止自动存档 SQL> alter system archive log stop; 6.禁止存档联机重做日志:转换

oracle10g新特性:闪回恢复区(Flash recovery area)

1.设置闪回恢复区 闪回恢复区主要通过3个初始化参数来设置和管理: · db_recovery_file_dest:指定闪回恢复区的位置. · db_recovery_file_dest_size:指定闪回恢复区的可用空间大小. · db_flashback_retention_target:指定数据库可以回退的时间,单位为分钟,默认1440分钟,也就是一天.当然,实际上可回退的时间还决定于闪回恢复区的大小,因为里面保存了回退所需要的flash log.所以这个参数要和db_recovery_f