问题:用plsql和sqlplus都连接不上数据库了描述:
1.oracle服务都已经启动了
2.用plsql连接数据库提示:ORA-12154:TNS:监听程序无法识别连接描述符中请求的服务
3.cmd--》sqlplus---》输入用户名和密码能登陆
4.cmd--》可以用命令导出数据库
5.在log中显示:
2010-12-08 08:32:09.921: [  OCROSD][1672]utgdv:1:could not open registry key SOFTWARE\Oracle\ocr os error 操作系统找不到已输入的环境选项。2010-12-08 08:32:10.046: [  OCRRAW][1672]proprinit: Could not open raw device 
2010-12-08 08:32:10.046: [ default][1672]a_init:7!: Backend init unsuccessful : [33]
2010-12-08 08:32:10.046: [ CSSCLNT][1672]clsssinit: error(33 ) in OCR initialization
请各位高手指点一下,谢谢!

解决方案 »

  1.   

    把监听重新配置下,或者把 name改成 localhost 或 机器名 或 ip 试试。
      

  2.   

    问题解决了
    方法:
    将文件emoms.properties
    #Tue Nov 02 22:52:27 CST 2010
    oracle.sysman.emSDK.svlt.ConsoleServerName=localhost_Management_Service
    oracle.sysman.eml.mntr.emdRepPwd=f19268fb7db265af
    emdrep.ping.pingCommand=ping <hostname>
    oracle.sysman.eml.mntr.emdRepPort=1521
    oracle.sysman.eml.mntr.emdRepDBName=orcl
    oracle.sysman.eml.mntr.emdRepPwdSeed=1192292953497935708
    oracle.sysman.emSDK.svlt.ConsoleMode=standalone
    oracle.sysman.emRep.dbConn.statementCacheSize=30
    oracle.sysman.db.isqlplusUrl=http\://localhost\:5560/isqlplus/dynamic
    oracle.sysman.emSDK.svlt.ConsoleServerPort=1158
    oracle.sysman.eml.mntr.emdRepRAC=FALSE
    oracle.sysman.emSDK.emd.rt.useMonitoringCred=true
    oracle.sysman.eml.mntr.emdRepPwdEncrypted=TRUE
    oracle.sysman.db.isqlplusWebDBAUrl=http\://localhost\:5560/isqlplus/dba/dynamic
    oracle.sysman.emSDK.svlt.ConsoleServerHost=zhouyaooracle.sysman.eml.mntr.emdRepDBID=1261830988
    oracle.sysman.emSDK.svlt.ConsoleServerHTTPSPort=1158
    oracle.sysman.eml.mntr.emdRepServer=zhouyaooracle.sysman.eml.mntr.emdRepSID=orcl
    oracle.sysman.eml.mntr.emdRepConnectDescriptor=(DESCRIPTION\=(ADDRESS_LIST\=(ADDRESS\=(PROTOCOL\=TCP)(HOST\=zhouyao)(PORT\=1521)))(CONNECT_DATA\= 
    (SERVICE_NAME\=orcl)))
    oracle.sysman.emSDK.sec.ReuseLogonPassword=true
    oracle.sysman.eml.mntr.emdRepUser=SYSMAN
    oracle.sysman.db.adm.conn.statementCacheSize=2
    oracle.sysman.db.perf.conn.statementCacheSize=30
    改成和tnsnames.ora以及listener.ora中的一样
    # listener.ora Network Configuration File: E:\oracle\product\10.2.0\db_1\network\admin\listener.ora
    # Generated by Oracle configuration tools.SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
          (PROGRAM = extproc)
        )
      )LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = zhouyao)(PORT = 1521))
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
        )
      )
    注意红色字部分,不过还是要谢谢回复的各位啊!
      

  3.   

    貌似应该是ORA-12514 不是12154.
    检查tnsnames.ora文件中的配置,肯定是那儿出问题了.
    sqlplus能登陆说明数据库没问题,只能是在tnsnames.ora中的问题了,看看ip或者主机名对不对,看看后面的服务名对不对.
    另外是不是换过ip或者主机名?
      

  4.   

    Thanks for such detailed solution :)