2019-03-19
表空间可用300G,但是无法resize 数据文件释放空间至磁盘组,请问是否为脚本或是数据库存在什么问题
由于磁盘组冗余度不符合安全要求,对各表空间(Bigfile)进行清理后尝试做数据文件的resize操作,过程如下:
1、新建表空间,作为数据中转用
2、MOVE大部分表(90%)至其新建表空间后MOVE回原有表空间,从而减少数据库碎片
3、收缩对应的数据文件
在MOVE回原有表空间后重建相关索引,统计发现可用空间提高40G左右,有效的减少了碎片,但根据以下脚本发现无法resize出可用的几百g空间至磁盘组:
SELECT
a.file_id,
a.file_name
file_name,
CEIL((NVL(hwm,1)*blksize)/1024/1024)smallest,
CEIL(blocks*blksize/1024/1024)currsize,
CEIL(blocks*blksize/1024/1024)-CEIL((NVL(hwm,1)*blksize)/1024/1024)savings,
'alter database datafile '''||file_name||''' resize '||CEIL((NVL(hwm,1)*blksize)/1024/1024)||'m;'cmd
FROM
DBA_DATA_FILES a,
(SELECT file_id,MAX(block_id+blocks-1)hwm FROM DBA_EXTENTS GROUP BY file_id) b,
(SELECT TO_NUMBER(value) blksize FROM V$PARAMETER WHERE name='db_block_size')
WHERE
a.file_id = b.file_id(+)
收藏
分享
3条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏

评论
