CESHIDB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.163.90)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = ceshidb)
    )
  )
KAIFADB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.163.90)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = kaifadb)
    )
  )这是客户端的配置,但是这两个数据库ip和端口都相同,不同的是服务名,并且都可以成功登录,请问,这是怎么做的?我印象中,好像一个端口只能监听一个服务吧?

解决方案 »

  1.   

    关键在于 SERVICE_NAME 。侦听器上可以注册多个 oracle 实例和服务。
    当客户端向侦听器发送访问请求时,侦听器可以通过请求中的服务名(SERVICE_NAME)将访问请求路由到正确 oracle 实例或服务上。
      

  2.   

    如果一台Server跑多个实例的话,配置监听的端口不能相同。 默认是1521端口。 可以设置成其他端口。 
    ------------------------------------------------------------------------------ 
    Blog: http://blog.csdn.net/tianlesoftware 
    网上资源: http://tianlesoftware.download.csdn.net 
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx 
    DBA1 群:62697716(满); DBA2 群:62697977(满)
    DBA3 群:62697850   DBA 超级群:63306533;     
    聊天 群:40132017
    --加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请
      

  3.   

    多个位于不同服务器上的 oracle 实例共享一个侦听器是没有问题的。