`
wangqj
  • 浏览: 13970 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

RecycleBin

阅读更多
RecycleBin
出自家园之一亩三分地儿
跳转到: 导航, 搜索
1. 启用/禁用RecycleBin:

通过设置初始化参数recyclebin,可以控制是否启用回收站功能,默认是开启的。
�]2q�Y�E/_*o9V�|/t�\0SQL> alter system set recyclebin=off;

系统已更改。

SQL> alter system set recyclebin=on;

系统已更改。

SQL> alter session set recyclebin=off;

会话已更改。

SQL> alter session set recyclebin=on;

会话已更改。

2. 查看回收站:

SQL> SHOW recyclebin;

或者

SQL>select * from recyclebin;

除非拥有sysdba权限,否则每个用户只能看到属于自己的对象。所以,对于用户来说,好像每个人都拥有自己的回收站。即使用户有删除其他schema对象的权限,也只能在recyclebin中看到属于自己的对象。

3. 回收站对象的操作:

当一个表被删除并移动到"回收站"中,它的名字要进行一些转换。这样的目的是为了避免同类对象名称的重复。(这一点和Windows操作系统的回收站不同,Windows中的回收站经过了特殊的处理,操作系统文件可以重名。)转换后的名字格式如下:

BIN$unique_id$version其中BIN代表RecycleBin,unique_id是数据库中该对象的唯一标志,26个字符长度version表示该对象的版本号。

注意,以下几种drop不会将相关对象放进RecycleBin:

drop tablespace:会将RecycleBin中所有属于该tablespace的对象清除
drop user:会将RecycleBin中所有属于该用户的对象清除
drop cluster:会将RecycleBin中所有属于该cluster的成员对象清除
drop type:会将RecycleBin中所有依赖该type的对象清除

l 已经放到回收站里的表是不能用drop命令删除的(注意对象名字上的双引号):
SQL> DROP table "BIN$V3f/oYUITrCEF2cotS5JaA==$0" ;

DROP table "BIN$V3f/oYUITrCEF2cotS5JaA==$0"


ERROR at line 1:

ORA-38301: can not perform. DDL/DML over objects in Recycle Bin

如果要清掉该对象,使用purge命令:
SQL> PURGE table "BIN$V3f/oYUITrCEF2cotS5JaA==$0" ;

Table purged.

l 如果直接清空所有的Recycle Bin中的对象:
SQL> PURGE RECYCLEBIN;

Recyclebin purged.

Purge recyclebin可以清除执行该命令的用户所能看到的所有recyclebin对象。也就是普通用户能清除属于自己的对象,而sysdba用户则能清除所有recyclebin中的对象。

l 恢复表,用回闪表的功能:
SQL> FLASHBACK TABLE table_name TO BEFORE DROP;

Flashback complete.

默认的恢复是第一个被删除的表。如果要恢复指定的表,可以在FLASHBACK TABLE后面加上指定的RECYCLEBIN参数指定其他的名字:

语句FLASHBACK TABLE [已删除TABLE名|"RECYCLEBIN中的名字"] TO BEFORE DROP;

但当你在RECYCLEBIN内有2张相同名字的表时候,只有通过"RECYCLEBIN中的名字"来闪回指定的表,用上面方法只闪回第一个被删除的同名表。

l Purge tablespace tablespace_name可以清除RecycleBin属于指定tablespace的所有对象。ITPUB个人空间:Z�q�S�N!m*[
SQL> purge tablespace users;

表空间已清除。

Purge tablespace tablespace_name user user_name则可以清除Recycle中属于指定tablespace和指定user的所有对象。
/I7|%a,m�U�r�e6I�B0SQL> purge tablespace users user ning;

表空间已清除。

l 清除表时,同时也会清除依赖这张表的约束,如索引。可以指定只清除表相应的约束,如:PURGE INDEX IDX_TEST。

表上的对象如索引、触发器在表被闪回后是不会被同时闪回的,而是保持了在回收站中名字。一些依赖这张表的代码对象如视图、存储过程在表被删除后会失效,在表被闪回后不会被自动重新编译,而要手工重新编译他们。相关的信息被保存在视图USER_RECYCLE中。可以用以下语句来获得这些索引、触发器对象的原有名称:
1 SQL> SELECT OBJECT_NAME, ORIGINAL_NAME, TYPE

2 FROM USER_RECYCLEBINITPUB个人空间7p(d$G�[�l;`�u
 3 WHERE BASE_OBJECT = (SELECT BASE_OBJECT FROM USER_RECYCLEBIN
�F�?2e j�v }�j0  4 WHERE ORIGINAL_NAME = 'ABC')ITPUB个人空间�R b E�U0h�I
  5 AND ORIGINAL_NAME != 'ABC';ITPUB个人空间 t:l�c�B#G G8L�E�L
  OBJECT_NAME ORIGINAL_N TYPE
�Z�q1x r�~0  ------------------------------ ---------- --------
�g6A3N�a'V)R�e/L0  BIN$1++ilvsQQ7mfPh2pvont5A==$0 IDX_TEST INDEX

可以用以下方式来恢复索引:

SQL> ALTER INDEX " BIN$1++ilvsQQ7mfPh2pvont5A==$0" RENAME TO IDX_TEST;

  一个例外就是位图索引被删除后是不会被保存在回收站中的,也无法从上述视图中查到,需要用其他方式来恢复。
分享到:
评论

