联系:手机/微信(+86 17813235971) QQ(107644445)
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
在一台服务器上分别安装有Oracle 10g和Oracle 11g,现在需要对这两个数据库都配置对应的监听,使其能够正常工作,本文对配置方法做了总结,供参考学习
一、动态监听
Oracle 10g listener.ora配置
	[oracle@node1 admin]$ more listener.ora 
	SID_LIST_LISTENER =
	  (SID_LIST =
	    (SID_DESC =
	      (SID_NAME = PLSExtProc)
	      (ORACLE_HOME = /opt/oracle/product/10.2.0/db_1)
	      (PROGRAM = extproc)
	    )
	  )
	LISTENER =
	  (DESCRIPTION_LIST =
	    (DESCRIPTION =
	      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
	      (ADDRESS = (PROTOCOL = TCP)(HOST = node1.srtcloud.com)(PORT = 1521))
	    )
	  )
Oracle 11g listener.ora配置
	[oracle@node1 admin]$ more listener.ora 
	# listener.ora Network Configuration File: /opt/oracle/product/11.2.0/db_1/network/admin/listener.ora
	# Generated by Oracle configuration tools.
	LISTENER =
	  (DESCRIPTION_LIST =
	    (DESCRIPTION =
	      (ADDRESS = (PROTOCOL = TCP)(HOST = node1.srtcloud.com)(PORT = 1522))
	      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
	    )
	  )
	ADR_BASE_LISTENER = /opt/oracle
	[oracle@node1 admin]$ more tnsnames.ora 
	# tnsnames.ora Network Configuration File: /opt/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
	# Generated by Oracle configuration tools.
	ORA11G =
	  (DESCRIPTION =
	    (ADDRESS_LIST =
	      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.9.140)(PORT = 1522))
	    )
	    (CONNECT_DATA =
	      (SERVICE_NAME = ora11g)
	    )
	  )
	SQL> show parameter local_lis
	NAME                                 TYPE        VALUE
	———————————— ———– ——————————
	local_listener                       string      ora11g
	[oracle@node1 admin]$ ps -ef|grep tns|grep -v grep
	oracle   24713     1  0 10:30 ?        00:00:00 /opt/oracle/product/11.2.0/db_1/bin/tnslsnr LISTENER -inherit
	oracle   24720     1  0 10:30 ?        00:00:00 /opt/oracle/product/10.2.0/db_1/bin/tnslsnr LISTENER -inherit
	 
事项说明:
1、10g和11g两个数据库都采用动态监听,但是由于默认情况下,动态注册只会注册1521端口,所以其中一个数据库需要设置local_listener参数,用于监听其他端口
2、10g和11g两个数据库都采用动态监听,会启动两个互不干扰的监听进程
	二、静态监听 
