`

浅谈Oracle闪回删除表限制

阅读更多


Oracle 10g开始提供了类似windows系统的回收站功能,用户在删除表的时候会不是直接删除,而是移动到回收站中,如果需要从回收站中取回原来的表,可以使用闪回删除表的特性,迅速的找回被删除的表,而不需要从备份中导入原有的表!但这个回收站功能也是有前提的,不是在任何情况下都可以使用闪回删除表特性,总结下,在10g中,下面几种场景表不能flashback删除,至于11g是否有改进,感兴趣的朋友可以参照本文的方法进行测试下!顺带说下,回收站采取fifo,先进先出的机制!例如在回收站有两张同样名称的表,闪回删除的时候根据删除时间的先后顺序来觉得先闪回哪张表,因而闪回删除表命令提供了rename to选项;

1:回收站功能未开启(这个就不用测试了)
2:表的存储表空间不能为system
3: 表被删除的时候不能带purge参数
4:存在空间压力的时候
5:表上面启用了细粒度审计
6:表启用了VPD

一:测试表空间存储为system的闪回删除
1.1 创建测试用户,并赋予相应的权限,开启数据库的回收站功能

[oracle@dg53 ~]$ sqlplus /nolog 
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Feb 16 16:48:44 2012 
Copyright (c) 1982, 2005, Oracle.  All rights reserved. 

SQL> conn /as sysdba 
Connected. 

SQL> create user test identified by "123456" default tablespace users account unlock; 
User created. 

SQL> grant resource,connect to test; 
Grant succeeded. 

SQL> show parameter recyclebin; 

NAME                                 TYPE        VALUE 
------------------------------------ ----------- ------------------------------ 
recyclebin                           string      on
1.2 使用test用户新建2张表,一张存储在system表空间

Connected. 
SQL> create table drop_1 (a number) tablespace system; 
Table created. 

SQL> insert into drop_1 values (1); 
1 row created. 

SQL> commit; 
Commit complete. 

SQL> create table drop_2 as select * from drop_1; 
Table created. 

SQL> select * from tab; 

TNAME                          TABTYPE  CLUSTERID 
------------------------------ ------- ---------- 
DROP_1                         TABLE
DROP_2                         TABLE
1.3 分别删除2张表,不带purge参数,查看回收站只存在drop_2表,该表的存储表空间为users,由此证明表空间存储为system的表是不可以被闪回删除的

SQL> drop table drop_1; 
Table dropped. 

SQL> drop table drop_2; 
Table dropped. 

SQL> show recyclebin; 
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ ------------------- 
DROP_2           BIN$uRD2vL3ZVNjgQKjANQEaNg==$0 TABLE        2012-02-16:16:53:36 

SQL> select object_name,original_name from user_recyclebin; 

OBJECT_NAME                    ORIGINAL_NAME 
------------------------------ -------------------------------- 
BIN$uRD2vL3ZVNjgQKjANQEaNg==$0 DROP_2 

SQL> flashback table drop_2 to before drop; 
Flashback complete.
1.4 测试使用sys用户删除drop_2表,是否可以成功闪回删除

SQL> conn /as sysdba 
Connected. 
SQL> show user; 
USER is "SYS"
SQL> drop table test.drop_2; 
Table dropped. 

SQL> conn test/123456 
Connected. 
SQL> select * from tab; 

TNAME                          TABTYPE  CLUSTERID 
------------------------------ ------- ---------- 
BIN$uRImQA9UYD7gQKjANQEdrg==$0 TABLE

SQL> show recyclebin; 
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ ------------------- 
DROP_2           BIN$uRImQA9UYD7gQKjANQEdrg==$0 TABLE        2012-02-16:17:06:54 

SQL> flashback table drop_2 to before drop; 
Flashback complete
  • 大小: 44.2 KB
分享到:
评论

相关推荐

    oracle 闪回已删除的表

    ### Oracle 闪回已删除的表 在Oracle数据库管理中,**闪回删除的表**是一项非常实用的功能,它允许数据库管理员(DBA)恢复被误删的表及其所有数据。这一特性最早出现在Oracle 9i版本中,但在Oracle Database 10g中...

    利用oracle闪回技术恢复误删除的表或误更新的记录.pdf

    为了使 Oracle 数据库从任何逻辑误操作中迅速地恢复...进行了全面扩展,提供了闪回数据库、闪回删除、闪回表、闪回事物及闪回版本查询等功能,本 文将重点说闪回删除、闪回表的使用。(本文使用oracle 版本10.2.0.3.0)

    oracle闪回技术

    Oracle 闪回技术是Oracle...通过闪回删除、闪回查询和闪回表数据,用户可以在不影响数据库正常运行的情况下,实现对数据的精细控制和恢复。然而,使用这些功能时也应谨慎,确保对潜在风险和资源消耗有充分的认识。

    彻底删除和闪回oracle表

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

    ORACLE闪回技术恢复指南

    **闪回删除表**是Oracle 10g引入的新特性,该特性使得用户可以在不永久删除表的情况下将其移动到回收站中。这一特性要求首先开启回收站功能。 **开启回收站功能命令**: ```sql SHOW PARAMETER RECYCLEBIN; ``` ...

    Oracle闪回技术详解

    Oracle提供了四种可供使用的闪回技术:闪回查询、闪回删除、闪回归档、闪回数据库。每种闪回技术都有不同的底层体系结构支撑,但其实这四种不同的闪回技术部分功能是有重叠的,使用时也需要根据实际场景合理选择最...

    利用oracle 闪回技术恢复数据

    5. **闪回删除(Flashback Drop)**:当误删了表或者分区时,可以通过`FLASHBACK TABLE`命令将其恢复回来,前提是没有执行过`PURGE`操作。 6. **闪回数据归档(Flashback Data Archive)**:这是对历史数据进行长期...

    oracle 闪回oracle 闪回oracle 闪回oracle 闪回

    3. **闪回删除(Flashback Drop)**:允许管理员恢复被DROP操作删除的对象,如表、索引等,到它们被删除前的状态。 4. **闪回版本查询(Flashback Versions Query)**:提供了一种查询方式,可以看到特定行在不同...

    oracle闪回数据库

    此外,通过Oracle企业管理器(EM)可以更方便地配置和监控闪回数据库,包括设置恢复区的磁盘配额,跟踪闪回日志的使用情况,以及实施最佳实践,比如定期备份归档日志并删除不再需要的备份文件。 总之,Oracle闪回...

    oracle回闪表中的数据

    【Oracle 回闪表数据详解】 Oracle数据库的回闪技术是一项强大的功能,它允许数据库管理员(DBA)恢复数据到过去的某个特定时间点,而无需完全恢复整个数据库。在Oracle 10g及更高版本中,回闪表是这项技术的一个...

    Oracle闪回特性

    Oracle闪回特性是Oracle数据库提供的一种强大的数据恢复和时间旅行功能,它允许用户查看和恢复到数据库的某个历史状态,而无需依赖传统的备份和恢复过程。这一特性在故障排查、误操作恢复以及历史数据分析等方面有着...

    oracle_闪回15分钟前的数据操作写法

    Oracle闪回技术主要包括以下几种类型:闪回查询(Flashback Query)、闪回表(Flashback Table)、闪回事务查询(Flashback Transaction Query)、闪回数据库(Flashback Database)和闪回删除(Flashback Drop)。...

    Oracle 闪回,实验加解释

    在Oracle数据库中,闪回技术是一项重要的数据恢复工具,它能够帮助用户在一定的时间范围内恢复误删除或修改的数据。为了支持闪回功能,Oracle引入了一个特殊的区域——闪回恢复区。该区域主要用于存储闪回所需的日志...

    Oracle 误删除后的闪回方法

    "Oracle 误删除后的闪回方法"是解决这类问题的关键技术。Oracle提供了多种强大的工具和功能,帮助用户在数据丢失后迅速恢复,其中最常用的就是闪回(Flashback)技术。以下将详细介绍Oracle中的闪回恢复机制及其相关...

    浅谈Oracle11g的闪回技术.pdf

    闪回丢弃(Flashback Drop)类似于文件系统的回收站,可以恢复意外删除的表或索引。这一功能简化了误删除后的恢复过程,减少了对备份的依赖。然而,值得注意的是,它无法恢复由 `TRUNCATE` 命令删除的数据,也不能...

    ORACLE数据库回闪

    Oracle数据库回闪是一种强大的功能,它允许用户恢复到数据库的某个历史状态,从而撤销错误的操作,如意外删除重要数据。这一特性是Oracle数据库系统的核心优势之一,尤其在数据安全性要求极高的环境中,回闪功能显得...

    利用 Oracle 系统触发器防止误删除表操作

    ### 利用Oracle系统触发器防止误删除表操作 #### 背景介绍 在企业级应用中,数据库的安全性和稳定性至关重要。Oracle作为一款广泛使用的数据库管理系统,提供了丰富的功能来保障数据安全。其中,系统触发器是Oracle...

    oracle定时删除表空间的数据并释放表空间

    本文将深入探讨如何在Oracle环境中实现定时删除表空间的数据并释放空间,主要涵盖以下几个关键知识点: 1. **Oracle 表空间(Tablespaces)**:表空间是Oracle数据库中存储数据的基本单位,它由一个或多个数据文件...

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

    除了闪回表之外,Oracle还提供了闪回整个数据库的功能,即使数据库回到过去的某个状态。 **2. 具体步骤** - **启用闪回**:`ALTER DATABASE FLASHBACK ON;` - **闪回至特定SCN**:`FLASHBACK DATABASE TO SCN SCNNO...

Global site tag (gtag.js) - Google Analytics