日期:2014-05-16 浏览次数:20527 次
UNDOTBS1是一个回滚表空间,随着数据库的使用,默认会自动扩展。当它增大到一定程度,占用了过多的磁盘空间时,就需要进行清理了。下面就在2种操作系统下讲解清理该表空间的方法。
一、环境:windows xp;数据库:Oracle 9i。
在windows系统下,无法完全使用命令行方式操作数据库。具体步骤如下:
1. 启动PLSQL工具连接数据库,登录信息:system/password@DBSID as sysdba;新建一个command window;
2. 创建一个新的回滚段表空间:
SQL> create undo tablespace undotbs2 datafile '%oracle_home%/oradata/DBSID/undotbs02.dbf' size 500M;
Tablespace created.
3. 将回滚段指向新的表空间:
SQL> alter system set undo_tablespace=undotbs2 scope=spfile;
System altered.
4. 重新启动数据库:
在windows环境下,该步无法使用命令行操作;
在系统服务项中,重启oracle的关键服务:
OracleOraHome92TNSListener
OracleServiceDBSID
5. PLSQL重新连接数据库:system/password@DBSID as sysdba;新建command window;
Oracle 9i默认自动管理回滚段,为了防止其无限制增长,可以将其设为人工管理:
SQL> alter system set undo_management =MANUAL scope=spfile;
System altered.
(本人建议:还是让数据库自动管理回滚段比较好,可以定期清理该表空间)
6. 重新启动数据库(参照步骤4)
7. 删除原来的回滚空间:
PLSQL重新连接数据库:system/password@DBSID as sysdba;新建command window;
SQL> drop tablespace undotbs1 including contents and datafiles;
Tablespace dropped.
该步骤只能删除数据库对该空间的管理信息,要想完全删除该表空间文件,需要到相应的目录下手动删除;
8. 结束
二、环境:linux;数据库:Oracle 9i。
1. 登陆到数据库
oracle@suse:~> sqlplus '/as sysdba'
SQL*Plus: Release 9.2.0.4