Oracle回收站使用详解

回收站,顾名思义,它就是存储被删掉的东西。从原理上来说就是一个数据字典表,放置用户删除(drop)掉的数据库对象信息。用户进行删除操作的对象并没有被数据库删除,仍然会占用空间。除非是由于用户手工进行Purge或者因为存储空间不够而被数据库清掉。数据库有了这样的功能,能够减少很多不必要的麻烦。

如果一个表被删除,那么与该表有关联的对象,例如索引、约束和其他依赖对象都会在前面加bin$$这个前缀。

1、启动和关闭

你可以使用下面的查询语句来查看回收站的当前状态:

SELECT Value FROM V$parameter WHERE Name = 'recyclebin';

如果返回值为“on”表明回收站是启动的,“off”表明是关闭的。

当然,你可以启动或者关闭回收站里的每个会话(session)和系统(system),代码如下:

ALTER SYSTEM SET recyclebin = ON;

ALTER SESSION SET recyclebin = ON;

ALTER SYSTEM SET recyclebin = OFF;

ALTER SESSION SET recyclebin = OFF;

2、获取回收站里的内容

你可以使用下面的任意一个语句来获得回收站中的对象:

SELECT * FROM RECYCLEBIN;

SELECT * FROM USER_RECYCLEBIN;

SELECT * FROM DBA_RECYCLEBIN;

3、还原

可以使用如下语法来还原被删除的对象:

本栏目更多精彩内容:http://www.bianceng.cn/database/Oracle/

view sourceprint?1 FLASHBACK TABLE <<Dropped_Table_Name>> TO BEFORE DROP RENAME TO <<New_Table_Name>>;

备注:这里的RENAME是给删除的对象进行重新命名,是一个可选命令。

4、清空回收站

这里的清空包含两种情况,第一你可以有条件的清空;第二是全部清空。我们先来看看有条件的清空该如何做:

a.清空一个特定的表:

PURGE TABLE <<Table_NAME>>;

b.清空一个特定的索引:

PURGE INDEX <<Index_NAME>>;

c.清空与该表空间有关联的对象:

PURGE TABLESPACE<<Table_NAME>>;

d.清空一个特定用户的表空间对象:

PURGE TABLESPACE<<Table_NAME>> USER <<User_Name>>;

e.清空回收站:

PURGE RECYCLEBIN;

f.当一个表被删除(drop)时就直接从回收站中清空

DROP TABLE <<Table_Name>> PURGE;

Demo

1.启动回收站功能

ALTER SYSTEM SET recyclebin = ON;

2.创建一个DEMO_RECYCLEBIN表

CREATE TABLE DEMO_RECYCLEBIN (COL1 NUMBER);

3.向DEMO_RECYCLEBIN表中插入一条数据

INSERT INTO DEMO_RECYCLEBIN (COL1) VALUES (1); COMMIT;

4.删除(Drop)DEMO_RECYCLEBIN表

DROP TABLE DEMO_RECYCLEBIN;

5.查询

SELECT * FROM USER_RECYCLEBIN;

结果:

6.从回收站中还原DEMO_RECYCLEBIN表

FLASHBACK TABLE DEMO_RECYCLEBIN TO BEFORE DROP;

7.还原后查询

SELECT * FROM DEMO_RECYCLEBIN;

查询结果和删除前是一致的。

8.删除表,并且将其从回收站中清空

DROP TABLE DEMO_RECYCLEBIN PURGE;

时间: 2024-10-06 07:14:53

Oracle回收站使用详解的相关文章

Java连接操作Oracle数据库代码详解_java

