ORACLE之手动注册监听listener。alter system set local_listener="XXX"
记录下刚刚做的一个为一个数据库(t02)配置多个监听(listener)的实验,过程有点小曲折。
(1)新增两个测试的监听,listener.ora的配置内容(可纯手动编辑该文件或使用netca)如下:
(LISTENER为系统原有;L1、L2为测试用新增的监听)
- # listener.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
- # Generated by Oracle configuration tools.
- L2 =
- (DESCRIPTION_LIST =
- (DESCRIPTION =
- (ADDRESS = (PROTOCOL = TCP)(HOST = PC1255-20110528)(PORT = 1523))
- )
- )
- L1 =
- (DESCRIPTION_LIST =
- (DESCRIPTION =
- (ADDRESS = (PROTOCOL = TCP)(HOST = PC1255-20110528)(PORT = 1522))
- )
- )
- SID_LIST_LISTENER =
- (SID_LIST =
- (SID_DESC =
- (SID_NAME = PLSExtProc)
- (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
- (PROGRAM = extproc)
- )
- )
- LISTENER =
- (DESCRIPTION_LIST =
- (DESCRIPTION =
- (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
- (ADDRESS = (PROTOCOL = TCP)(HOST = PC1255-20110528)(PORT = 1521))
- )
- )
(2)配置tnsnames.ora,使数据库(t02)可同时使用以上3个监听:
- # tnsnames.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora
- # Generated by Oracle configuration tools.
- T01 =
- (DESCRIPTION =
- (ADDRESS = (PROTOCOL = TCP)(HOST = PC1255-20110528)(PORT = 1521))
- (CONNECT_DATA =
- (SERVER = DEDICATED)
- (SERVICE_NAME = t01)
- )
- )
- T02 =
- (DESCRIPTION =
- (ADDRESS = (PROTOCOL = TCP)(HOST = PC1255-20110528)(PORT = 1521))
- (ADDRESS = (PROTOCOL = TCP)(HOST = PC1255-20110528)(PORT = 1522))
- (ADDRESS = (PROTOCOL = TCP)(HOST = PC1255-20110528)(PORT = 1523))
- (CONNECT_DATA =
- (SERVER = DEDICATED)
- (SERVICE_NAME = t02)
- )
- )
- EXTPROC_CONNECTION_DATA =
- (DESCRIPTION =
- (ADDRESS_LIST =
- (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
- )
- (CONNECT_DATA =
- (SID = PLSExtProc)
- (PRESENTATION = RO)
- )
- )
(3)检查及测试,发现问题:
检查的时候发现除了默认的LISTENER监听外,L1和L2始终不能注册服务:
- C:\>lsnrctl
- LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 24-7月 -2011 22:19:24
- Copyright (c) 1991, 2005, Oracle. All rights reserved.
- 欢迎来到LSNRCTL, 请键入"help"以获得信息。
- LSNRCTL> status
- 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
- LISTENER 的 STATUS
- ------------------------
- 别名 LISTENER
- 版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
- 启动日期 24-7月 -2011 22:14:18
- 正常运行时间 0 天 0 小时 5 分 13 秒
- 跟踪级别 off
- 安全性 ON: Local OS Authentication
- SNMP OFF
- 监听程序参数文件 D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
- 监听程序日志文件 D:\oracle\product\10.2.0\db_1\network\log\listener.log
- 监听端点概要...
- (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
- (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=PC1255-20110528)(PORT=1521)))
- 服务摘要..
- 服务 "+ASM_XPT" 包含 1 个例程。
- 例程 "+asm", 状态 BLOCKED, 包含此服务的 1 个处理程序...
- 服务 "+asm" 包含 1 个例程。
- 例程 "+asm", 状态 BLOCKED, 包含此服务的 1 个处理程序...
- 服务 "PLSExtProc" 包含 1 个例程。
- 例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
- 服务 "t01" 包含 1 个例程。
- 例程 "t01", 状态 READY, 包含此服务的 1 个处理程序...
- 服务 "t01XDB" 包含 1 个例程。
- 例程 "t01", 状态 READY, 包含此服务的 1 个处理程序...
- 服务 "t01_XPT" 包含 1 个例程。
- 例程 "t01", 状态 READY, 包含此服务的 1 个处理程序...
- 命令执行成功
- LSNRCTL> stop
- 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
- 命令执行成功
- LSNRCTL> set curr L1
- 目前的监听程序为 L1
- LSNRCTL> status
- 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=PC1255-20110528)(PORT=1522)))
- LISTENER 的 STATUS
- ------------------------
- 别名 L1
- 版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
- 启动日期 24-7月 -2011 22:14:19
- 正常运行时间 0 天 0 小时 5 分 26 秒
- 跟踪级别 off
- 安全性 ON: Local OS Authentication
- SNMP OFF
- 监听程序参数文件 D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
- 监听程序日志文件 D:\oracle\product\10.2.0\db_1\network\log\l1.log
- 监听端点概要...
- (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=PC1255-20110528)(PORT=1522)))
- 监听程序不支持服务
- 命令执行成功
- LSNRCTL> set curr L2
- 目前的监听程序为 L2
- LSNRCTL> status
- 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=PC1255-20110528)(PORT=1523)))
- LISTENER 的 STATUS
- ------------------------
- 别名 L2
- 版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
- 启动日期 24-7月 -2011 22:14:19
- 正常运行时间 0 天 0 小时 5 分 38 秒
- 跟踪级别 off
- 安全性 ON: Local OS Authentication
- SNMP OFF
- 监听程序参数文件 D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
- 监听程序日志文件 D:\oracle\product\10.2.0\db_1\network\log\l2.log
- 监听端点概要...
- (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=PC1255-20110528)(PORT=1523)))
- 监听程序不支持服务
- 命令执行成功
停止了默认的LISTENER监听后,使用tns进行连接测试的时候报错(ORA-12514):
- C:\Documents and Settings\Administrator>sqlplus scott/tiger@t02
- SQL*Plus: Release 10.2.0.1.0 - Production on 星期日 7月 24 22:20:06 2011
- Copyright (c) 1982, 2005, Oracle. All rights reserved.
- ERROR:
- ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
(4)分析问题:
一阵google之后发现,如果默认端口不是1521,则需要设置LOCAL_LISTENER来手动指定监听别名:
When configuring the listener to listen on TCP/IP, you should enter the default port of 1521. If you do not, you must configure the LOCAL_LISTENER parameter in the intialization parameter file and resolve the listener name through a naming method.
http://download.oracle.com/docs/cd/B13789_01/network.101/b10775/listenercfg.htm
(5)解决问题(此处的T02为step 2的tnsnames.ora里面的T02):
- C:\Documents and Settings\Administrator>set oracle_sid=t02
- C:\Documents and Settings\Administrator>sqlplus / as sysdba
- SQL*Plus: Release 10.2.0.1.0 - Production on 星期日 7月 24 22:21:55 2011
- Copyright (c) 1982, 2005, Oracle. All rights reserved.
- 已连接到空闲例程。
- SQL> select status,instance_name from v$instance;
- STATUS INSTANCE_NAME
- ------------------------ --------------------------------
- OPEN t02
- SQL> alter system set local_listener="T02";
- 系统已更改。
- SQL>
(6)验证,再测试:
验证,发现L1、L2已能正常注册服务:
- LSNRCTL> set curr L1
- 目前的监听程序为 L1
- LSNRCTL> status
- 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=PC1255-20110528)(PORT=1522)))
- LISTENER 的 STATUS
- ------------------------
- 别名 L1
- 版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
- 启动日期 24-7月 -2011 22:14:19
- 正常运行时间 0 天 0 小时 32 分 54 秒
- 跟踪级别 off
- 安全性 ON: Local OS Authentication
- SNMP OFF
- 监听程序参数文件 D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
- 监听程序日志文件 D:\oracle\product\10.2.0\db_1\network\log\l1.log
- 监听端点概要...
- (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=PC1255-20110528)(PORT=1522)))
- 服务摘要..
- 服务 "t02" 包含 1 个例程。
- 例程 "t02", 状态 READY, 包含此服务的 1 个处理程序...
- 服务 "t02XDB" 包含 1 个例程。
- 例程 "t02", 状态 READY, 包含此服务的 1 个处理程序...
- 服务 "t02_XPT" 包含 1 个例程。
- 例程 "t02", 状态 READY, 包含此服务的 1 个处理程序...
- 命令执行成功
- LSNRCTL> set curr L2
- 目前的监听程序为 L2
- LSNRCTL> status
- 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=PC1255-20110528)(PORT=1523)))
- LISTENER 的 STATUS
- ------------------------
- 别名 L2
- 版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
- 启动日期 24-7月 -2011 22:14:19
- 正常运行时间 0 天 0 小时 33 分 6 秒
- 跟踪级别 off
- 安全性 ON: Local OS Authentication
- SNMP OFF
- 监听程序参数文件 D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
- 监听程序日志文件 D:\oracle\product\10.2.0\db_1\network\log\l2.log
- 监听端点概要...
- (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=PC1255-20110528)(PORT=1523)))
- 服务摘要..
- 服务 "t02" 包含 1 个例程。
- 例程 "t02", 状态 READY, 包含此服务的 1 个处理程序...
- 服务 "t02XDB" 包含 1 个例程。
- 例程 "t02", 状态 READY, 包含此服务的 1 个处理程序...
- 服务 "t02_XPT" 包含 1 个例程。
- 例程 "t02", 状态 READY, 包含此服务的 1 个处理程序...
- 命令执行成功
- LSNRCTL>
再测试,发现scott用户能够正常登录:
- C:\Documents and Settings\Administrator>sqlplus scott/tiger@t02
- SQL*Plus: Release 10.2.0.1.0 - Production on 星期日 7月 24 22:24:43 2011
- Copyright (c) 1982, 2005, Oracle. All rights reserved.
- 连接到:
- Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
- With the Partitioning, OLAP and Data Mining options
- SQL>
(7)总结
当监听的端口是默认的1521时,PMON会动态注册该监听(listener);
当监听的端口不是默认的1521时,需要使用alter system set local_listener="T02";来手动注册监听。
ORACLE之手动注册监听listener。alter system set local_listener="XXX"的更多相关文章
- ORACLE启用非默认监听端口
1.修改listener.ora文件 LISTENER_TEST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP ...
- The listener supports no services oracle注册监听
问题登场: [oracle@my-e450 ~]$ lsnrctl status …… The listener supports no servicesThe command completed s ...
- oracle静态与动态监听
在运行lsnrctl命令的status时,常会看到如下返回值: 服务“test”包含1个例程. 例程"mydata",状态 UNKOWN,包含此服务的一个处理程序... 服务 ...
- oracle之 单实例监听修改端口
Oracle 单一主机多个实例多个监听器配置要点 1. 一台服务器主机, 有多个实例, 如: TSDB/ORCL; 又需要配置多个监听器 2. 需要指定不同的LISTENER端口 3.pmon ...
- oracle 11g rac修改监听端口(远程监听和本地监听)
转至:https://www.cnblogs.com/yj411511/p/12459533.html 目录 1.修改远程监听端口 1.1 查看远程监听状态 1.2 修改SCAN listener端口 ...
- Oracle 11gR2 RAC修改监听默认端口
一.修改SCAN listener port 1.1 修改SCAN listener port 1.2 重启SCAN listener生效新端口 1.3 确认更改 二.修改Listener Ports ...
- oracle 11g 修改默认监听端口1521
OS: Oracle Linux Server release 5.7 DB: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - ...
- 关于Oracle报“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”错误
关于Oracle报“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”错误原因:listener.ora中没有指定监听服务器名. 如下是解决思路: 尝试1.通过重启服务的方式启动数 ...
- Oracle启动两个监听
接上篇:Oracle服务器修改IP后 Oracle服务器更换IP后,办公网络里面可以正常访问了,外地的同事,连了vpn 也可以访问,以为可以收工回家,突然又有同事过来说,机房的服务器ping不通新的i ...
随机推荐
- MoveManager管理类
MoveManager:移动管理类 struct MoveOpt { int cur_seq; ObjecInfo* obj; }; std::map<ObjID, MoveOpt> m_ ...
- 1-Highcharts环境介绍及配置
Highcharts:功能强大.开源.美观.图表丰富.兼容绝大多数浏览器的纯js图表库,废话不多说,直接进入主题! 首先,下载Highcharts包文件,下载地址如下: 中文网下载中心:http:// ...
- ios开发之数据存取1-SQLite
iOS开发中常用的数据存取方式有: XML属性列表-PList NSKeyedArchiver 归档 Preference-偏好设置 SQLite3 Core Data-以面向对象的方式操作数据库SQ ...
- Chp5: Bit Manipulation
Bits Facts and Tricks x ^ 0s = x x & 0s = 0 x | 0s = x x ^ 1s = ~x x & 1s = x x | 1s = 1s ...
- Sublime Text 3配置与vim模式(待完整)
Sublime Text 3通过设置默认值与用户值的方式,来进行配置.默认值不允许更改,用户值是用户进行配置.同一属性,当用户值存在时,默认值就无效.打开Preference,如图: 先贴下我的Set ...
- crontab定时运行git命令 更新代码库
Q: http://stackoverflow.com/questions/7994663/git-push-via-cron I'm trying to run a git push fro ...
- WPF / Win Form:多线程去修改或访问UI线程数据的方法( winform 跨线程访问UI控件 )
WPF:谈谈各种多线程去修改或访问UI线程数据的方法http://www.cnblogs.com/mgen/archive/2012/03/10/2389509.html 子线程非法访问UI线程的数据 ...
- POJ1573Robot Motion
http://poj.org/problem?id=1573 #include<stdio.h> #include<stdlib.h> #include<cstring& ...
- 天灵灵,地灵灵,但愿这个一定灵!!!python调用win32api,启动应用程序窗口
这个是逼到没办法,C#那一套,一点基本没有. 还好,网上找到例程,可以指定帐户启动进程,但愿可以摆脱WIN SERVICE启动产生的SESSION 0 隔离问题. 因为这个问题,以SERVICE启动的 ...
- lintcode 中等题:搜索旋转排序数组II
题目 搜索旋转排序数组 II 跟进“搜索旋转排序数组”,假如有重复元素又将如何? 是否会影响运行时间复杂度? 如何影响? 为何会影响? 写出一个函数判断给定的目标值是否出现在数组中. 样例 给出[3, ...