在listener.ora里设置了 
LISTENER1 = 
(DESCRIPTION_LIST = 
  (DESCRIPTION = 
  (ADDRESS_LIST = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1525)) 
    ) 
    ) 
  ) 
  ) SID_LIST_LISTENER = 
(SID_LIST = 
  (SID_DESC = 
  (SID_NAME = orcl) 
  (ORACLE_HOME = /oracle/product/10.2.0) 
  (GLOBAL_DBNAME = orcl2) 
  ) 
  ) 在tnsnames.ora里设置了: 
orcl2 = 
(DESCRIPTION = 
  (ADDRESS_LIST = 
  (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1525)) 
    ) 
  (CONNECT_DATA = 
  (SERVER = SHARED) 
  (SERVICE_NAME = orcl2) 
  ) 
  ) 在sqlnet.ora里设置了: 
SQLNET.AUTHENTICATION_SERVICES= (NTS) 
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) 
没有设置NAMES.DEFAULT_DOMAIN 现在问题是: 
conn hr/password@hostname:1525/orcl2        可以连接 
conn hr/password@orcl2                      不能连接 
conn hr/password@orcl(动态注册的服务)         可以连接 为什么第二项不能连接?难道一定要动态注册才能用local naming吗?望达人指点。 

解决方案 »

  1.   

    这样改:
    在tnsnames.ora里设置了: 
    orcl2 = 
    (DESCRIPTION = 
      (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1525)) 
        ) 
      (CONNECT_DATA = 
      (SERVER = SHARED) 
      (SERVICE_NAME = orcl
      ) 
      ) 
      

  2.   


    不行啊,这样怎么跟listener提供的服务联系起来啊?
      

  3.   

    你的数据库SID是orcl吧?db_name是orcl2?
    你按我说的试了吗?你如果想把实例注册到在1525端口的LISTENER1,设置local_listener参数。 
      

  4.   

    orcl2是你数据库的名字,GLOBAL_DBNAME这项不是必需的。
    SID_LIST_LISTENER是定义SID和listener的对应关系的,如果你想使用orcl2进行
    连接的话,SID_NAME就应该设置为orcl2。修改了一下,请参考:
    在listener.ora里设置了 
    LISTENER1 = 
    (DESCRIPTION_LIST = 
      (DESCRIPTION = 
      (ADDRESS_LIST = 
        (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1525)) 
        ) 
        ) 
      ) 
      ) SID_LIST_LISTENER1 = 
    (SID_LIST = 
      (SID_DESC = 
      (GLOBAL_DBNAME = orcl2) 
      (ORACLE_HOME = /oracle/product/10.2.0) 
      (SID_NAME = orcl2) 
      ) 
      ) 在tnsnames.ora里设置了: 
    orcl2 = 
    (DESCRIPTION = 
      (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1525)) 
        ) 
      (CONNECT_DATA = 
      (SERVER = SHARED) 
      (SERVICE_NAME = orcl2) 
      ) 
      ) 做好了tnsping一下。