配置成静态监听,在不启动实例的情况下,为什么远程无法登录呢?
listener.ora配置如下: 
LISTENER =
  (ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
(ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))
 SID_LIST_LISTENER=
   (SID_LIST=
(SID_DESC=
          (GLOBAL_DBNAME=mydb)
          (SID_NAME=mydb)
          (ORACLE_HOME=/oracle/product/10.2.0/db_1)
         (PRESPAWN_MAX=20)
  (PRESPAWN_LIST=
           (PRESPAWN_DESC=(PROTOCOL=tcp)(POOL_SIZE=2)(TIMEOUT=1))
         )
        )
       )
在另一台机子上登录:
SQL> conn sys/[email protected]:1521/mydb as sysdba
ERROR:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

解决方案 »

  1.   

    能够直接ping 通192.168.40.133吗 ?
      

  2.   


        可以通
    Pinging 192.168.40.133 with 32 bytes of data:Reply from 192.168.40.133: bytes=32 time=-6ms TTL=64
    Reply from 192.168.40.133: bytes=32 time<1ms TTL=64
    Reply from 192.168.40.133: bytes=32 time=-6ms TTL=64
    Reply from 192.168.40.133: bytes=32 time=-6ms TTL=64Ping statistics for 192.168.40.133:
        Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
        Minimum = 0ms, Maximum = -6ms, Average = 1073741819ms
    连接没有问题的,你看报的错:
        ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
    这说明能连接到监听。而且我只要报实例启动,就可以正常连接了。
      

  3.   

    试试这个帖子。
    http://www.cnblogs.com/xufung/archive/2008/08/05/693731.html
      

  4.   

    按照这些参数试试:
    静态注册实例:
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = /u0/oracle/product)
          (PROGRAM = extproc)
        )
        (SID_DESC =
          (GLOBAL_DBNAME = orcl)
          (ORACLE_HOME =/u0/oracle/product)
          (SID_NAME = orcl)
        )  )
      

  5.   

    修改成
    LISTENER =
      (ADDRESS_LIST=
    (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
    (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))SID_LIST_LISTENER=
      (SID_LIST=
         (SID_DESC=
              (GLOBAL_DBNAME=mydb)
              (SID_NAME=mydb)
              (ORACLE_HOME=/oracle/product/10.2.0/db_1)
          )
       ) 
    试试。然后在服务器端 lsnrctl stop  
    lsnrctl start.我测试过可以的。
      

  6.   

    我以前在windows下配置都是没有问题的,这次数据库改在linux下就遇到麻烦了。
      

  7.   

    或者试试不重启数据库,而运行ALTER SYSTEM REGISTER,看看会怎么样?
      

  8.   

    我修改listener.ora之后,每次都是重启监听了。
      

  9.   

    我测试过了,需要重启oracle 服务,才能登陆的。
      

  10.   

    是呀,静态监听不就是提供这个功能的吗?
    原来oracle装在windows下都是这样操作的,我都是在我的电脑上远程登录远程oracle,然后执行关闭,启动的操作的。
    >sql /nolog
    sql> conn sys/[email protected]:1521/mydb as sysdba
    sql> shutdown immediate
    sql> startup
    这样都是没问题的。可以把oracle关闭再启动。
      

  11.   

    如果真是这样的话,那我就要重新学习这部分的东西了。
    难道我以前都错了?
    在windows下刚装上oracle的时候默认是动态监听,那时我在自己电脑上把oracle停掉,就启动不了了,得跑到服务器那去重新启动数据库,
    后来配了个静态的,才解决了问题。
      

  12.   

    能说详细点吗?
    我在windows下注册一个静态监听就可以了,可是在linux下怎么也弄不出来。
    我按照上面帖子的配置,问题出在哪里,能帮忙看看吗?