oracle创建表空间_Oracle数据库表空间回收方案总结,值得收藏

概述

今天主要简单介绍一下怎么去回收表空间大小,下面一起了解一下~这块忘记放到ORACLE dba实战脚本总结里面了,大家有空也可以放到一起..


1、确定高水位,这个决定你的文件能缩小到多少

select /*+ ordered use_hash(a,b,c) */ a.file_id, a.file_name, a.filesize, b.freesize, (a.filesize - b.freesize) usedsize, c.hwmsize, c.hwmsize - (a.filesize - b.freesize) unsedsize_belowhwm, a.filesize - c.hwmsize canshrinksize  from (select file_id, file_name, round(bytes / 1024 / 1024) filesize          from dba_data_files) a,       (select file_id, round(sum(dfs.bytes) / 1024 / 1024) freesize          from dba_free_space dfs         group by file_id) b,       (select file_id, round(max(block_id) * 8 / 1024) HWMsize          from dba_extents         group by file_id) c where a.file_id = b.file_id   and a.file_id = c.file_id   and a.file_name like '%lob3%' order by unsedsize_belowhwm desc

说明:

  • File_id : 文件编号
  • File_name: 文件名称
  • File_size: 数据文件占用磁盘空间大小
  • Freesize:文件中被标记为free的空间大小
  • Usedsize: 使用的空间大小。
  • Hwmsize: 已经分配出去的空间大小,如果希望通过alter database datafile … resize integerM回收空间,将需要这个值作为参考,不能回收到这个值之下,否则会报错。
  • unsedsize_belowhwm: 在HWM(高水位标记线之下的空闲空间数),这个是理论上的可以回收的空间大小。
  • canshrinksize: 这个是实际大小与HWM标记之间的差,就是还没有分配出去的空间大小。
7e913b90b8cdc29cf7b2c1861804483d.png

2、计算datafile可以resize收缩的空间,也就是必须剩余部分其他对象正在使用的空间

select a.file#,       a.name,       a.bytes / 1024 / 1024 CurrentMB,       ceil(HWM * a.block_size) / 1024 / 1024 ResizeTo,       (a.bytes - HWM * a.block_size) / 1024 / 1024 ReleaseMB,       'alter database datafile ''' || a.name || ''' resize ' ||       ceil(HWM * a.block_size / 1024 / 1024) || 'M;' ResizeCMD  from v$datafile a,       (select file_id, max(block_id + blocks - 1) HWM          from dba_extents         where file_id in (select b.file#                             From v$tablespace a, v$datafile b                            where a.ts# = b.ts#                              and a.name = 'LOB3')         group by file_id) b where a.file# = b.file_id(+)   and (a.bytes - HWM * block_size) > 0 order by 5
2962e42f213e391c46b392c5420c357c.png

3、开始收缩数据文件

alter database datafile '+DATA/otmdb/datafile/lob307.dbf' resize 10866M;alter database datafile '+DATA/otmdb/datafile/lob305.dbf' resize 10871M;alter database datafile '+DATA/otmdb/datafile/lob306.dbf' resize 10871M;alter database datafile '+DATA/otmdb/datafile/lob308.dbf' resize 10861M;alter database datafile '+DATA/otmdb/datafile/lob303.dbf' resize 18531M;alter database datafile '+DATA/otmdb/datafile/lob304.dbf' resize 15266M;alter database datafile '+DATA/otmdb/datafile/lob301.dbf' resize 11371M;
4c1153692aa0bef5454711727bf90ec5.png

4、检查

1、查看表空间大小

7769e6412c9eb49c47cc0d596ecd3520.png

2、查看ASM磁盘空间大小

e94ac9aa627b5ad39aec87a17f90c5ed.png

觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

b41c0b72bc8b9d6f037689a16008f0d3.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值