相关推荐

    Oracle 闪回特性 FLASHBACK & RECYCLEBIN

    Oracle 闪回特性 FLASHBACK & RECYCLEBIN Flashback 系列是 Oracle 数据库中的一组功能强大且实用的闪回机制,旨在帮助数据库管理员和开发者快速恢复数据库中的各种对象,包括表、数据、事务等。Flashback 系列的...

    matlab开发-RecycleBin

    在MATLAB开发环境中,RecycleBin是一个特殊的功能模块,它为用户提供了一种类似于操作系统中回收站的机制,允许用户安全地删除和恢复文件。在这个"matlab开发-RecycleBin"项目中,我们有两个主要的文件:`trash.m`和...

    AD RecycleBin.7z

    标题中的"AD RecycleBin.7z"是一个与Windows Server活动目录(Active Directory,简称AD)相关的工具,它专门用于恢复被意外删除的用户、用户组以及计算机对象。这个工具的功能在于提供一个“回收站”机制,因为默认...

    RecycleBin_src.zip_回收站

    标题中的"RecycleBin_src.zip_回收站"表明这是一个与操作系统中的回收站功能相关的源代码压缩包。描述中提到的“获得系统内回收站的资源,并可以操作”意味着这个项目可能包含了实现对回收站进行读取和管理功能的...

    Docklets-RecycleBin

    在本例中,"Docklets-RecycleBin" 是一个特别针对 RocketDock 和 RK 这类模仿苹果 dock 效果的应用程序。RocketDock 是一款流行于Windows系统中的软件,它为用户提供了一个类似Mac OS X的动态图标条,用户可以通过这...

    (0115)-iOS/iPhone/iPAD/iPod源代码-手势交互(Gesture)-Drag And Drop RecycleBin

    本项目“(0115)-iOS/iPhone/iPAD/iPod源代码-手势交互(Gesture)-Drag And Drop RecycleBin”专注于实现一个具有拖放功能的文件回收站,让用户能够通过简单的手势操作来删除图片。以下是关于这个项目的详细...

    Oracle 10G中的回收站

    USER_recyclebin显示当前用户回收站中的对象信息,而DBA_recyclebin则提供了所有用户回收站对象的全局视图。这些视图包含了对象的原始名称、在回收站中的名称、操作类型、对象类型、表空间名、创建和删除时间以及...

    RECYCLEBIN_for_Linux:RECYCLEBIN_for_Linux

    RBIN is a software which acts as a RECYCLEBIN" to delete and restore the files in Linux. Restores the selected file/directory to its original location. And deletes the files perminantly whose ...

    书签RecycleBin「Bookmark RecycleBin」-crx插件

    收藏夹RecycleBin可以帮助您恢复它们。 您只需要设置回收站文件夹。 *当您删除书签时,它们将被移到回收站。 *当您删除回收站中的书签时,它们将真正消失。 *当您删除回收站时,它将为空。 支持语言:English,中文 ...

    Bookmark RecycleBin-crx插件

    语言:English,中文 (繁體) ...收藏夹RecycleBin可以帮助您恢复它们。 您只需要设置回收站文件夹。 *当您删除书签时,它们将被移到回收站。 *当您删除回收站中的书签时,它们将真正消失。 *当您删除回收站时,它将为空。

    关于oracle的Recycle Bin回收站

    当用户 drop table 时,实际上只是将其重命名,并将 table 以及相关联的对象如 index、constraint 等放到回收站(RecycleBin)中。后续如果发现 drop 错了 table,可以使用 flashback table 命令将回收站中的 table ...

    ORACLE10gNEWFEATURE

    - `RECYCLEBIN` 是一个公共同义词,指向 `USER_RECYCLEBIN`,用户可以直接通过 `SELECT * FROM RECYCLEBIN` 来查看自己的回收站内容。 - 使用 `DBA_OBJECTS` 视图可以查看回收站中对象的详细信息,如 `SELECT * ...

    关于oracle10供了类似操作系统中的回收站功能

    因此,如果你确实希望彻底删除回收站中的对象,应该使用 `PURGE RECYCLEBIN` 命令。 启用或禁用回收站功能可通过修改初始化参数 `recyclebin` 完成。默认情况下,回收站是开启的。你可以使用以下语句来切换其状态:...

    Android中ListView视图的回收数据机制.pdf

    为了解决这个问题,Android引入了RecycleBin机制,有效地管理并复用ListView的视图,提高性能和用户体验。 **1. RecycleBin机制详解** RecycleBin是ListView内部的一个关键机制,它的工作原理是通过缓存已不显示在...

    用好Oracle垃圾表.pdf

    Oracle数据库中的“垃圾表”(Garbage Tables)是指在Oracle 10g及以后版本中引入的一种机制,称为回收站(Recyclebin)。这个机制在数据表被删除时,并不会立即真正地删除,而是将其移动到回收站中,类似于Windows...

    oracle10g回收站研究

    FROM user_recyclebin; ``` 对于全局视图,可以查看所有用户的回收站内容: ```sql SELECT owner, original_name, object_name, ts_name, droptime FROM dba_recyclebin; ``` **开启/关闭回收站功能** 开启回收站...

    oracle新手入门指导之六—ORACLE回收站详解.txt

    如果想要查询特定的回收站信息,例如查看名为`RECYCLEBIN`的对象类型和名称,可以使用如下SQL语句: ```sql SQL> select object_name, object_type from dba_objects where object_name='RECYCLEBIN'; ``` ####...

    Android中ListView的工作原理.pdf

    - fillActiveViews()方法在ListView中起到重要作用,它填充并激活RecycleBin中的View,这些View可以在后续滚动时复用,提高了性能。 - 在ListView的布局过程中,由于onMeasure()和onLayout()可能被调用多次,...

    彻底删除和闪回oracle表

    Oracle数据库中的删除操作并不像我们通常理解的那样立即清除数据,而是将被删除的对象移动到回收站(Recyclebin)中。回收站是Oracle提供的一种安全机制,它允许用户在误删数据后有机会进行恢复,这也就是所谓的“闪...

Global site tag (gtag.js) - Google Analytics