我在本机上首先创建了数据库A,运行A正常(包括IE浏览器利用http://机器名:5500/em和cmd下的sqlplus连接),然后再创建了一个数据库B,并配置了两个监听(数据库A用来1521端口,数据库B用了1520端口),然后在IE下测试,两个数据库均能正常连接,这时未测试cmd的sqlplus是否能连接成功,再后来把数据库A相关的服务禁用了并修改成手动启动模式,然后重新启动计算机,在IE下测试仍能连接数据库B,接着用cmd的sqlplus连接(sqlplus "sys/我设定的密码 as sysdba"),然后就提示“ora-12560:TNS:协议适配器错误”,并不停地让输入用户名和密码。
感觉非常奇怪,为什么IE下能正常使用,而是DOS下就不行了呢。后来担心是默认的ORACLE_SID的原因,但是进入注册表搜索到ORACLE_SID,其值正是数据库B的SID。
各位高手们,帮我分析分析,为什么会出现这种错误,该怎么修改?万分感谢!

解决方案 »

  1.   

    因为你又安装了个实例所以由一个是可以登陆的。一个是默认的,另外一个需要你加服务名。
    oracle 默认的sid会是你后一个创建的SID
    如果你第一个实例SID是A,第二个是B
    那么你需要sqlplus user/passwd@A
    要登录第二个则是:不需要加服务名
    sqlplus user/passwd
      

  2.   

    sqlplus user/passwd@数据库名
      

  3.   

    可能是坏掉了,你可以尝试:
    sqlplus user/passwd@B
    不可以的话
    重新配一下tnsname
      

  4.   

    重新配置了tnsname,并且重启服务,发现能够利用cmd中的sqlplus登录了,IE中还是能正常登录,但是另外一个问题出来了,就是利用ORACLE SQL PLUS 登录时,提示ORA-12154 监听程序当前无法识别连接描述符中请求的服务。
      

  5.   

    我把数据库A的监听和服务都删除了,只保留了数据库B的监听和服务,并重新配置了。问题依然存在,就是cmd中的sqlplus登录和IE登录都没问题,就是用ORACLE SQL PLUS登录就出现ORA-12154错误,监听程序当前无法识别连接描述符中请求的服务。高手们帮帮忙吧,着急啊!!
      

  6.   

    sqlplus 登陆的时候主机字符串选择你新配的tnsname
      

  7.   

    如果是在不行,建议重新覆盖性的安装一次oracle
      

  8.   

    运行中输入:cmdsqlplus /nologsql>conn username/password@b
    如果不好用
    将服务停掉,再重起。
      

  9.   

    已经好了,问题出在配置服务上。之前是输入的服务名不是SID名称,改成SID名称就可以了
    谢谢诸位的指教