一个客户的数据库异常,windows 11g.
我远程连接上去,首先使用sqlplus / as sysdba却发现无法连接.首先查看oracle服务有没有启动,在服务中一看果然没启动,手工启动,自我感觉问题应该解决了,重新使用sqlplus登录发现报错:
ora-1031 message 1031 not found:No message file for product=RDBMS,
facility=ORA
这个错误还是第一次见到.首先百度,看到了几篇国外的问题都是说oracle_home,oracle_sid没设置导致的.我在cmd窗口中echo %oracle_sid% %oracle_home%查看都是正确的
,于是查看mos文档,找了半天依旧无解.oracle alert日志里面无内容.
个人感觉是oracle 服务有问题,因为目前还没有涉及到数据库方面的问题,连数据库还没连上呢.
尝试手工删除oracle服务再添加oracle服务,发现在添加oracle服务的时候报错 no such file
查看服务发现服务的启动程序的目录有问题.
再翻看那几个老外的回答都是一致的oracle_home,oracle_sid有问题,而且还很笃定的样子,看上去也确实这里有问题,于是重新查看环境变量,
这时有了新发现,当时的cmd的窗口中的oracle_home,oracle_sid是现场工程师手工设置的,在系统的环境变量中确实没有这两个环境变量.
再看path环境变量也不对,虽然有ORACLE_HOME/bin,但是却没有一些系统的环境变量,像c:\windows,c:\windows\system32
于是先手工创建了一个ORACLE_HOME 和ORACLE_SID 环境变量,将他们的值设置正确,再将path的环境变量添加这两个系统的环境变量.然后重启服务.
最后重新使用sqlplus登录,正常,启动数据库正常!
添加环境变量在 我的电脑右击->属性->高级->环境变量->系统变量栏中新建 输入相应的值即可.