sqlplus /nolog
connect sys/iit@marsi as sysdba
shutdown immediate
startup nomount
alter databse mount;
alter database file ‘alter database datafile 'E:/oracle/oradata/dbsvr/UNDOTBS01.DBF' offline drop;
alter databse open;
2011-02-15 update
采用上述链接中的方法有个问题,数据库启动的情况下不能删除UNDOTBS01.DBF,必须在停止数据库服务的情况下才能删除,但这样重启数据库后会导致数据库不可用。
由于还可以登入到数据库中,使用sys以sysdba登入到数据库中直接使用下述语句直接更改UNDOTBS01.dbf的大小
alter database datafile 'D:/app/Administrator/oradata/MARSI/UNDOTBS01.DBF' resize 200m;
更改后依然很慢,tnsping需要10000+msec,怀疑不是UNDOTBS01.DBF大小的问题,尽管UNDOTBS01.DBF的大小在更改前已33+G, 于是检查在D:/app/Administrator/diag/tnslsnr/R900/listener/trace 下的listener日志,发现listner.log 已达4个多G,最后更新时间是2011/1/4,应该是从那时数据库开始慢下来,只是由于没人使用没有发现而已。于是删除listerner.log日志,lsnrctl中重启listener, 一切都变得飞快,使用tnsping返回时间20msec,查看listerner.log,不停的增长,为了避免以后再出现类似的情况,在listener.ora中加入
LOGGING_LISTENER = OFF
重启listner,不再产生listener.log, 启动应用,一切恢复正常。