收缩表空间

1、如果要降低某个表的高水位,需:

1)、开启行移动开关

2)、收缩表占用空间

2、如果要降低数据文件占用OS空间的大小,需:

1)、查看此数据文件的实际使用大小

 

2)、根据上步查出的结果,重置数据文件大小

 

在暂停表空间后,您将无法使用ALTER TABLESPACE命令来收缩表空间。这是因为ALTER TABLESPACE命令需要在表空间在线时运行。为了收缩表空间,您需要使用ALTER DATABASE命令。 以下是收缩Oracle表空间的步骤: 1. 检查表空间碎片情况,以确定是否可以进行收缩操作。可以使用以下命令检查: SELECT TABLESPACE_NAME, FILE_NAME, BYTES/1024/1024 MB_SIZE, MAXBYTES/1024/1024 MAX_SIZE FROM DBA_DATA_FILES; 如果表空间的MAX_SIZE小于MB_SIZE,则表空间中有未使用的空间,可以进行收缩操作。 2. 确认表空间中的段是否可以移动。只有不含有不可移动段的表空间才可以进行收缩操作。您可以使用以下命令检查表空间中的不可移动段: SELECT SEGMENT_NAME, SEGMENT_TYPE, TABLESPACE_NAME, BYTES/1024/1024 MB_SIZE, MAX_EXTENT_SIZE/1024/1024 MAX_EXTENT_SIZE FROM DBA_EXTENTS WHERE TABLESPACE_NAME='your_tablespace_name' AND SEGMENT_TYPE NOT IN ('LOBSEGMENT','LOBINDEX'); 如果查询结果为空,则表空间中不含有不可移动段,可以进行收缩操作。 3. 确认表空间中的数据文件是否可以自动扩展。只有可以自动扩展的数据文件才可以进行收缩操作。您可以使用以下命令检查数据文件的自动扩展设置: SELECT FILE_NAME, AUTOEXTENSIBLE, BYTES/1024/1024 MB_SIZE, MAXBYTES/1024/1024 MAX_SIZE FROM DBA_DATA_FILES; 如果AUTOEXTENSIBLE的值为YES,则数据文件可以自动扩展,可以进行收缩操作。 4. 使用以下命令将数据文件的大小调整为表空间中已使用空间的大小: ALTER DATABASE DATAFILE '/path/to/your/datafile.dbf' RESIZE [new_size]M; 其中,new_size是您要将数据文件调整为的新大小,以MB为单位。可以使用以下命令计算表空间中已使用空间的大小: SELECT SUM(BYTES)/1024/1024 USED_SPACE from DBA_SEGMENTS where TABLESPACE_NAME='your_tablespace_name'; 5. 最后,您可以再次查询表空间和数据文件信息,以确保收缩操作已成功完成。 SELECT TABLESPACE_NAME, FILE_NAME, BYTES/1024/1024 MB_SIZE, MAXBYTES/1024/1024 MAX_SIZE FROM DBA_DATA_FILES; 请注意,在执行任何操作之前,请备份您的数据库以防止数据丢失。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值