开始机器上装的是10g,后来为了学习,又装了个11g,结果连不上数据库,发现listener.org里host是169.254.105.177,奇怪,ping了一下,不到1ms就返回,确定是本机上的IP。这个ip是怎么来的,是oracle虚拟出的ip吗?listener.ora:# listener.ora Network Configuration File: G:\oracle\product\11.1.0\db_2\network\admin\listener.ora
# Generated by Oracle configuration tools.MYLISTENER2 =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 169.254.105.177)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )tnsnames.org:# tnsnames.ora Network Configuration File: G:\oracle\product\11.1.0\db_2\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.STUDENT11G =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 169.254.105.177)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = student11g)
    )
  )
而且一个问题是,当我重启这个监听器的时候,总是提示:no services,如下:Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=169.254.105.177)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=169.254.105.177)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     mylistener2
Version                   TNSLSNR for 32-bit Windows: Version 11.1.0.6.0 - Production
Start Date                26-MAR-2010 12:40:44
Uptime                    0 days 0 hr. 0 min. 2 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   G:\oracle\product\11.1.0\db_2\network\admin\listener.ora
Listener Log File         g:\oracle\diag\tnslsnr\fxbird-pc\mylistener2\alert\log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=169.254.105.177)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
The listener supports no services
The command completed successfully

解决方案 »

  1.   

    你的oracle server id 是student11g吗?
      

  2.   

    servid id是指什么?
    我的服务名,sid,数据库名都叫student11g
      

  3.   

    1.首先,169.254.105.177这个地址不是oracle的虚拟地址,可能是你的网卡配置成自动获取IP,但恰好获取失败,系统自动分配了一个169的私有地址。这时,你安装了oracle11G。
    要解决这个问题,需要设置静态IP,然后,把listener.org和tnsnames.ora中的IP改成计算机名(装好数据库后计算机名一定不要更改)。2.关于The listener supports no services这个问题,你重启了监听器以后,数据库实例并没有注册到监听器。
    你应该先启动监听器,再启动数据库。如果启动监听器时数据库已经启动,那你可以用sysdba的身份登录到数据库,然后手动把实例注册到监听器:alter system register;