oracle 删除表后,磁盘如何释放? 50
1.在第一次创建数据库表时,把表都建在system表空间了,而且数据很大,上亿级别,后来看文章这样不好,就准备重新建表。2.把表全部删除了,直接drop表purge。3....
1.在第一次创建数据库表时,把表都建在system表空间了,而且数据很大,上亿级别,后来看文章这样不好,就准备重新建表。
2.把表全部删除了,直接drop 表 purge。
3.但是磁盘没有释放,数据文件还是很大,100多GB,想知道怎么释放掉这部分磁盘,从网上看了很多资料都没用。
现在查不到表了,所以修改高水位是不可行的,resize也会报错,ORA-03297: 文件包含在请求的 RESIZE 值以外使用的数据。
还有没有别的办法? 展开
2.把表全部删除了,直接drop 表 purge。
3.但是磁盘没有释放,数据文件还是很大,100多GB,想知道怎么释放掉这部分磁盘,从网上看了很多资料都没用。
现在查不到表了,所以修改高水位是不可行的,resize也会报错,ORA-03297: 文件包含在请求的 RESIZE 值以外使用的数据。
还有没有别的办法? 展开
展开全部
如果是system表空间的话,基本上没有办法变小了。(按照你的说法,就是释放磁盘空间)
就算你删除了表,但是数据文件(就是物理存在于磁盘上的文件)是不会变小的。而且system表空间非常变态,里面存有所有的基表,所以resize不要想了。而且转移表空间神马的,用在其他表空间还可以,system也不可能,如果你真的把所有的表(这个表是指你建立的表)都删除了,那么就干脆重新建库吧,把原来的库删了,这样就可以了。
反正据我所知,如果是system表空间的话(system表空间数据文件所占空间大小),不重新建库是只能变大不能变小的。
如果是其他表空间的话,复制表空间,然后删除什么的可以考虑。
最后给你一个建议啊,你的存储应该是自动扩展的吧,那每个文件最大值最好不要太大,oracle这个东西是有多少占多少,然后再说其他,如果你给的太多,那么他就会一直占用新的。
就算你删除了表,但是数据文件(就是物理存在于磁盘上的文件)是不会变小的。而且system表空间非常变态,里面存有所有的基表,所以resize不要想了。而且转移表空间神马的,用在其他表空间还可以,system也不可能,如果你真的把所有的表(这个表是指你建立的表)都删除了,那么就干脆重新建库吧,把原来的库删了,这样就可以了。
反正据我所知,如果是system表空间的话(system表空间数据文件所占空间大小),不重新建库是只能变大不能变小的。
如果是其他表空间的话,复制表空间,然后删除什么的可以考虑。
最后给你一个建议啊,你的存储应该是自动扩展的吧,那每个文件最大值最好不要太大,oracle这个东西是有多少占多少,然后再说其他,如果你给的太多,那么他就会一直占用新的。
展开全部
数据文件一般都是设置自增长的, 表删掉以后只是逻辑空间减少了, 物理大小不会自己变小的. 但可以用resize改小, 但一定要比当前表空间大.
alter database datafile '/oradata2/mesdb/SYSTRAVELIDX119.ora' resize 1024M;
alter database datafile '/oradata2/mesdb/SYSTRAVELIDX119.ora' resize 1024M;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询