渭南市住房和城乡建设局网站,学做网站用到哪些知识,软件开发工具的集成可以分成哪几个层次,辽宁省城乡和建设厅网站最近在做HACMP双机互备切换测试的时候#xff0c;发现一个问题#xff1a;A节点的listener端口为1521 #xff0c;B节点的listener端口为1522#xff0c;为什么两个节点的监听要用不同的端口号#xff1f;当时AB机使用不同端口是基于如下考虑#xff1a;HACMP的切换数据库…最近在做HACMP双机互备切换测试的时候发现一个问题A节点的listener端口为1521 B节点的listener端口为1522为什么两个节点的监听要用不同的端口号当时AB机使用不同端口是基于如下考虑HACMP的切换数据库的过程中希望同时控制监听的启动和停止如果两个数据库使用同一个监听考虑如下情况监听在A机和B都正常运行在1521A机故障db1切换到B机先关闭A机的监听文件系统切换到B机db1在B机启动启动监听提示端口已被占用可以忽略因为A的实例会动态注册到可用的listener中去。A机修复db1会优先切换回A机如果脚本中这时关闭B机监听虽然不会影响B机已经连接的客户端但是如果B机有新客户端连接将不能连接到B机的数据库。问题为什么在一个节点上不能同时起两个同一端口的listener呢(这个问题困惑我好久了就连做梦都在问为什么?)回答其实不光是不能同时起动端口相同的listener在listener.ora文件中同一个KEY值的listener也是不可以同时启动的就类似于是listener的唯一标识。即IPC addresses(KEY) or TCP port numbers are not duplicated.在考虑这个问题的过程中做了一些有关listener的实验在这里与大家分享1. 一个端口的listener可以注册多个实例(备注这个当然了比如我们在一个节点上安装多个实例)e.g.LSNRCTL status正在连接到 (DESCRIPTION(ADDRESS(PROTOCOLTCP)(HOST172.16.15.99)(PORT1521)))LISTENER 的 STATUS------------------------别名 LISTENER版本 TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Production启动日期 08-6月 -2009 09:17:22正常运行时间 4 天 0 小时 25 分 6 秒跟踪级别 off安全性 OFFSNMP OFF监听器参数文件 d:\oracle\network\admin\listener.ora监听器日志文件 d:\oracle\network\log\listener.log监听端点概要...(DESCRIPTION(ADDRESS(PROTOCOLtcp)(HOST172.16.15.99)(PORT1521)))(DESCRIPTION(ADDRESS(PROTOCOLipc)(PIPENAME\\.\pipe\EXTPROC0ipc)))(DESCRIPTION(ADDRESS(PROTOCOLtcp)(HOSTleiz)(PORT8080))(PresentationHTTP)(SessionRAW))(DESCRIPTION(ADDRESS(PROTOCOLtcp)(HOSTleiz)(PORT2100))(PresentationFTP)(SessionRAW))(DESCRIPTION(ADDRESS(PROTOCOLtcp)(HOSTleiz)(PORT8080))(PresentationHTTP)(SessionRAW))(DESCRIPTION(ADDRESS(PROTOCOLtcp)(HOSTleiz)(PORT2100))(PresentationFTP)(SessionRAW))服务摘要..服务 PLSExtProc 包含 1 个例程。例程 PLSExtProc, 状态 UNKNOWN, 包含此服务的 1 个处理程序...服务 leiz 包含 2 个例程。/*实例LEIZ*/例程 leiz, 状态 UNKNOWN, 包含此服务的 1 个处理程序.../*静态注册*/例程 leiz, 状态 READY, 包含此服务的 1 个处理程序.../*动态注册*/服务 leiz2 包含 2 个例程。/*实例LEIZ2*/例程 leiz2, 状态 UNKNOWN, 包含此服务的 1 个处理程序.../*静态注册*/例程 leiz2, 状态 READY, 包含此服务的 1 个处理程序.../*动态注册*/ 服务 leiz2XDB 包含 1 个例程。例程 leiz2, 状态 READY, 包含此服务的 1 个处理程序...服务 leizXDB 包含 1 个例程。例程 leiz, 状态 READY, 包含此服务的 1 个处理程序...命令执行成功2. 一个实例可以同时注册到多个不同端口的listener去(备注这个也没问题比如一个实例注册到多个不同端口的listener中)e.g.LSNRCTL status listener 正在连接到 (DESCRIPTION(ADDRESS(PROTOCOLTCP)(HOST172.16.15.99)(PORT1521)))LISTENER 的 STATUS------------------------别名 LISTENER 版本 TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Production启动日期 08-6月 -2009 09:17:22正常运行时间 4 天 0 小时 13 分 14 秒跟踪级别 off安全性 OFFSNMP OFF监听器参数文件 d:\oracle\network\admin\listener.ora监听器日志文件 d:\oracle\network\log\listener.log监听端点概要...(DESCRIPTION(ADDRESS(PROTOCOLtcp)(HOST172.16.15.99)(PORT1521)))(DESCRIPTION(ADDRESS(PROTOCOLipc)(PIPENAME\\.\pipe\EXTPROC0ipc)))(DESCRIPTION(ADDRESS(PROTOCOLtcp)(HOSTleiz)(PORT8080))(PresentationHTTP)(SessionRAW))(DESCRIPTION(ADDRESS(PROTOCOLtcp)(HOSTleiz)(PORT2100))(PresentationFTP)(SessionRAW))服务摘要..服务 PLSExtProc 包含 1 个例程。例程 PLSExtProc, 状态 UNKNOWN, 包含此服务的 1 个处理程序...服务 leiz 包含 2 个例程。例程 leiz, 状态 UNKNOWN, 包含此服务的 1 个处理程序...例程 leiz, 状态 READY, 包含此服务的 1 个处理程序... 服务 leizXDB 包含 1 个例程。例程 leiz, 状态 READY, 包含此服务的 1 个处理程序...命令执行成功LSNRCTL status listener3 正在连接到 (DESCRIPTION(ADDRESS(PROTOCOLTCP)(HOST172.16.15.99)(PORT1522)))LISTENER 的 STATUS------------------------别名 LISTENER3 版本 TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Production启动日期 08-6月 -2009 09:17:22正常运行时间 4 天 0 小时 25 分 32 秒跟踪级别 off安全性 OFFSNMP OFF监听器参数文件 d:\oracle\network\admin\listener.ora监听器日志文件 d:\oracle\network\log\listener3.log监听端点概要...(DESCRIPTION(ADDRESS(PROTOCOLtcp)(HOST172.16.15.99)(PORT1522)))服务摘要..服务 PLSExtProc 包含 1 个例程。例程 PLSExtProc, 状态 UNKNOWN, 包含此服务的 1 个处理程序...服务 leiz 包含 1 个例程。例程 leiz, 状态 UNKNOWN, 包含此服务的 1 个处理程序... 命令执行成功3. 一个节点不可以同时启动同样 IPC keys 或者同样 listener port number的listener即Verify IPC addresses or TCP port numbers are not duplicateda. 一个节点可以启动多个不同端口的listener e.g.[oraclerac1 admin]$ more listener.oraLISTENER_1522 (DESCRIPTION_LIST (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST rac1.domain.com)(PORT 1522))))LISTENER_1521 (DESCRIPTION_LIST (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST rac1.domain.com)(PORT 1521))))SID_LIST_LISTENER_1522 (SID_LIST (SID_DESC (SID_NAME PLSExtProc)(ORACLE_HOME /u01/app/oracle/product/10.2.0/db_1)(PROGRAM extproc))(SID_DESC (SID_NAME devdb1)(ORACLE_HOME /u01/app/oracle/product/10.2.0/db_1))) 一个节点可以启动多个不同端口的listenerLSNRCTL start listener_1521LSNRCTL start listener_1522LSNRCTL status listener_1521 Connecting to (DESCRIPTION(ADDRESS(PROTOCOLTCP)(HOSTrac1.domain.com)(PORT1521)))STATUS of the LISTENER------------------------Alias listener_1521 Version TNSLSNR for Linux: Version 10.2.0.4.0 - ProductionStart Date 17-JUN-2009 21:41:39Uptime 0 days 0 hr. 1 min. 0 secTrace Level offSecurity ON: Local OS AuthenticationSNMP OFFListener Parameter File /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.oraListener Log File /u01/app/oracle/product/10.2.0/db_1/network/log/listener_1521.logListening Endpoints Summary...(DESCRIPTION(ADDRESS(PROTOCOLtcp)(HOSTrac1.domain.com)(PORT1521)))Services Summary...Service ASM has 1 instance(s).Instance ASM1, status BLOCKED, has 1 handler(s) for this service...Service ASM_XPT has 1 instance(s).Instance ASM1, status BLOCKED, has 1 handler(s) for this service...Service devdb has 1 instance(s).Instance devdb1, status READY, has 1 handler(s) for this service...Service devdbXDB has 1 instance(s).Instance devdb1, status READY, has 1 handler(s) for this service...Service devdb_XPT has 1 instance(s).Instance devdb1, status READY, has 1 handler(s) for this service...The command completed successfullyLSNRCTL status listener_1522 Connecting to (DESCRIPTION(ADDRESS(PROTOCOLTCP)(HOSTrac1.domain.com)(PORT1522)))STATUS of the LISTENER------------------------Alias listener_1522 Version TNSLSNR for Linux: Version 10.2.0.4.0 - ProductionStart Date 17-JUN-2009 21:41:48Uptime 0 days 0 hr. 0 min. 55 secTrace Level offSecurity ON: Local OS AuthenticationSNMP OFFListener Parameter File /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.oraListener Log File /u01/app/oracle/product/10.2.0/db_1/network/log/listener_1522.logListening Endpoints Summary...(DESCRIPTION(ADDRESS(PROTOCOLtcp)(HOSTrac1.domain.com)(PORT1522)))Services Summary...Service PLSExtProc has 1 instance(s).Instance PLSExtProc, status UNKNOWN, has 1 handler(s) for this service...Service devdb1 has 1 instance(s).Instance devdb1, status UNKNOWN, has 1 handler(s) for this service...The command completed successfullyLSNRCTL stop listener_1521Connecting to (DESCRIPTION(ADDRESS(PROTOCOLTCP)(HOSTrac1.domain.com)(PORT1521)))The command completed successfullyLSNRCTL stop listener_1522Connecting to (DESCRIPTION(ADDRESS(PROTOCOLTCP)(HOSTrac1.domain.com)(PORT1522)))The command completed successfullyb. 一个节点不可以同时启动同样 listener port number的listener e.g.[oraclerac1 admin]$ more listener.oraLISTENER_1522 (DESCRIPTION_LIST (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST rac1.domain.com)(PORT 1522))))LISTENER_1521 (DESCRIPTION_LIST (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST rac1.domain.com)(PORT 1522))))SID_LIST_LISTENER_1522 (SID_LIST (SID_DESC (SID_NAME PLSExtProc)(ORACLE_HOME /u01/app/oracle/product/10.2.0/db_1)(PROGRAM extproc))(SID_DESC (SID_NAME devdb1)(ORACLE_HOME /u01/app/oracle/product/10.2.0/db_1))) 一个节点不可以同时启动同样 listener port number的listenerLSNRCTL start listener_1521 Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...TNSLSNR for Linux: Version 10.2.0.4.0 - ProductionSystem parameter file is /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.oraLog messages written to /u01/app/oracle/product/10.2.0/db_1/network/log/listener_1521.logListening on: (DESCRIPTION(ADDRESS(PROTOCOLtcp)(HOSTrac1.domain.com)(PORT1522)))Connecting to (DESCRIPTION(ADDRESS(PROTOCOLTCP)(HOSTrac1.domain.com)(PORT1522)))STATUS of the LISTENER------------------------Alias listener_1521Version TNSLSNR for Linux: Version 10.2.0.4.0 - ProductionStart Date 17-JUN-2009 21:46:12Uptime 0 days 0 hr. 0 min. 0 secTrace Level offSecurity ON: Local OS AuthenticationSNMP OFFListener Parameter File /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.oraListener Log File /u01/app/oracle/product/10.2.0/db_1/network/log/listener_1521.logListening Endpoints Summary...(DESCRIPTION(ADDRESS(PROTOCOLtcp)(HOSTrac1.domain.com)(PORT1522)))The listener supports no servicesThe command completed successfullyLSNRCTL start listener_1522 TNS-01106: Listener using listener name listener_1521 has already been startedc.一个节点不可以同时启动同样 IPC keys 的listener e.g.[oraclerac1 admin]$ more listener.oraLISTENER_1522 (DESCRIPTION_LIST (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST rac1.domain.com)(PORT 1522))(ADDRESS (PROTOCOL IPC)(KEY EXTPROC))))LISTENER_1521 (DESCRIPTION_LIST (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST rac1.domain.com)(PORT 1521))(ADDRESS (PROTOCOL IPC)(KEY EXTPROC))))SID_LIST_LISTENER_1522 (SID_LIST (SID_DESC (SID_NAME PLSExtProc)(ORACLE_HOME /u01/app/oracle/product/10.2.0/db_1)(PROGRAM extproc))(SID_DESC (SID_NAME devdb1)(ORACLE_HOME /u01/app/oracle/product/10.2.0/db_1))) 一个节点不可以同时启动同样 IPC keys 的listenerLSNRCTL start listener_1522 Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...TNSLSNR for Linux: Version 10.2.0.4.0 - ProductionSystem parameter file is /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.oraLog messages written to /u01/app/oracle/product/10.2.0/db_1/network/log/listener_1522.logListening on: (DESCRIPTION(ADDRESS(PROTOCOLtcp)(HOSTrac1.domain.com)(PORT1522)))Listening on: (DESCRIPTION(ADDRESS(PROTOCOLipc)(KEYEXTPROC)))Connecting to (DESCRIPTION(ADDRESS(PROTOCOLTCP)(HOSTrac1.domain.com)(PORT1522)))STATUS of the LISTENER------------------------Alias listener_1522Version TNSLSNR for Linux: Version 10.2.0.4.0 - ProductionStart Date 17-JUN-2009 22:09:40Uptime 0 days 0 hr. 0 min. 0 secTrace Level offSecurity ON: Local OS AuthenticationSNMP OFFListener Parameter File /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.oraListener Log File /u01/app/oracle/product/10.2.0/db_1/network/log/listener_1522.logListening Endpoints Summary...(DESCRIPTION(ADDRESS(PROTOCOLtcp)(HOSTrac1.domain.com)(PORT1522)))(DESCRIPTION(ADDRESS(PROTOCOLipc)(KEYEXTPROC)))Services Summary...Service PLSExtProc has 1 instance(s).Instance PLSExtProc, status UNKNOWN, has 1 handler(s) for this service...Service devdb1 has 1 instance(s).Instance devdb1, status UNKNOWN, has 1 handler(s) for this service...The command completed successfullyLSNRCTL start listener_1521 Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...TNSLSNR for Linux: Version 10.2.0.4.0 - ProductionSystem parameter file is /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.oraLog messages written to /u01/app/oracle/product/10.2.0/db_1/network/log/listener_1521.logListening on: (DESCRIPTION(ADDRESS(PROTOCOLtcp)(HOSTrac1.domain.com)(PORT1521)))Error listening on: (DESCRIPTION(ADDRESS(PROTOCOLIPC)(KEYEXTPROC)))TNS-12542: TNS:address already in useTNS-12560: TNS:protocol adapter errorTNS-00512: Address already in useLinux Error: 98: Address already in useListener failed to start. See the error message(s) above...SymptomsThere are two or more oracle instances in two seperate oracle homes. Both listeners need to run concurrently. When starting a second listener, a TNS-01106 Listener using listener name %s has already been started error is received.CauseA second listener process attempted to start with the same IPC key, port address as that of an listener already running.SolutionVerify IPC addresses or TCP port numbers are not duplicated#listener.ora file for the first listenerLISTENER (ADDRESS_LIST (ADDRESS (PROTOCOL IPC)(KEY ORCL))(ADDRESS (PROTOCOL IPC)(KEY PNPKEY))(ADDRESS (PROTOCOL TCP)(Host jumbo)(Port 1521)))#listener.ora file for the second listenerLISTENER (ADDRESS_LIST (ADDRESS (PROTOCOL IPC)(KEY ORCL))(ADDRESS (PROTOCOL IPC)(KEY PNPKEY))(ADDRESS (PROTOCOL TCP)(Host jumbo)(Port 1521)))The listener.ora file for the 2nd listener example must have different IPC keys from the first listener.ora file and the port number for the TCP address must be different between any other listener definitions.Implement the changes and restart the listeners参考文献1.Subject: TNS-01106: Listener using listener name %s has already been startedDoc ID: 102430.1 Type: PROBLEMModified Date : 22-JAN-2008 Status: PUBLISHED