1)使用一个监听
		 
		 
		 
		 
		 
		 
		 
		 
		 
		 
1)使用一个监听
		[oracle@node1 admin]$ more listener.ora
		# listener.ora Network Configuration File: /opt/oracle/product/11.2.0/db_1/network/admin/listener.ora
		# Generated by Oracle configuration tools.
		SID_LIST_LISTENER =
		  (SID_LIST =
		    (SID_DESC =
		     (GLOBAL_DBNAME = chf)
		     (ORACLE_HOME = /opt/oracle/product/10.2.0/db_1)
		     (SID_NAME = chf)
		    )
		   (SID_DESC =
		     (GLOBAL_DBNAME = ecp)
		     (ORACLE_HOME = /opt/oracle/product/10.2.0/db_1)
		     (SID_NAME = ecp)
		     )
		    (SID_DESC =
		     (GLOBAL_DBNAME = ora11g)
		     (ORACLE_HOME = /opt/oracle/product/11.2.0/db_1)
		     (SID_NAME = ora11g)
		    )
		  )
		LISTENER =
		  (DESCRIPTION_LIST =
		    (DESCRIPTION =
		      (ADDRESS = (PROTOCOL = TCP)(HOST =node1.srtcloud.com)(PORT = 1521))
		    )
		  )
		[oracle@node1 admin]$ lsnrctl 
		LSNRCTL for Linux: Version 11.2.0.3.0 – Production on 01-NOV-2011 10:03:44
		Copyright (c) 1991, 2011, Oracle.  All rights reserved.
		Welcome to LSNRCTL, type "help" for information.
		LSNRCTL> start
		Starting /opt/oracle/product/11.2.0/db_1/bin/tnslsnr: please wait…
		TNSLSNR for Linux: Version 11.2.0.3.0 – Production
		System parameter file is /opt/oracle/product/11.2.0/db_1/network/admin/listener.ora
		Log messages written to /opt/oracle/diag/tnslsnr/node1/listener/alert/log.xml
		Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=node1.srtcloud.com)(PORT=1521)))
		Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=node1.srtcloud.com)(PORT=1521)))
		STATUS of the LISTENER
		————————
		Alias                     LISTENER
		Version                   TNSLSNR for Linux: Version 11.2.0.3.0 – Production
		Start Date                01-NOV-2011 10:03:45
		Uptime                    0 days 0 hr. 0 min. 0 sec
		Trace Level               off
		Security                  ON: Local OS Authentication
		SNMP                      OFF
		Listener Parameter File   /opt/oracle/product/11.2.0/db_1/network/admin/listener.ora
		Listener Log File         /opt/oracle/diag/tnslsnr/node1/listener/alert/log.xml
		Listening Endpoints Summary…
		  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=node1.srtcloud.com)(PORT=1521)))
		Services Summary…
		Service "chf" has 1 instance(s).
		  Instance "chf", status UNKNOWN, has 1 handler(s) for this service…
		Service "ecp" has 1 instance(s).
		  Instance "ecp", status UNKNOWN, has 1 handler(s) for this service…
		Service "ora11g" has 1 instance(s).
		  Instance "ora11g", status UNKNOWN, has 1 handler(s) for this service…
		The command completed successfully
		LSNRCTL> status
		Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=node1.srtcloud.com)(PORT=1521)))
		STATUS of the LISTENER
		————————
		Alias                     LISTENER
		Version                   TNSLSNR for Linux: Version 11.2.0.3.0 – Production
		Start Date                01-NOV-2011 10:03:45
		Uptime                    0 days 0 hr. 3 min. 57 sec
		Trace Level               off
		Security                  ON: Local OS Authentication
		SNMP                      OFF
		Listener Parameter File   /opt/oracle/product/11.2.0/db_1/network/admin/listener.ora
		Listener Log File         /opt/oracle/diag/tnslsnr/node1/listener/alert/log.xml
		Listening Endpoints Summary…
		  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=node1.srtcloud.com)(PORT=1521)))
		Services Summary…
		Service "chf" has 2 instance(s).
		  Instance "chf", status UNKNOWN, has 1 handler(s) for this service…
		  Instance "chf", status READY, has 1 handler(s) for this service…
		Service "chfXDB" has 1 instance(s).
		  Instance "chf", status READY, has 1 handler(s) for this service…
		Service "chf_XPT" has 1 instance(s).
		  Instance "chf", status READY, has 1 handler(s) for this service…
		Service "ecp" has 2 instance(s).
		  Instance "ecp", status UNKNOWN, has 1 handler(s) for this service…
		  Instance "ecp", status READY, has 1 handler(s) for this service…
		Service "ecpXDB" has 1 instance(s).
		  Instance "ecp", status READY, has 1 handler(s) for this service…
		Service "ecp_XPT" has 1 instance(s).
		  Instance "ecp", status READY, has 1 handler(s) for this service…
		Service "ora11g" has 1 instance(s).
		  Instance "ora11g", status UNKNOWN, has 1 handler(s) for this service…
		The command completed successfully
		[oracle@node1 admin]$ ps -ef|grep tns|grep -v grep
		oracle   23602     1  0 10:03 ?        00:00:00 /opt/oracle/product/11.2.0/db_1/bin/tnslsnr LISTENER -inherit
		 
