Oracle常用命令之三:数据文件收缩

文章目录

背景信息

本番库磁盘空间已经非常紧张,近期做过一次本番库到历史库的数据迁移。有非常多的数据已经在本番库被卸载,但磁盘空间没有被释放,这将会影响一些风险。我们需要通过命令来将其进行收缩。

操作命令

SELECT
    'alter database datafile '''
    || t1.file_name
    || ''' resize '
    || ceil((nvl(hwm, 1) * &&blksize) / 1024 / 1024)
    || 'M;' resize_cmd
FROM
    dba_data_files t1,
    (
        SELECT
            file_id,
            MAX(block_id + blocks - 1) hwm
        FROM
            dba_extents
        GROUP BY
            file_id
    ) t2
WHERE
    t1.file_id = t2.file_id (+)
AND
    ceil(blocks * &&blksize / 1024 / 1024) - ceil((nvl(hwm, 1) * &&blksize) / 1024 / 1024) > 0;

BLKSIZE通常是8192.

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_38623994/article/details/108794399
今日推荐