Oracle数据库在一台机器配置两个listener

  问题:一台机器同时装两套数据库时(实例名o8161,o8151),无法同时启动两个listener,当启动第二个listener时,显示错误。

  $ lsnrctl start

  LSNRCTL for IBM/AIX RISC System/6000: Version 8.1.5.0.0 - Production on 14-SEP-00 09:25:17

  (c) Copyright 1998 Oracle Corporation. All rights reserved.

  TNS-01106: Listener using listener name LISTENER has already been started

  $ oerr tns 1106
  01106, 00000, "Listener using listener name %s has already been started"
  // *Cause: Another listener is already listening on one of the ADDRESSes
  // specified.
  // *Action: Shutdown the previous listener specified by the listener name
  // before starting this one.

  问题产生原因:
  两个实例的LISTENER.ORA中IPC协议的KEY是相同,而一个系统中KEY必须是唯一的.

  解决办法:
  修改key的值即可。修改后的文件信息:

  o8161实例:(没有修改)
  # LISTENER.ORA Configuration File:/oracle/dbs/opstemp/szpcac1/network/admin/listener.ora
  # Generated by Oracle configuration tools.

  LISTENER =
  (DESCRIPTION_LIST =
  (DESCRIPTION =
  (ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
  )
  (ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = TCP)(HOST = loopback)(PORT = 1521))
  )
  )
  (DESCRIPTION =
  (PROTOCOL_STACK =
  (PRESENTATION = GIOP)
  (SESSION = RAW)
  )
  (ADDRESS = (PROTOCOL = TCP)(HOST = loopback)(PORT = 2481))
  )
  )

  SID_LIST_LISTENER =
  (SID_LIST =
  (SID_DESC =
  (SID_NAME = PLSExtProc)
  (ORACLE_HOME = /oracle)
  (PROGRAM = extproc)
  )
  (SID_DESC =
  (ORACLE_HOME = /oracle)
  (SID_NAME = o8161)
  )
  )

  08151实例:(经过修改)
  # LISTENER.ORA Configuration File:/ora815/network/admin/listener.ora
  # Generated by Oracle Net8 Assistant

  LISTENER =
  (DESCRIPTION_LIST =
  (DESCRIPTION =
  (ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = IPC)(KEY = TESTo815))
  )
  (ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = TCP)(HOST = loopback)(PORT = 1526))
  )
  )
  )

  SID_LIST_LISTENER =
  (SID_LIST =
  (SID_DESC =
  (SID_NAME = ora8151)
  (ORACLE_HOME = /ora815)
  (PROGRAM = extproc)
  )
  )