概述今天主要简单介绍一下怎么去回收表空间大小,下面一起了解一下~这块忘记放到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 canshrinksizefrom (select file_id, file_name, round(bytes / 1024 / 1024) filesizefrom dba_data_files) a,(select file_id, round(sum(dfs.bytes) / 1024 / 1024) freesizefrom dba_free_space dfsgroup by file_id) b,(select file_id, round(max(block_id) * 8 / 1024) HWMsizefrom dba_extentsgroup by file_id) c where a.file_id = b.file_idand a.file_id = c.file_idand 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标记之间的差,就是还没有分配出去的空间大小 。
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;' ResizeCMDfrom v$datafile a,(select file_id, max(block_idblocks - 1) HWMfrom dba_extentswhere file_id in (select b.file#From v$tablespace a, v$datafile bwhere 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
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;
4、检查1、查看表空间大小
2、查看ASM磁盘空间大小
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~
【dbf是什么文件格式如何创建 dbf是什么文件】
推荐阅读
- 万古长青是什么生肖动物 万古长青是什么生肖
- 污垢的近义词是什么 集中的近义词是什么
- 网络上zf是什么意思 zf是什么意思
- 电脑上截图的快捷键是什么 截图的快捷键是什么
- 调平水钓2目鱼钩再水下什么状态,请大家赐教空钩调平水钓两目双钩在水底是什么状态
- win10系统下蓝牙接收的文件在哪里。
- win10如何显示文件扩展名。
- 鱼竿的元径在什么地方,手竿竿稍先径30mm是什么意思
- 一等座高铁有什么功能,动车一等座和二等座我都懂但是站票是什么意思呢麻烦清楚解释
- 洗手液主要成分是什么好