做过压缩处理,但也没效果,现在大约有5G大小的空间,据了解,新安装完,顶多一G空间吧?
------解决思路----------------------
你不会导入到了 SYSTEM 表空间了吧?
假定,你没有导入到 SYSTEM .
方法1. 把该表空间的数据导出来,删除重建 ,再导入
方法2. 使用 move ,建一个TBSA 表空间,把数据都移过来,删除原来表空间,再重命名TBSA。
------解决思路----------------------
如果时间允许,并且你这也是一个新库,没什么数据,就重建一个库吧,这个操作比较简单,出错少。
不然,真要一点一点的去调整,时间用的比较长不说,还可能把数据字典折腾坏了。
------解决思路----------------------
1、完全不要的表先truncate然后delete
2、如果直接delete了,用purge处理垃圾箱中的表,因为delete并不直接删除表;
做完如上操作后,可以收缩表空间文件大小
参考如下:
如果盲目去操作,oracle会报ora-03297错误。表示在所定义的空间之后有数据存在,不能收缩。我们不得不查出最后的数据所处的位置, 然后表空间设置到稍比这位置大一点的大小。
1. 查该数据文件中数据处在最大位置
select max(block_id) from dba_extents where file_id=15;
max(block_id)
383497
查询file_id,也可在toad工具tablespace直接看到。
seect file#,name from v$datafile;
2. 查出最大块位置
select 383497*8/1024 from dual;
2996.0703125
这说明该文件中最大使用块位于2996M与3000M之间,
3. 修改表空间(也可用toad工具界面修改)
ALTER DATABASE TEMPFILE '/opt/oracle/oradata/gctwp101/temp02.dbf' RESIZE 3000M;
------解决思路----------------------
删除意味着有一部分空间是可用的了。 但是 数据文件是不会缩小的。
------解决思路----------------------
http://blog.chinaunix.net/uid-15108676-id-2749522.html
楼主搜索‘收缩表空间的文件’
------解决思路----------------------
正解
------解决思路----------------------
表空间内文件不止有数据,光删除表不一定有用。一般要使用到工具进行压缩和清除,不过建议还留着,万一出问题还有个备份