废话不多说了,直接给大家贴关键代码了,具体代码如下所示: package com.sp.test; import java.sql.*; import java.util.*; public class Text_lianxi extends Thread { public void run() { try { yunxing(); Thread.sleep(10000); } catch (InterruptedException e) { // TODO 自动生成的 catch 块 e.pr

【体系结构】Oracle数据块详解

Oracle数据块详解 操作系统块是操作系统读写的最小操作单元,也是操作系统文件的属性之一.当创建一个Oracle数据库时,选择一个基于操作系统块的整数倍大小作为Oracle数据库块的大小.Oracle数据库读写操作则是以Oracle块为最小单位,而非操作系统块. 数据库块也称逻辑块或Oracle块,它对应磁盘上一个或多个物理块,它的大小由初始化参数DB_BLOCK_SIZE决定,可以定义数据块为2K.4K.8K.16K.32K甚至更大,默认Oracle块大小是8K.若一旦设置了Oracle数据

php 访问oracle 存储过程实例详解

php 访问oracle 存储过程实例详解 比如我的本地Oracle数据库有一个package,里面有一个存储过程: create or replace package PKG_TRANS_REL is -- Author : test -- Created : -- Purpose : test -- Public type declarations PKG_NAME varchar2(20) := 'PKG_TRANS_REL'; --存储过程,测试用 procedure pro_GC_wi

Oracle SQL*Loader详解(3) 控制文件

控制文件是SQL*Loader里最重要的文件,它是一个文本文件,用来定义数据文件的位置.数据的格 式.以及配置数据加载过程的行为,在sqlldr中以control参数指定控制文件. 在控制文件里配置命令行参数 (OPTIONS) 在上一篇中我们讲过命令行参数可以配置在三个地方,其中一个就是可以使用控制文件的OPTIONS字 句(这也是最常用的方式),如下所示: OPTIONS (DIRECT=true, SILENT=(ERRORS, FEEDBACK) ) 更多的命令行参数,请见上一篇. 配置

Oracle SQL*Loader详解(2) 命令行参数

sqlldr工具 SQL*Loader的客户端工具是sqlldr,在操作系统的命令行下输入sqlldr,后面不接任何参数,将显 示帮助信息如下所示(所有命令行参数的简单描述及其默认值),所以你并不需要对下面的参数死记硬 背,当你忘记它们时,可以通过这个方式快速查询. Valid Keywords: userid -- ORACLE username/password control -- control file name log -- log file name bad -- bad file

Oracle SQL*Loader详解(1) 总览

SQL*Loader原理 SQL*Loader是Oracle提供的用于数据加载的一种工具,它比较适合业务分析类型数据库(数据仓库 ),能处理多种格式的平面文件,批量数据装载比传统的数据插入效率更高.其示意图如下: 控制文件(Control File) (.ctl):用于控制数据导入的行为方式的文件(最重要的文件) 参数文件(可选)(Parameter File) (.par):可以把参数直接写在控制文件里,也可以单独写一个 参数文件 数据文件(Data Files) :放置源数据的平面文件(可以

Oracle Data Pump详解(4) network_link

expdp的network_link 我们知道,expdp默认是导出本地数据库,network_link的作用是导出远程数据库到本地服务器上, 其步骤如下: 术语说明: 源数据库:远程数据库 目标数据库:本地数据库(即expdp客户端所在的服务器) 1. 在目标数据库端添加源数据库的连接字符串至tnsnames.ora: source_db = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.

Oracle触发器trigger详解_oracle

触发器相关概念及语法 概述 本篇博文中主要探讨以下内容: 什么是触发器 触发器的应用场景 触发器的语法 触发器的类型 案例 数据: 触发器的概念和第一个触发器 数据库触发器是一个与表相关联的,存储的PL/SQL 语句. 每当一个特定的数据操作语句(insert update delete)在指定的表上发出时,Oracle自动执行触发器中定义的语句序列. 举个简单的例子: 当员工表中新增一条记录后,自动打印"成功插入新员工" create or replace trigger inser

Oracle用户profile详解

一.profile功能       oracle系统中的profile是用来对用户所能使用的数据库资源进行限制的.         二.profile参数详解                   (1)查看数据库资源限制参数                SQL> select * from dba_profiles; PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT ----------