关于datafile的resize问题

[复制链接]
查看11 | 回复3 | 2012-5-22 15:10:11 | 显示全部楼层 |阅读模式
本帖最后由 55500081 于 2018-8-23 14:45 编辑
各位好,
想请问一下,我执行
select a.FILE_ID,max(a.BLOCK_ID+a.BLOCKS-1)*8196/1024/1024 M from dba_extents a
where a.tablespace_name='OD_NB' group by a.FILE_ID后 ,应该能得到可resize的最小量。
但结果我用这个结果量+1g的冗余量后再执行resize还是会报错ORA-03297: 文件包含在请求的 RESIZE 值以外使用的数据
想请问一下大家,我还有什么没考虑到的点吗
回复

使用道具 举报

千问 | 2012-5-22 15:10:11 | 显示全部楼层
最典型的可能性,就是回收站没有清空
回复

使用道具 举报

千问 | 2012-5-22 15:10:11 | 显示全部楼层
xifenfei 发表于 2018-8-23 23:26
最典型的可能性,就是回收站没有清空

谢谢! 果然是回收站
回复

使用道具 举报

千问 | 2012-5-22 15:10:11 | 显示全部楼层
测了下算上回收站部分,这样查或许可以:
select a.FILE_ID,max(a.BLOCK_ID+a.BLOCKS-1)*8196/1024/1024 M from ( SELECT ds.owner,

ds.segment_name,

ds.partition_name,

ds.segment_type,

ds.tablespace_name,

e.ktfbueextno,

f.file# FILE_ID,

e.ktfbuebno BLOCK_ID,

e.ktfbueblks * ds.blocksize BYTES,

e.ktfbueblks BLOCKS,

e.ktfbuefno
FROM sys.sys_dba_segs ds, sys.x$ktfbue e, sys.file$ f
WHERE e.ktfbuesegfno = ds.relative_fno

AND e.ktfbuesegbno = ds.header_block

AND e.ktfbuesegtsn = ds.tablespace_id

AND ds.tablespace_id = f.ts#

AND e.ktfbuefno = f.relfile#

AND BITAND (NVL (ds.segment_flags, 0), 1) = 1) a
where a.tablespace_name='OD_NB' group by a.FILE_ID
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行