关于Oracle数据库表空间文件Block释放问题

做点小事 2019-05-14 11:15:51
由于服务器磁盘空间不足,我想通过resize表空间文件,释放一部分空间,但是resize不能小于这个表空间文件的block的大小

目前一表空间文件在清除完数据之后只使用了5%,但是block没有降低,有没有什么办法可以降低这个block
...全文
216 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
做点小事 2019-05-14
  • 打赏
  • 举报
回复
引用 1 楼 卖水果的net 的回复:
方法太多了,提供 2 种思路,你参考一下。

方法1 、
新建一个别的表空间 NEW_TBS,把数据都当表的数据都移到 NEW_TBS中,这样原表空间就空了,现在删除它,再氢 NEW_TBS 改成你原来的表空间名字。

方法2、
把数据导出来以后删除,收缩表空间后再导入。


1.第一种方法条件不支持,目前的服务器磁盘只剩几十个G,但表空间内数据有200G左右

2.第二种的话由于环境不能停机,也不方便操作

没有那种直接执行就能清理的语句么 OTL

能不能将表空间内部指定数据文件的数据转移,再清空,再删除这个文件?
卖水果的net 2019-05-14
  • 打赏
  • 举报
回复
方法太多了,提供 2 种思路,你参考一下。 方法1 、 新建一个别的表空间 NEW_TBS,把数据都当表的数据都移到 NEW_TBS中,这样原表空间就空了,现在删除它,再氢 NEW_TBS 改成你原来的表空间名字。 方法2、 把数据导出来以后删除,收缩表空间后再导入。
超叔csdn 2019-05-14
  • 打赏
  • 举报
回复
表的数据分散在block中,block肯定是很分散的,不连续的,在线很难收缩表空间。按照第一种,可以将表进行compress,200G也是可以压缩到几十G的。

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