为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:Linux
【CPU】:8
【问题描述】*:库只有50G,之前建了几张大表, 写了几千万数据进去, 加上索引把磁盘空间搞满了, 后面我们赶紧把数据库的那几张大表删了, 但是建表的时候还是提示没有磁盘空间呢呢
用过界面删除表, 也用过truncate table 这种方式,总之磁盘空间就是回不去了
可以使用导入导出操作dexp。先导出备份一下。然后将源库重建后导入恢复数据。建议弄个测试环境恢复。确认数据无误后,进行生产变更操作,此方法可以回收空间。
实际数据文件大小已经撑大了,表删除后对于数据文件来说它的实际大小是不会变化的。
DM8 22年7月月度版及之后版本中新增存储空间回收功能。支持删除表空间中空(没有分配使用的簇)的数据文件,同时支持截断数据文件以支持回收空闲的存储空间。
可以看下自己的版本:select * from v$version;
DM Database Server 64 V8
DB Version:0x7000c
03134283914-20220901-168571-20009
如果是这个版本或者之后的,可以通过存储空间回收的方式回收空闲的空间,参考命令:alter tablespace “test” resize datafile ‘test.dbf’ to 128;
之前的版本暂时无法回收,可以新建一个小的表空间,将数据迁移,再删除原来的表空间。