ORACLE9i的表空间可以在控制台中直接删除。但是表空间之中的用户却不能被连带删除,仍然需要手动或用脚本drop
username cascade批量drop掉。
在删除表空间后,感觉表空间在硬盘中的文件应该同时被删除了。可是当进入X:/ORACLE/ORADATA/SIDNAME后,发现表空间文件仍然存在,文件名为[TABLENAME].ORA这时,为了节省硬盘资源,要手动将该文件删除。
有一点要切忌,不要动存放系统文件的表空间文件,如USERS01.DBF/CONTROL01.CTL/UNDOTBS01.DBF等。虽然UNDOTBS01.DBF表空间不能删除,但是可以进行简易的切换,这样可以有效地节省硬盘空间。比如经常使用回滚功能的用户,UNDOTBS01.DBF文件会变得很大,例如18G或者更大,这时候可以用特定的方法切换回滚表空间为UNDOTBS02.DBF,由于UNDOTBS02.DBF是初始化的空表空间,所以大小几乎为零,这样就起到了释放硬盘的作用。
关于切换UNDOTBS01.DBF的方法,如果有时间会再来记录。
注:Undospace = UR * UPS *db_block_size+ 冗余量
UR表示在undo中保持的最长时间数(秒),由数据库参数UNDO_RETENTION值决定。
UPS表示在undo中,每秒产生的数据库块数量。
在数据库中保留20小时的回退数据,假定每小时产生200个数据库块。则Undospace = 20 * 3600 * 200 * 4K
= 58G
应该这么算吧