共计 1228 个字符,预计需要花费 4 分钟才能阅读完成。
问题
好久没用 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 也可以连接。
至此,问题解决。
更多 Oracle 相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-05/143799.htm