阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle下表空间收缩深入理解

213次阅读
没有评论

共计 1879 个字符,预计需要花费 5 分钟才能阅读完成。

在 Oracle 下在创建表空间时一般没有特殊的需求时都是使用可自动扩展的表空间以便于日常的管理,这样在日常情况下就不用监控表空间大小,在没有使用自动增长的表空间建议在 80% 左右的时候就要增加新的物理文件已保障其稳定,而在 Oracle 中使用自动增长的表空间,在使用中其物理文件会随着表空间的增加而增加而在实际情况中可能会因为业务的改变而没有使用那么多的表空间,这时我们就可以通过 Oracle 下的表空间缩减回收来回收未使用的表空间物理文件所使用的磁盘资源,在 Oracle 下回收表空间很简单,在 Oracle 的系统下除了用户自行定义的表空间还有如下几个默认表空间:

表空间 说明
EXAMPLE 如果在安装时有选择“实例方案”选项,则在 Oracle 中会有该表空间,如未选择则没有,此表空间中存放的是各样例的数据
SYSAUXSYSTEM 表空间的辅助空间。主要用于存储数据字典的其他数据对象,这可以减少 SYSTEM 表空间的负荷
SYSTEM 存放数据字典,其中包括表、视图、存储过程等等相关数据
TEMP 存放 SQL 语句处理的表和索引的信息,如:在数据排序时就会占用此表空间
UNDOTBS1 存放撤销数据的表空间
USERS 一般用于存放 Oracle 的用户数据

而默认的表空间的相关详细信息可以通过 sys 用户下的 DBA_DATA_FILES、DBA_FREE_SPACE、DBA_SEGMENTS 这 3 张字典表查到相关表空间所存放的数据对象、类型及表空间的相关物理文件和拥有者的相关记录,如下用于查询 Oracle 下表空间的使用详细情况

SELECT 
    F.TABLESPACE_NAME "表空间名",
D.TOT_GROOTTE_MB "表空间大小 (M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间 (M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用比",
F.TOTAL_BYTES "空闲空间 (M)",
F.MAX_BYTES "最大块 (M)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
 ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
        AND F.TABLESPACE_NAME <> 'EXAMPLE'
        AND F.TABLESPACE_NAME <> 'SYSAUX'
        AND F.TABLESPACE_NAME <> 'SYSTEM'
        AND F.TABLESPACE_NAME <> 'UNDOTBS1'
        AND F.TABLESPACE_NAME <> 'USERS'
        AND F.TABLESPACE_NAME <> 'EXAMPLE'
ORDER BY 1;

而在使用表空间收缩也很简单:

SELECT FILE_NAME FROM SYS.DBA_DATA_FILES WHERE TABLESPACE_NAME = 'TEST';# 查询出 TEST 表空间的物理文件路径
ALTER TABLESPACE TEST COALESCE;# 回收表空间碎片
ALTER DATABASE DATAFILE '/usr/local/u01/oracle/oradata/oracle/test.dbf' RESIZE 2M;# 回收表空间

更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2018-01/150221.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计1879字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中