Oracle 如何释放数据库空间

标签: oracle 释放 数据库 | 发表时间:2014-07-16 22:23 | 作者:allwit
出处:http://www.iteye.com

        当需要释放数据库空间的时候,通常的方案会用有truncate、delete、drop/re-creating等处理。其中truncate 后会立即释放,并且不能回滚;但delete不能立即释放数据库空间,还会产生archive log。下面就简单介绍一下:

 

    如: Truncate table xxxx; 我们可以直接去查user_segments对应table的bytes就变小,数据库空间释放,并且不能回滚。用Truncate去删除记录比drop表再创建表效率更高。

 

Use the  TRUNCATE statement to remove all rows from a table or cluster. By default, Oracle Database also deallocates all space used by the removed rows except that specified by the  MINEXTENTS storage parameter and sets the  NEXT storage parameter to the size of the last extent removed from the segment by the truncation process.

Removing rows with the  TRUNCATE statement can be more efficient than dropping and re-creating a table. Dropping and re-creating a table invalidates dependent objects of the table, requires you to regrant object privileges on the table, and requires you to re-create the indexes, integrity constraints, and triggers on the table and respecify its storage parameters. Truncating has none of these effects.

 

      Delete操作后,不能立即释放数据库空间,并且还会产生archive log(查看user_segments大小没有变化),需要做其他操作。如Oracle 10g, 11可以用下面操作来释放数据库空间。

      alter table table_name shrink space cascade;

      如果报ora-10636 row movement is not enabled,先执行下面语句:

      alter table table_name enable row movement;

 

 

 

(由于是个人的一些理解,主要是总结一下,如有不对,欢迎指正)



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [oracle 释放 数据库] 推荐:

Oracle 如何释放数据库空间

- - 数据库 - ITeye博客
        当需要释放数据库空间的时候,通常的方案会用有truncate、delete、drop/re-creating等处理. 其中truncate 后会立即释放,并且不能回滚;但delete不能立即释放数据库空间,还会产生archive log.     如: Truncate table xxxx; 我们可以直接去查user_segments对应table的bytes就变小,数据库空间释放,并且不能回滚.

Oracle 发布 NoSQL 数据库

- 冷月 - 博客园新闻频道
  Oracle 作为全球最大的关系型数据库提供商,在其产品链条中,也加入了 NoSQL 数据库这一环,而且这个新的数据库名字很霸气,就叫 NoSQL Database,想起了当年新浪微博更换 weibo.com 域名之时的一个笑话:. 原来有三家人做面包,张三家的面包叫三张牌面包,李四家的牌子叫李四牌面包,王五家出品的是王五牌面包,而突然有一天,张三家的面包改名了,叫面包牌面包.

Oracle数据库备份

- - Oracle - 数据库 - ITeye博客
(一)、导出/导入(EXPORT/IMPORT).   EXPORT/IMPORT是用来将ORACLE中数据移出/移入数据库.   1、EXPORT将数据库中数据备份成一个二进制系统文件称为“导出转储文件”(EXPORT. DUMP FILE),并将重新生成数据库写入文件中.   a.用户模式:导出用户所有对象以及对象中的数据;.

Oracle数据库资源管理

- - 技术改变世界 创新驱动中国 - 《程序员》官网
一般来说,Oracle数据库都属于中大型的系统,这类系统的用户会话(Session),小则一两百,多则上千,这些用户会话要求Oracle数据库执行的任何指令都需要耗费系统资源,而系统资源毕竟是宝贵且有限的,一旦突然涌进大量的用户会话,对于有限的资源可能会略显不足. 但这些会话必定有轻重缓急之分,对于重要且紧急的用户会话需求理当获得多一点的系统资源,对于一些不重要或不紧急的用户会话,则可以使用较少的系统资源慢慢处理.

Oracle 数据库导入导出

- - CSDN博客推荐文章
使用 exp/imp 导入导出. 开始exp/imp之前, 有以下几点需要注意:. 1)此部分以 oracle 10g为例. 2)exp, imp 是操作系统下一个可执行的文件,存放在/ORACLE_HOME/bin目录下. 所以之间cmd 命令模式下执行就行了. (不需要先连接进sqlplus).

[Oracle] 数据库安全之 - Vault

- - CSDN博客推荐文章
Oracle用了整整一本书来阐述Valut,有兴趣的童鞋可以参考http://docs.oracle.com/cd/E11882_01/server.112/e23090/toc.htm,我个人觉得并不需要对它进行太深入的了解,只有知道有这么一回事就好了. 从宏观方面看,Vault属于Oracle数据库安全领域中-访问控制的部分,可参考《 [Oracle] 数据安全概述》.

Oracle数据库分析函数详解

- - MySQLOPS 数据库与运维自动化技术分享
Oracle数据库分析函数详解. 原创文章,转载请注明: 文章地址 Oracle数据库分析函数详解.

oracle 数据库体系结构

- - Oracle - 数据库 - ITeye博客
       任何硬件平台或操作系统下的ORACLE体系结构都是相同的,包括如下四个方面:.         数据文件,日志文件,控制文件,参数文件.         表空间、段、区间、数据块.         共享池,数据缓冲区,日志缓冲区,PGA.         用户进程、服务器进程、后台进程.

Oracle数据库日常检查

- - Oracle - 数据库 - ITeye博客
看数据库是否处于归档模式,并启动了自动归档进程. 执行df –k,检查有没有使用率超过80%的文件系统,特别是存放归档日志的文件系统. 检查alert_SID.log有无报错信息(ORA-600、ORA-1578)、ORA-60. 用imp工具生成建表脚本,看能否正常完成. 如果最大可用块(max_chunk)与总大小(total_space)相比太小,要考虑接合表空间碎片或重建某些数据库对象.

数据批量导入Oracle数据库

- - Oracle - 数据库 - ITeye博客
今天学习了一个新的东西,觉得还挺有意思的,也是从别出COPY 的,. SQL*LOADER是大型数据. 仓库选择使用的加载方法,因为它提供了最快速的途径(DIRECT,PARALLEL). 现在,我们抛开其理论不谈,用实例来使. 您快速掌握SQL*LOADER的使用方法.   首先,我们认识一下SQL*LOADER.