oracle 删除表后,磁盘如何释放? 50

1.在第一次创建数据库表时,把表都建在system表空间了,而且数据很大,上亿级别,后来看文章这样不好,就准备重新建表。2.把表全部删除了,直接drop表purge。3.... 1.在第一次创建数据库表时,把表都建在system表空间了,而且数据很大,上亿级别,后来看文章这样不好,就准备重新建表。
2.把表全部删除了,直接drop 表 purge。
3.但是磁盘没有释放,数据文件还是很大,100多GB,想知道怎么释放掉这部分磁盘,从网上看了很多资料都没用。
现在查不到表了,所以修改高水位是不可行的,resize也会报错,ORA-03297: 文件包含在请求的 RESIZE 值以外使用的数据。

还有没有别的办法?
展开
 我来答
longrenyingdc8ecb1
2019-03-28 · TA获得超过1万个赞
知道大有可为答主
回答量:6032
采纳率:82%
帮助的人:2377万
展开全部
如果是system表空间的话,基本上没有办法变小了。(按照你的说法,就是释放磁盘空间)
就算你删除了表,但是数据文件(就是物理存在于磁盘上的文件)是不会变小的。而且system表空间非常变态,里面存有所有的基表,所以resize不要想了。而且转移表空间神马的,用在其他表空间还可以,system也不可能,如果你真的把所有的表(这个表是指你建立的表)都删除了,那么就干脆重新建库吧,把原来的库删了,这样就可以了。
反正据我所知,如果是system表空间的话(system表空间数据文件所占空间大小),不重新建库是只能变大不能变小的。
如果是其他表空间的话,复制表空间,然后删除什么的可以考虑。
最后给你一个建议啊,你的存储应该是自动扩展的吧,那每个文件最大值最好不要太大,oracle这个东西是有多少占多少,然后再说其他,如果你给的太多,那么他就会一直占用新的。
oracle九叔
2019-03-28 · TA获得超过4.9万个赞
知道大有可为答主
回答量:4.9万
采纳率:83%
帮助的人:1.3亿
展开全部

你好的!

一般来说,重建一个表空间!

把所有当前表空间的表都move 到新表空间中!

完后删除原来的表空间并删除相关的物理文件。

oracle 的shrink 表空间不怎么实用!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tj_angela
2019-03-28 · TA获得超过7530个赞
知道大有可为答主
回答量:6797
采纳率:75%
帮助的人:2591万
展开全部
数据文件一般都是设置自增长的, 表删掉以后只是逻辑空间减少了, 物理大小不会自己变小的. 但可以用resize改小, 但一定要比当前表空间大.
alter database datafile '/oradata2/mesdb/SYSTRAVELIDX119.ora' resize 1024M;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式