oracle的数据库文件一旦建立就会一直占用磁盘空间,表空间用尽的时候,就需要为表空间添加数据文件。可是,从表里面删除数据的时候,表空间却不会释放,所以磁盘空间占用只会越来越大。前段时间一个数据库的表空间不足了,放数据的分区也磁盘空间不足了,必须得想办法释放一下空间才行,操作说起来其实也简单,就是倒腾。
操作值钱咱先给现在的表空间做一个备份。然后新建一个用户,给这个用户建立表空间,按照备份的大小添加数据文件。然后将备份导入新的表空间,切换应用使用的用户。删除之前用户的表空间,删除数据文件。然后给他重新建立表空间数据文件,切换回来。然后将新的用户里面的数据导出,导入到旧的用户下面。这样就操作完了。
导出导入的时候可以按照exp和imp帮助里面的那个例子,row=n表示不倒数据,只导结构。这样导出似乎也会有些问题,什么seq不会倒出来,需要重新弄,不太明白这个。