加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oracle11g – 在oracle 11g中收缩永久表空间

发布时间:2020-12-12 16:25:59 所属栏目:百科 来源:网络整理
导读:我需要缩小oracle 11g中的表空间.它不是临时表空间,我不能丢失该表空间中的数据.我的其他一个表空间是空间不足所以我必须重新分配这个表空间的剩余大小. shrink对永久表空间不起作用.数据文件的当前大小是1150MB,我希望它是256MB 您可以调整文件大小,因此:
我需要缩小oracle 11g中的表空间.它不是临时表空间,我不能丢失该表空间中的数据.我的其他一个表空间是空间不足所以我必须重新分配这个表空间的剩余大小. shrink对永久表空间不起作用.数据文件的当前大小是1150MB,我希望它是256MB 您可以调整文件大小,因此: –
ALTER DATABASE DATAFILE '/your/path/your_file01.dbf' RESIZE 256M;

当然,如果您已经使用了256M以上的空间,那么您将收到错误

ORA-03297: file contains used data beyond requested RESIZE value

然后,您可以使用此查询来查看可以调整数据文件大小的最小大小:

SELECT  CEIL((NVL(e.hwm,1) * 8192)/1024/1024) as "Mb"
FROM
    dba_data_files f
LEFT
JOIN    (SELECT file_id,max(block_id + blocks - 1) hwm FROM dba_extents GROUP BY file_id) e ON f.file_id = e.file_id
WHERE
    f.file_name = '/your/path/your_file01.dbf'
/

*如果表空间块大小不是8192,则首先更改该值.另请注意,查询将花费很长时间才能运行 – 这是正常的 – 或者您可以使用许多人喜欢的试错技术,并一次调整一次,直到它出错.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读