首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >收缩oracle 11g中的永久表空间

收缩oracle 11g中的永久表空间
EN

Stack Overflow用户
提问于 2013-03-22 13:35:11
回答 1查看 26.7K关注 0票数 5

我需要缩小oracle 11g中的表空间。它不是临时表空间,我不能丢失表空间中的数据。我的另一个表空间不足,所以我必须重新分配这个表空间的剩余大小。收缩在永久表空间上不起作用。数据文件的当前大小是1150MB,我希望它是256MB

EN

回答 1

Stack Overflow用户

发布于 2013-03-22 18:36:55

您可以调整文件的大小,因此:

代码语言:javascript
运行
复制
ALTER DATABASE DATAFILE '/your/path/your_file01.dbf' RESIZE 256M;

当然,如果你已经使用了超过256M的空间,那么你会得到一个错误

代码语言:javascript
运行
复制
ORA-03297: file contains used data beyond requested RESIZE value

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

代码语言:javascript
运行
复制
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,则首先更改该值。另请注意,查询将花费很长时间来运行-这是正常的-或者,您可以只使用许多人喜欢的试验和错误技术,并一次稍微调整它的大小,直到它出错。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15563408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档