用sqlplus登陆数据库时,会出现12514的问题。
sqlplus sys@test as sysdba输入密码后出现ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor,上网查询许多未果。包括官网,希望有经验的朋友指教当启动lisener后再创建新的数据库时,可正常登录。重启后,正常开启lisener,就会出现如上问题。查看listener.ora内容为:
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = HUAANserv)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
ADR_BASE_LISTENER = /opt/oracle查看status信息为:
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=HUAANserv)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Solaris: Version 11.2.0.1.0 - Production
Start Date                31-MAR-2010 10:58:28
Uptime                    0 days 0 hr. 8 min. 22 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /opt/oracle/product/11.2/network/admin/listener.ora
Listener Log File         /opt/oracle/diag/tnslsnr/HUAANserv/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=HUAANserv)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully 

解决方案 »

  1.   

    贴出tnsnames.ora里test连接符的配置。
      

  2.   

    TEST =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = HUAANserv)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = test)
        )
      )
    这样的..
      

  3.   

    你要连接的目标数据库的SERVICE_NAME 确实是 test吗?
      

  4.   

    恩。确定啊。
    tnsnames.ora文件里有2段。应该没有冲突吧
    TEST1 =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = HUAANserv)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = test1)
        )
      )TEST =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = HUAANserv)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = test)
        )
      )
    还发现个问题,用sqlplus  / as sysdba 进入数据库,会出现Connected to an idle instance.
    别的人说是数据库没有全起来。。不大懂了
      

  5.   

    看别的帖子listener.ora文件中加上
    SID_LIST_LISTENER=
        (SID_LIST=
            (SID_DESC=
                (SID_NAME=test1)
                (ORACLE_HOME=/opt/oracle/product/11.2)
                (PROGRAM=EXTPROC)
            )
        )
    其中(PROGRAM=EXTPROC)是什么意思。如果加上这段lisener就启不来了。
      

  6.   

    同一机器装了2个数据库?你是想连接test数据库吧?DOS下执行:
    set ORACLE_SID=test
    然后
    sqlplus / as sysdba
    如果显示Connected to an idle instance,则数据库实例未启动
    在sqlplus里:
    SQL>startup等待实例和数据库均启动后,再连接试试
      

  7.   

    我用的solaris 10系统。在命令下打完set ORACLE=test1
    用as sysdba进去后打startup会出现
    ORA-01078: failure in processing system parameters
    LRM-00109: could not open parameter file '/opt/oracle/product/11.2/dbs/initOraDB11g.ora'
      

  8.   

    先启动实例,再启动数据库的。startup同时启动它们。
      

  9.   

    实例没有注册。ping一下 HUAANserv
      

  10.   


    tnsping HUAANserv最好连接字符改成IP地址
      

  11.   

    肯定 instance没有起来