公司有台IBM小型机做测试数据库,近期磁盘空间已经不足,考虑到部分数据库用户已经不再使用,所以决定做一次数据库清理工作。
第一次清理:
首先考虑删除无用的用户和无用的表空间
--删除用户
drop user user_name cascade;
--删除表空间
drop tablespace space_name including contents and datafile cascade constraints;
删除表空间之后,df -g 查看磁盘空间并没有被释放,百度了下得知这种情况是由于句柄还未被释放,等句柄被释放即可。若要着急用的话,可以重启数据库,因为测试库,所以我就直接重启啦。
重启数据库
sqlplus / as sysdba
shutdown immediate;
--启动数据库
startup;
第二次清理:
删除了无用的表空间,只释放出了不到10GB的磁盘空间,检查用户和表空间的关系,发现某些较多的用户公用表空间,但是其中一些用户已经不再使用,所以决定回收这些用户数据。