解决步骤
第一步、sqlplus /NOLOG
第二步、SQL>connect sys/change_on_install as sysdba
提示:已成功
(1,2)或者
打开sqlplus
请输入用户名: system/sys as sysdba
第三步、SQL>shutdown normal
或者 shutdown abort
提示:
数据库已经关闭
已经卸载数据库
ORACLE 例程已经关闭
第四步、SQL>startup mount
提示:
Total System Global Area 5110898688 bytes
Fixed Size 2806480 bytes
Variable Size 1107299632 bytes
Database Buffers 3992977408 bytes
Redo Buffers 7815168 bytes
数据库装载完毕。
第五步、SQL>alter database open(这一步出错)
提示:
ORA-01157: 无法标识/锁定数据文件11 - 请参阅DBWR 跟踪文件
ORA-01110: 数据文件11: ''''I:\tablesapce\APP0104_DEFAULT.dbf''
看到这个APP0104_DEFAULT.dbf 想起来了,是之前往数据库里导入DMP文件时创建的,当时是在移动硬盘上的,后来硬盘被拿走了,所以Oracle找不到这些表空间了。按照提示的数据文件编号11,对表空间进行drop操作。
第六步、SQL>alter database datafile 11 offline drop
第七步、重复第五第六步,直到所有无法连接的的表空间都已经drop为止(当时创建太多,一直drop到40才结束)
第八步、输入shutdown normal, startup mount, alter database open
最后、 无需重启,使用原来的用户名密码即可登录成功;使用SQL Developer也可以连接。
至此,问题解决。
昨天发布程序到2008服务器的IIS,从Sql Server数据库取数没问题,但是从Oracle数据库取数,非常的慢,同样的程序在2003服务器上没问题,本机也没问题。一开始怀疑是这台机器有问题,后来又换了一台2008的服务器发布后也是一样的慢,就连打开它的Net Manager连接数据都很慢。经多方查询原来就是由于2008服务器和win7新增加的TCP/IP协议自动调谐功能造成的。后对【TCP/IP协议自动调谐功能】进行关闭后一切恢复正常。
具体操作步骤:
开始——》运行——》cmd回车——》在该工作窗口的DOS提示符下,输入字符串命令
“netsh int tcp set global autotuninglevel=disable” 回车,显示“确定”意味着此时系统的TCP/IP协议的自动调谐功能已经被成功关闭。