事项说明:
1、这种方法是采用一个监听实现监听所有实例,只会启动一个监听进程,只监听一个端口
2、实例中显示的为:11g一个实例,10g有两个实例的监听情况
3、这种监听方法可以在10g中配置,也可以在11g中配置,都能够正常工作
2)使用多个监听
Oracle 10g listener.ora配置
	[oracle@node1 admin]$ more listener.ora
	# listener.ora Network Configuration File: /opt/oracle/product/10.2.0/db_1/network/admin/listener.ora
	# Generated by Oracle configuration tools.
	SID_LIST_LISTENER =
	  (SID_LIST =
	    (SID_DESC =
	     (GLOBAL_DBNAME = chf)
	     (ORACLE_HOME = /opt/oracle/product/10.2.0/db_1)
	     (SID_NAME = chf)
	    )
	   (SID_DESC =
	     (GLOBAL_DBNAME = ecp)
	     (ORACLE_HOME = /opt/oracle/product/10.2.0/db_1)
	     (SID_NAME = ecp)
	     )
	  )
	LISTENER =
	  (DESCRIPTION_LIST =
	    (DESCRIPTION =
	      (ADDRESS = (PROTOCOL = TCP)(HOST =node1.srtcloud.com)(PORT = 1521))
	    )
	  )
	[oracle@node1 admin]$ lsnrctl status
	LSNRCTL for Linux: Version 10.2.0.4.0 – Production on 01-NOV-2011 10:35:12
	Copyright (c) 1991, 2007, Oracle.  All rights reserved.
	Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=node1.srtcloud.com)(PORT=1521)))
	STATUS of the LISTENER
	————————
	Alias                     LISTENER
	Version                   TNSLSNR for Linux: Version 10.2.0.4.0 – Production
	Start Date                01-NOV-2011 10:30:34
	Uptime                    0 days 0 hr. 4 min. 37 sec
	Trace Level               off
	Security                  ON: Local OS Authentication
	SNMP                      OFF
	Listener Parameter File   /opt/oracle/product/10.2.0/db_1/network/admin/listener.ora
	Listener Log File         /opt/oracle/product/10.2.0/db_1/network/log/listener.log
	Listening Endpoints Summary…
	  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=node1.srtcloud.com)(PORT=1521)))
	Services Summary…
	Service "chf" has 2 instance(s).
	  Instance "chf", status UNKNOWN, has 1 handler(s) for this service…
	  Instance "chf", status READY, has 1 handler(s) for this service…
	Service "chfXDB" has 1 instance(s).
	  Instance "chf", status READY, has 1 handler(s) for this service…
	Service "chf_XPT" has 1 instance(s).
	  Instance "chf", status READY, has 1 handler(s) for this service…
	Service "ecp" has 2 instance(s).
	  Instance "ecp", status UNKNOWN, has 1 handler(s) for this service…
	  Instance "ecp", status READY, has 1 handler(s) for this service…
	Service "ecpXDB" has 1 instance(s).
	  Instance "ecp", status READY, has 1 handler(s) for this service…
	Service "ecp_XPT" has 1 instance(s).
	  Instance "ecp", status READY, has 1 handler(s) for this service…
	The command completed successfully
	 
Oracle 11g listener.ora配置
	[oracle@node1 admin]$ more listener.ora
	# listener.ora Network Configuration File: /opt/oracle/product/10.2.0/db_1/network/admin/listener.ora
	# Generated by Oracle configuration tools.
	SID_LIST_LISTENER =
	  (SID_LIST =
	    (SID_DESC =
	     (GLOBAL_DBNAME = ora11g)
	     (ORACLE_HOME = /opt/oracle/product/11.2.0/db_1)
	     (SID_NAME = ora11g)
	    )
	  )
	LISTENER =
	  (DESCRIPTION_LIST =
	    (DESCRIPTION =
	      (ADDRESS = (PROTOCOL = TCP)(HOST =node1.srtcloud.com)(PORT = 1522))
	    )
	  )
	[oracle@node1 admin]$ lsnrctl status
	LSNRCTL for Linux: Version 11.2.0.3.0 – Production on 01-NOV-2011 10:37:04
	Copyright (c) 1991, 2011, Oracle.  All rights reserved.
	Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=node1.srtcloud.com)(PORT=1522)))
	STATUS of the LISTENER
	————————
	Alias                     LISTENER
	Version                   TNSLSNR for Linux: Version 11.2.0.3.0 – Production
	Start Date                01-NOV-2011 10:30:25
	Uptime                    0 days 0 hr. 6 min. 39 sec
	Trace Level               off
	Security                  ON: Local OS Authentication
	SNMP                      OFF
	Listener Parameter File   /opt/oracle/product/11.2.0/db_1/network/admin/listener.ora
	Listener Log File         /opt/oracle/diag/tnslsnr/node1/listener/alert/log.xml
	Listening Endpoints Summary…
	  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=node1.srtcloud.com)(PORT=1522)))
	Services Summary…
	Service "ora11g" has 2 instance(s).
	  Instance "ora11g", status UNKNOWN, has 1 handler(s) for this service…
	  Instance "ora11g", status READY, has 1 handler(s) for this service…
	Service "ora11gXDB" has 1 instance(s).
	  Instance "ora11g", status READY, has 1 handler(s) for this service…
	The command completed successfully
	[oracle@node1 admin]$ ps -ef|grep tns|grep -v grep
	oracle   24713     1  0 10:30 ?        00:00:00 /opt/oracle/product/11.2.0/db_1/bin/tnslsnr LISTENER -inherit
	oracle   24720     1  0 10:30 ?        00:00:00 /opt/oracle/product/10.2.0/db_1/bin/tnslsnr LISTENER -inherit
	 
事项说明: 使用了两个监听,分别监听不同的端口,对应不同的数据库
谢谢飞飞,今天用你这篇文章解决了一个问题
我是配置动态监听是11g使用PLSExtProc ,发现一个很奇怪的问题,TNSping 与10g的服务名ping不通,但是可以用