ORA-12560解决方法
1. 检查Terminal Service,看远程桌面是不是起因
2. 检查环境变量ORACLE_SID是否正确,包括注册表中的设定(检查注册表HKEY_LOCAL_MACHINE\\Software\\Oracle\\key_oracle
没有 oracle_sid=whora这项值,把这项值增加进去重新连,问题就解决了)
3. 检查Oracle服务是否启动
4. 检查LISTENER.ORA,TNSNAME.ORA等的机器名(IP地址)或者服务名是否正确
5. Netstat –a检查端口是否被占用
6. 检查注册表HKEY_LOCAL_MACHINE\\Software\\Oracle\\Home0新增字符串USE_SHARED_SOCKET=TRUE, 重新启动服务
对于运行在Windows下的Oracle 8i还可能是如下情况:
1. 在Server本机执行Svrmgrl或Sqlplus时报该错误,此时需检查ORACLE_SID设置是否正确,包括注册表中的设定,并检查Service是否运行
2. 如果SID设置正确且服务也已经运行,如果这时还报该错误,则应该检查SID NAME是否包含了非字母字符,对于Windows下的Oracle
8i,SID NAME不允许包含非字母字符,比如下划线或横线
3. 如果出现顽固性的ORA-12560错误,可考虑自己写ORACLE启动及关闭脚本,因为Windows的oracle service自动启动不是很完善
其他情况要具体分析,比如有可能是连接数过多造成内存消耗殆尽,也会造成ora-12560错误。
1、没有监听程序,可以手动创建一个,如果在本机的话,监听程序有没有,没太大意义,运行CMD,输入netca,然后又一个【监听程序配置】,然后【添加】,一直下一步就可以了,应该可以解决lsnrctl start的问题。
2、没有数据库,运行CMD,输入dbca,创建一个数据库吧。
1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,启动oraclehome92TNSlistener服务。
2.database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务面板,启动oracleserviceXXXX,XXXX就是你的database SID.
3.注册表问题。regedit,然后进入HKEY_LOCAL_MACHINE\\SOFTWARE\\ORACLE\\HOME0将该环境变量ORACLE_SID设置为XXXX,XXXX就是你的database SID.或者右几我的电脑,属性--高级--环境变量---系统变量--新建
,变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID.或者进入sqlplus前,在command line下输set oracle_sid=XXXX,XXXX就是你的database SID.