当前位置:龙泉人才网 - 人才百科 -

oracle dba(Oracle数据库表空间回收方案总结)

  • 人才百科
  • 2024-01-15 16:00
  • 龙泉小编

概述

今天主要简单介绍一下怎么去回收表空间大小,下面一起了解一下~这块忘记放到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标记之间的差,就是还没有分配出去的空间大小。

oracle dba(Oracle数据库表空间回收方案总结)


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

oracle dba(Oracle数据库表空间回收方案总结)



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;

oracle dba(Oracle数据库表空间回收方案总结)



4、检查

1、查看表空间大小

oracle dba(Oracle数据库表空间回收方案总结)

2、查看ASM磁盘空间大小

oracle dba(Oracle数据库表空间回收方案总结)


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


oracle dba(Oracle数据库表空间回收方案总结)

免责声明:本文内容来源于网络或用户投稿,龙泉人才网仅提供信息存储空间服务,不承担相关法律责任。若收录文章侵犯到您的权益/违法违规的内容,可请联系我们删除。
https://www.lqrc.cn/a/rencai/99027.html

  • 关注微信
下一篇:暂无

猜你喜欢

微信公众号