`
yyys8517750
  • 浏览: 143369 次
  • 性别: Icon_minigender_1
  • 来自: 岳阳
社区版块
存档分类
最新评论

Oracle10g 回收站总结大全

 
阅读更多
Flashback DROP
Flashback Drop 是从Oracle 10g 开始出现的, 用于恢复用户误删除的对象(包括表,索引等), 这个技术依赖于Tablespace Recycle Bin(表空间回收站),这个功能和windows的回收站非常类似。
Flashback 不支持sys用户. system表空间下的对象,也不能从回收站里拿到。故使用SYS 或者SYSTEM用户登陆时, show recyclebin 为空。


#################################################################################################################

drop后的表被放在回收站(user_recyclebin)里,而不是直接删除掉。这样,回收站里的表信息就可以被恢复,或彻底清除。
1.通过查询回收站user_recyclebin获取被删除的表信息,然后使用语句

flashback table <user_recyclebin.object_name or user_recyclebin.original_name> to before drop [rename to <new_table_name>];
将回收站里的表恢复为原名称或指定新名称,表中数据不会丢失。
若要彻底删除表,则使用语句:drop table <table_name> purge;
2.清除回收站里的信息
清除指定表:purge table <table_name>;
清除当前用户的回收站:purge recyclebin;
清除所有用户的回收站:purge dba_recyclebin;

 

#################################################################################################################

1. Tablespace Recycle Bin
从Oracle 10g 开始, 每个表空间都会有一个叫作回收站的逻辑区域,当用户执行drop命令时, 被删除的表和表的关联对象( 包括索引, 约束,触发器,LOB段,LOB index 段) 不会被物理删除, 这些对象先转移到回收站中,这就给用户提供了一个恢复的可能。
初始化参数recyclebin 用于控制是否启用recyclebin功能,缺省是ON, 可以使用OFF关闭。
SQL> show parameter recycle
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
buffer_pool_recycle string
db_recycle_cache_size big integer 0
recyclebin string on
禁用该功能:
SQL> alter system set recyclebin=off;
SQL> alter system set recyclebin=on;
SQL> alter session set recyclebin=off;
SQL> alter session set recyclebin=on;
禁用后删除的对象将直接删除,不会写到Recycle中,当然在删除时,指定purge 参数,表也将直接删除,不会写到recyclebin中。
SQL> drop table name purge;
查看recyclebin中的对象列表:
SQL> select * from A;
ID
----------
1
2
3
SQL> drop table A;
表已删除。
SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ----------------------------- ------------ -------------------
A BIN$RWXQQcTPRde0ws4h9ewJcg==$0 TABLE 2009-10-15:12:44:33
查看recyclebin中对象:
SQL> select original_name,object_name from recyclebin;
ORIGINAL_NAME OBJECT_NAME
-------------------------------- ------------------------------
A BIN$RWXQQcTPRde0ws4h9ewJcg==$0
查看recyblebin对象里的内容:
SQL> select * from "BIN$RWXQQcTPRde0ws4h9ewJcg==$0";
ID
----------
1
2
3
表空间的Recycle Bin 区域只是一个逻辑区域,而不是从表空间上物理的划出一块区域固定用于回收站,因此Recycle Bin是和普通对象共用表空间的存储区域,或者说是Recycle Bin的对象要和普通对象抢夺存储空间。当发生空间不够时,Oracle会按照先入先出的顺序覆盖Recycle Bin中的对象。也可以手动的删除Recycle Bin占用的空间。
1). Purge tablespace tablespace_name : 用于清空表空间的Recycle Bin
2). Purge tablespace tablespace_name user user_name: 清空指定表空间的Recycle Bin中指定用户的对象
3). Purge recyclebin: 删除当前用户的Recycle Bin中的对象
4). Purge dba_recyclebin: 删除所有用户的Recycle Bin中的对象,该命令要sysdba权限
5). Drop table table_name purge: 删除对象并且不放在Recycle Bin中,即永久的删除,不能用Flashback恢复。
6). Purge index recycle_bin_object_name: 当想释放Recycle bin的空间,又想能恢复表时,可以通过释放该对象的index所占用的空间来缓解空间压力。 因为索引是可以重建的。
2. Flashback Drop 实例操作
SQL> select original_name,object_name from recyclebin;
ORIGINAL_NAME OBJECT_NAME
-------------------------------- ------------------------------
A BIN$RWXQQcTPRde0ws4h9ewJcg==$0
SQL> flashback table a to before drop;
闪回完成。
SQL> select * from a;
ID
----------
1
2
3
当我们删除表A后,在新建表A,这时在恢复的时候就会报错,此时我们在闪回时,对表重命名就可以了:
SQL> drop table a;
表已删除。
SQL> create table a
2 (id number(1));
表已创建。
SQL> flashback table a to before drop ;
flashback table a to before drop
*
第 1 行出现错误:
ORA-38312: 原始名称已被现有对象使用
SQL> flashback table a to before drop rename to B;
闪回完成。
SQL> select * from B;
ID
----------
1
2
3
当我们删除表A,在新建表A,在删除它,这是在Recycle Bin中就会有2个相同的表明,此时恢复我们就要指定object_name才行.
SQL> select * from B;
ID
----------
1
2
3
SQL> drop table B;
表已删除。
SQL> create table B(name varchar(20));
表已创建。
SQL> drop table B;
表已删除。
SQL> select original_name,object_name from recyclebin;
ORIGINAL_NAME OBJECT_NAME
-------------------------------- ------------------------------
B BIN$vYuv+g9fTi2exYP9X2048Q==$0
B BIN$geQ9+NekSjuRvzG+TqDVWw==$0
SQL> flashback table "BIN$vYuv+g9fTi2exYP9X2048Q==$0" to before drop;
闪回完成。
SQL> select * from B;
ID
----------
1
2
3
一旦完成闪回恢复,Recycle Bin中的对象就消失了. Flashback Drop 需要注意的地方:
1). 只能用于非系统表空间和本地管理的表空间
2). 对象的参考约束不会被恢复,指向该对象的外键约束需要重建。
3). 对象能否恢复成功,取决与对象空间是否被覆盖重用。
4). 当删除表时,信赖于该表的物化视图也会同时删除,但是由于物化视图并不会被放入recycle bin,因此当你执行flashback table to before drop 时,也不能恢复依赖其的物化视图,需要dba 手工介入重新创建。
5). 对于Recycle Bin中的对象,只支持查询.

 

 

 

分享到:
评论

相关推荐

    Oracle从回收站恢复删除的表

    在Oracle 10g及后续版本中,为了提供更高效的数据管理能力,引入了一个非常实用的功能——**回收站**(Recycle Bin)。这一特性使得数据库管理员能够在不慎删除表等数据库对象后,能够轻松地从回收站中恢复这些对象,...

    oracle 10G 实验手册

    《Oracle 10G 实验手册》:深入解析Oracle闪回功能 Oracle 10G引入了一系列创新功能,其中最为显著的是闪回技术(Flashback)。这一特性在Oracle 9i的基础上进行了重大改进,极大地简化了数据库管理员(DBA)的工作...

    Oracle11g从入门到精通2

    10.6.3 闪回回收站 10.6.4 闪回查询 10.6.5 闪回版本查询 10.6.6 闪回事务查询 10.7 几种备份与恢复方法的比较 第11章 控制文件及日志文件的管理 11.1 控制文件 11.1.1 控制文件概述 11.1.2 多路...

    oracle 10g的闪回技术总结.doc

    ### Oracle 10g 闪回技术总结 Oracle 10g 引入了一系列闪回技术,极大地增强了数据库管理和恢复的能力。本文将详细介绍 Oracle 10g 的三种闪回技术:全库闪回、表被 DROP 后的闪回以及表被 DML 操作之后的闪回,并...

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

    当表被删除时,Oracle 10g 并不会立即将表彻底删除,而是将其重命名,并放置在一个名为“回收站”的特殊逻辑容器中。被删除的表会保留其原有的结构、数据以及相关联的索引和触发器等对象。 - **表的重命名**:删除...

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

    Oracle数据库自10g版本开始引入了回收站功能(Recycle Bin),这一特性为数据库管理员提供了一种简单而强大的方式来恢复误删的数据对象。通过回收站功能,用户可以在不使用备份的情况下恢复已删除的表、索引等数据库...

    Oracle Database10g

    - 版本比较表总结了Oracle 10g与其他版本的主要区别。 - **重要特性**:提供了版本间功能差异的概览,有助于决策升级策略。 **1.32 新特性回顾** - 新特性回顾部分总结了Oracle 10g的所有新特性。 - **重要特性**:...

    张浩Oracle11gRAC数据库巡检手册

    ### 张浩Oracle11gRAC数据库巡检手册知识点详解 #### 一、Oracle11gRAC数据库巡检背景介绍 Oracle11gRAC(Real Application Clusters)是一种高可用性解决方案,旨在通过在多台服务器上运行一个共享数据库来提高...

    oracle 10g flashback(数据恢复)

    需要注意的是,在 Oracle 中,删除的表并不会立即从数据库中消失,而是会被移动到回收站(Recycle Bin),因此使用 **Flashback Drop** 命令可以在一定时间内恢复这些被删除的对象。 #### Oracle Flashback Version...

    oracle 误删除表恢复

    Oracle自10g版本起引入了回收站(Recycle Bin)的概念,这一特性允许用户恢复已删除的对象,包括表、索引等。通过回收站机制,即使一个表被意外删除,也可以轻松将其恢复到删除前的状态。 #### 回收站的工作原理 当...

    Oracle 10g闪回技术在维护“军卫一号”信息系统中的应用.pdf

    总结来说,Oracle 10g的闪回技术在“军卫一号”信息系统中的应用,极大地提升了数据管理和维护的效率,增强了系统的灾难恢复能力,同时也为医院信息系统的安全运行提供了有力保障。对于医院信息系统维护人员来说,...

    Oralce 10g install linux3

    - 使用Oracle 10g的回收站功能,可以轻松地找到被删除的表并将其恢复到删除前的状态。 - 在实际操作过程中,可以通过查询回收站中的表,选择正确的版本进行恢复。 - **案例二:事务级的回滚操作** - 如果某个...

    Oracle Database 10g OCP Certification All-in-One Exam Guide

    ### Oracle Database 10g OCP 认证全合一考试指南 #### 一、基本概念与背景 **Oracle Database 10g OCP 认证全合一考试指南** 是一本全面覆盖 Oracle Database 10g OCP 认证考试内容的专业书籍。本书不仅包括了 **...

    Oracle10g DBA 两日速成自学材料9

    ### Oracle10g DBA 监控和调整数据库知识点总结 #### 1. 主动监控数据库 - **警报机制**:警报是用于主动监控数据库的重要工具,当某些量度(如空间使用率、CPU利用率等)超过预设的阈值时,系统会触发警报,通知...

    完美卸载oracle11g(笔者亲试)

    - 清空回收站以确保所有被删除的文件都被永久清除。 ##### 6. 重启计算机 - 完成上述步骤后,重启计算机,以确保所有的更改生效。 #### 四、验证卸载结果 - 在卸载完成后,再次检查控制面板、注册表以及文件系统...

    Oracle 10g数据库管理、应用与开发标准教程 课后习题答案(全)包括16章

    ### Oracle 10g 数据库管理、应用与开发标准教程知识点总结 #### 第二章:Oracle数据库物理与逻辑存储结构及实例组件 ##### 物理存储结构 - **数据文件**:存储数据库中的数据。 - **日志文件**:记录数据库的所有...

Global site tag (gtag.js) - Google Analytics