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