oracle减小数据库表空间

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

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 根据表空间大小确定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值