一个主机有两个实例,要让它使用不同的监听端口
如何实现?
用netca可以创建监听,但是不知道如何把它和实例名关联起来

解决方案 »

  1.   

    在$ORACLE_HOME/network/admin下,修改你的listener.ora文件就可以
    多个实例可以使用一个listener
      

  2.   


    如何修改listener.ora?我要达到每个实例使用不同的监听端口的目的
      

  3.   

    用netmgr再创建一个listener,来监听另一个实例。
      

  4.   


    LISTENER_A =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = myhost.com)(PORT = 1523))
      )LISTENER_B =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = myhost.com)(PORT = 1522))
      )SID_LIST_LISTENER_B =
      (SID_LIST =
        (SID_DESC =
          (GLOBAL_DBNAME = b)
          (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
          (SID_NAME = b)
        )
      )SID_LIST_LISTENER_A =
      (SID_LIST =
        (SID_DESC =
          (GLOBAL_DBNAME = a)
          (SID_NAME = a)
          (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
        )
      )
      

  5.   


    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = test1)
          (ORACLE_HOME = /database/oracle/product/10.2.0/db_1)
          (GLOBAL_DBNAME = test1)
        )
      )SID_LIST_TESTLS =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = test2)
          (ORACLE_HOME = /database/oracle/product/10.2.0/db_1)
          (GLOBAL_DBNAME = test2)
        )
      )LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = test)(PORT = 1521))
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
        )
      )TESTLS =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = test)(PORT = 1522))
        )
      )说实话,这么做真没意义,楼主是测试呢吧?
      

  6.   


    配置过程
    1.用netmgr修改listener,建立两个listener,其中之一(假设为listener1)的 非1521端口,必须用静态注册方式
    2.用netmgr添加一个连接字符串,orcl2的信息,多添加一个server.在service naming里面定制连接的sid。
    3.把listener打开,
    lsnrctl start
    lsnrctl start listener1
      

  7.   

    据说每个实例使用不同的端口性能更好谢谢,楼上的好像是使用静态监听的方式解决,经测试通过
    不知道有没有人能说一下怎么通过动态监听的方式达到目的?据说是该local_listener参数即可,不知道是不是?
    还有使用静态监听好还是使用动态监听好?
      

  8.   

    listener 的静态注册:
    把相应信息写入 listener.ora,数据库启动时自动注册到listener上,自动生成 handler.
    service 状态是unkown,表示是静态注册的。listener的动态注册:
    数据库后台Pmon把数据库进程注册到1521的端口监听器里面去。
    你如果要做listener的failover,一般一个lisetener设置成动态的,一个listener设置成静态的,
    那么如果一个listener挂掉了,可以连接到另一个listener上去.(当然你要配置好tnsnames.ora符合
    failover条件)
      

  9.   


    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = /database/oracle/product/10.2.0/db_1)
          (PROGRAM = extproc)
        )
      )这个就是动态注册,但是不安全,会注册所有运行中的服务
      

  10.   


    可以类似在里面这样静态注册配置,也可以直接用oracle的动态注册。9i以上自动支持。