1 删除数据后释放数据文件所占磁盘空间

(1)找到占用空间的文件号

select file#, name from v$datafile;

(2)查找最大的块号,例如得到1234

select max(block_id) from dba_extents where file_id=4;

(3)计算表空间实际占用的磁盘空间

select value from v$parameter where name='db_block_size';--数据块的大小,例如得到8192
select 1234 * 8192 / 1024 / 1024 from dual; --以MB为单位计算出实际占用的空间大小

(4)修改数据文件尺寸,比实际占用的物理空间稍大点即可

alter database datafile 'D:\oracle\oradata\renyuan\RENYUAN_TBS_XLUSER.DATA' resize 10m;


2 释放 UNDOTBS01.DBF 占用的空间:

(1)创建一个新的小空间的 undo tablespace  

create undo tablespace UNDOTBS02 datafile 'D:\oracle\oradata\renyuan\UNDOTBS02.dbf' size 5m;

(2)设置新的表空间为系统 undo tablespace  

alter system set undo_tablespace=UNDOTBS02;

(3)删除旧的表空间  

drop tablespace UNDOTBS1 including contents;


3 ORA-01683 解决方法:

alter database datafile 'D:\oracle\oradata\renyuan\RENYUAN_TBS_XLUSER.DATA' 
autoextend on next 5m maxsize unlimited;

本文链接地址: Oracle磁盘空间释放一例
https://blog.qingfengju.com/index.asp?id=396

分类:数据库 查看次数:20882 发布时间:2016/11/18 21:25:12