oracle减小数据库表空间|数据库|码途山海.智隐长卷 -

程序人生|重庆纽新

找回密码
立即注册

QQ登录

只需一步,快速开始

欢迎访问【程序人生-重庆纽新】,本网站为软件开发人员视觉的IT资讯、软件开发中各种问题的解决办法!!
搜索
发新帖


2308

积分

0

好友

259

主题
楼主
发表于 2020-9-15 00:18:22 | 查看: 5167| 回复: 0

数据库表空间占用过大,缩减表空间大小。

1、首先确认表空间,空闲空间比例比较大。

SELECT C.TABLESPACE_NAME,A.BYTES/1048576 MEGS_TOTAL,(A.BYTES-B.BYTES)/1048576 MEGS_USED,

B.BYTES/1048576 MEGS_FREE,(A.BYTES-B.BYTES)/A.BYTES * 100 PCT_USED, B.BYTES/A.BYTES * 100 PCT_FREE

FROM (SELECT TABLESPACE_NAME,SUM(A.BYTES) BYTES,MIN(A.BYTES) MINBYTES,MAX(A.BYTES) MAXBYTES FROM SYS.DBA_DATA_FILES A

GROUP BY TABLESPACE_NAME) A,(SELECT A.TABLESPACE_NAME,NVL(SUM(B.BYTES),0) BYTES

FROM SYS.DBA_DATA_FILES A,SYS.DBA_FREE_SPACE B WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME (+) AND A.FILE_ID = B.FILE_ID (+)

GROUP BY A.TABLESPACE_NAME) B,SYS.DBA_TABLESPACES C

WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME(+) AND A.TABLESPACE_NAME = C.TABLESPACE_NAME ORDER BY 6;


2、查询表空间数据占用数据文件空间最大值。


  • --查file_id、file_name


  • select T.FILE_ID,T.FILE_NAME from DBA_DATA_FILES T where T.TABLESPACE_NAME='XXX';


  • --查占用最大空间(mb)


  • select max(block_id)*8/1024 from dba_extents where file_id='YYY';


  • --缩减表空间


  • ALTER DATABASE DATAFILE '/opt/oracle/oradata/XXX.dbf' RESIZE 300M;



/opt/oracle/oradata/XXX.dbf 是要缩减的表空间文件。

RESIZE 300M 根据表空间大小确定。




收藏回复 只看该作者 道具 举报

高级模式
B Color Image Link Quote Code Smilies



QQ|小黑屋| 码途山海.智隐长卷 渝ICP备15002301号-2   渝公网安备50011202504426

GMT+8, 2025-5-17 23:40 , Processed in 0.041192 second(s), 24 queries .

©Copyright 程序人生!

©2012-2015重庆纽新

快速回复 返回顶部 返回列表