最近由于单位数据库硬盘空间不足,整理的时候查了许多文章,也进行了测试,整理后得出一些经验供大家参考。 首先,在网上看到一篇文章,如何Shrink Undo表空间,释放过度占用的空间 ,用上面的指令看了一下,发现我们的硬盘上的UNDO空间也占了2G,所以想到先把这个空间清出来,以解燃眉之急,所以立即进行了测试。 测试通过,但有一个问题,上面用的drop tablespace undotbs1 including contents;指令,没把undotbs1.dbf文件也清除掉,硬盘还是满满的。(后来想,是否可以用drop tablespace undotbs1 including contents and datafiles;呢?索性就直接删除硬盘上的文件。)文章中说到要等原undo表空间所有UNDO SEGMENT OFFLINE,这个我不知道怎样操作,也看不明白上面指令看到的结果。但用指令查,确定UNDO表空间已经转到undotbs2了。 为了删掉UNDO文件,进行了测试。 selecct name from v$datafile; 在列出的数据文件中已经没有这个undotbs1.dbf文件了。 停掉ORACLE服务,停掉监听。把undotbs1.dbf文件移到其他空间。打开ORACLE服务,打开监听。服务正常。证明这个文件是可以删掉的。