好久没用Oracle数据库,最近需要导数据发现数据库已经无法连接,输入用户名密码也不起作用;之前也遇到过一次,直接重新安装。但Oracle的安装过程实在有点麻烦,所以寻找其他解决方法。
IMP-00058: 遇到 ORACLE 错误 1033
ORA-01033: ORACLE initialization or shutdown in progress用户名: system
口令:
听同学说Oracle需要定期更改密码,觉得可能是这个原因,就去查找密码重置方法,密码不能用的话重置比较麻烦。
注意到找到的文章说一般是间隔180天才需要修改密码,而我距离上次重装应该没有半年,所以猜测不是这个原因。所以直接按照Oracle的错误编号来查找(Oracle这点做得很好,这个样错误容易查找),下面记录一下解决步骤:
解决步骤
第一步、sqlplus /NOLOG
第二步、SQL>connect sys/change_on_install as sysdba
提示:已成功
第三步、SQL>shutdown normal
提示:
数据库已经关闭
已经卸载数据库
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也可以连接。
至此,问题解决。