Oracle非默认监听的处理会遇到的问题以及处理方法

第一种情况:只是修改默认端口

1.当前监听状态:

C:\Windows\system32>lsnrctl status

LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 05-3月 -2015 11:48:45

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=zen-pc)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
启动日期                  05-3月 -2015 11:38:26
正常运行时间              0 天 0 小时 10 分 23 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          D:\oracleInstall\product\11.2.0\dbhome_1\network\admin\listener.ora
监听程序日志文件          d:\oracleinstall\diag\tnslsnr\zen-pc\listener\alert\log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=zen-pc)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
  实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "orclXDB" 包含 1 个实例。
  实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
服务 "zen" 包含 1 个实例。
  实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
命令执行成功

2.修改监听端口:

# listener.ora Network Configuration File: D:\oracleInstall\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\oracleInstall\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\oracleInstall\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = zen-pc)(PORT = 1522))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

ADR_BASE_LISTENER = D:\oracleInstall

3.重启监听:

C:\Windows\system32>lsnrctl status

LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 05-3月 -2015 12:32:53

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=zen-pc)(PORT=1522)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
启动日期                  05-3月 -2015 11:56:26
正常运行时间              0 天 0 小时 36 分 30 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          D:\oracleInstall\product\11.2.0\dbhome_1\network\admin\listener.ora
监听程序日志文件          d:\oracleinstall\diag\tnslsnr\zen-pc\listener\alert\log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=zen-pc)(PORT=1522)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
  实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功

C:\Windows\system32>

手动注册:
SQL> alter system register;

系统已更改。

SQL>

C:\Windows\system32>lsnrctl status

LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 05-3月 -2015 12:40:54

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=zen-pc)(PORT=1522)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
启动日期                  05-3月 -2015 11:56:26
正常运行时间              0 天 0 小时 44 分 31 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          D:\oracleInstall\product\11.2.0\dbhome_1\network\admin\listener.ora
监听程序日志文件          d:\oracleinstall\diag\tnslsnr\zen-pc\listener\alert\log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=zen-pc)(PORT=1522)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
  实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功

C:\Windows\system32>

可以看出实例还是没有注册上。在oracle的实例中指定本地监听

SQL> show parameters listener

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
listener_networks                    string
local_listener                       string
remote_listener                      string
SQL> alter system set local_listener=LISTENER ;
alter system set local_listener=LISTENER
*
第 1 行出现错误:
ORA-02097: 无法修改参数, 因为指定的值无效
ORA-00119: 系统参数 LOCAL_LISTENER 的说明无效
ORA-00132: 语法错误或无法解析的网络名称 ‘LISTENER‘

修改D:\oracleInstall\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora,添加:
LISTENER22 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = zen-pc)(PORT = 1522))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = zen)
    )
  )

重新设置
SQL> show parameters listener

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
listener_networks                    string
local_listener                       string
remote_listener                      string
SQL> alter system set local_listener=LISTENER22 ;

系统已更改。

SQL> show parameters listener

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
listener_networks                    string
local_listener                       string      LISTENER22
remote_listener                      string
SQL>

再次查看监听状态
C:\Windows\system32>lsnrctl status

LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 05-3月 -2015 13:50:01

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=zen-pc)(PORT=1522)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
启动日期                  05-3月 -2015 11:56:26
正常运行时间              0 天 1 小时 53 分 38 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          D:\oracleInstall\product\11.2.0\dbhome_1\network\admin\listener.ora
监听程序日志文件          d:\oracleinstall\diag\tnslsnr\zen-pc\listener\alert\log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=zen-pc)(PORT=1522)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
  实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "orclXDB" 包含 1 个实例。
  实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
服务 "zen" 包含 1 个实例。
  实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
命令执行成功

C:\Windows\system32>

至此监听成功注册上。

第二种情况监听的名字非默认,端口也非默认:

SQL> show parameters listener

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
listener_networks                    string
local_listener                       string      LISTENER22
remote_listener                      string
SQL>

C:\Windows\system32>lsnrctl status LISTENER_NEW

LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 05-3月 -2015 14:13:22

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=zen-pc)(PORT=1522)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER_NEW
版本                      TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
启动日期                  05-3月 -2015 14:12:19
正常运行时间              0 天 0 小时 1 分 7 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          D:\oracleInstall\product\11.2.0\dbhome_1\network\admin\listener.ora
监听程序日志文件          d:\oracleinstall\diag\tnslsnr\zen-pc\listener_new\alert\log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=zen-pc)(PORT=1522)))
服务摘要..
服务 "orclXDB" 包含 1 个实例。
  实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
服务 "zen" 包含 1 个实例。
  实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
命令执行成功

C:\Windows\system32>

结论:1.实例注册监听,确切的说pmon在注册监听的时候监听的名称不重要。

2.pmon在注册监听的时候会找默认的端口1521,如果端口不是这个就需要手动指定监听的端口以便于pmon发现将实例注册上。

3.非标准端口的监听在指定监听名称时无需和tnsnames.ora中指定的网络名字相同,

即文中示例中的(LISTENER_NEW与 local_listener string LISTENER22可以不同)。应此乐大师此文中的与此相关的表述有些许失误http://blog.csdn.net/leshami/article/details/6396989

时间: 2024-11-18 00:42:12

Oracle非默认监听的处理会遇到的问题以及处理方法的相关文章

oracle数据库静态监听和动态监听 区别

oracle静态监听和动态监听 一.什么是注册? 注册就是将数据库作为一个服务注册到监听程序.客户端不需要知道数据库名和实例名,只需要知道该数据库对外提供的服务名 就可以申请连接到数据库.这个服务名可能与实例名一样,也有可能不一样. 在数据库服务器启动过程中,数据库服务器会向监听程序注册相应的服务(无论何时启动一个数据库,默认地都有两条信息注册 到监听器中:数据库服务器对应的实例和服务.) 相当于是这样:在数据库服务器和客户端之间有一监听程序(Listener),在监听程序中,会记录相应数据库对

Oracle 动态/静态监听注册

一.动态监听 oracle监听器是一个独立的进程,通常在数据库实例启动前先启动,当oracle实例在open时,会动态向监听器程序注册其service_names和instance_name.实例启动的时候,PMON进程会根据instance_name,service_name参数将实例和服务动态注册到listerer中. 1. listener.ora默认配置文件 # cat /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.

oracle 11g rac 监听程序offline

oracle 11g rac 监听程序在调整过网络后出现监听进程offline,而且两台节点之间频繁切换,查看日志/var/log/message 发现有频繁的注册撤销动作. 监听日志 /u01/app/oracle/diag/tnslsnr/rac1/listener/trace/listener.log监听文件 /u01/app/11.2.0/grid/network/admin/listener.oraoracle错误日志 /u01/app/oracle/diag/rdbms/oaorcl

AIX下RAC搭建 Oracle10G(五)安装oracle、建立监听

AIX下RAC搭建系列 AIX下RAC搭建 Oracle10G(五)安装oracle.建立监听 环境 节点 节点1 节点2 小机型号 IBM P-series 630 IBM P-series 630 主机名 AIX203 AIX204 交换机 SAN光纤交换机 存储 SAN T3存储 大纲流程例如以下: 第一部分:主机配置 一.检測系统环境 二.网络配置 三.用户和组 四.网络參数调整 五.时间同步 六.卷组 第二部分:安装hacmp并配置 七.hacmp安装并配置 第三部分:安装CRS 八.

修改oracle 10g rac监听端口号为1523的步骤

修改oracle  10g rac监听端口号为1523的步骤 一. 修改listener.ora ,将其中的1521改为1523.事先做该文件的备份,以便快速复原 二. 修改tnsnames.ora ,将remote_listener对应的值 在 tnsnames.ora中的参数改为1523,事先做该文件的备份,以便快速复原 三. 修改local_listener数据库初始化参数 alter system set local_listener = '(ADDRESS = (PROTOCOL =

Linux下安装oracle遇到启动监听服务器启动失败

1.发现监听服务器没有启动,则  lsntctl start 启动监听服务器: 2.发现TNS-12555问题: 3.查找TNS-12555错误,找到一个满意的答案: chmod  777 /var/tmp/.oracle 4.重新启动监听服务器,启动成功!

配置Oracle数据库和监听随Linux系统自启动【转】

配置Oracle数据库和监听随Linux系统自启动 在某些情况下需要在Linux操作系统上提供一种无人值守的随机启动Oracle的功能,目的也许仅仅是为了帮助那些对Oracle细节非常不关心的朋友.当然,如果有可能,一定不要使用这种自动化的方法,因为有太多不确定的因素存在.正途还是一边手工启动数据库,一边监控alert日志,以便第一时间发现问题解决问题. Anyway,随Linux系统启动数据库还是有其存在价值的,下面通过这个小文儿给大家展示一下这个自动化过程. 1.确保“/etc/oratab

Oracle 11g RAC 监听日常管理

需要必须掌握的命令,上周遇到了一个小问题,就是需要重启数据库监听,有的同学竟然使用oracle用户重启监听,原理就搞错了怎么行.以下操作都需要再grid用户下进行操作. 1.查看监听状态 <roidb2:+ASM2:/home/grid>$srvctl status listener Listener LISTENER is enabled Listener LISTENER is running on node(s): roidb1,roidb2 <roidb2:+ASM2:/home

oracle 11g 修改默认监听端口1521

OS: Oracle Linux Server release 5.7 DB: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production 1.查看监听状态: SQL> !lsnrctl status LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 12-NOV-2013 01:36:29 Copyright (c) 1991, 2011, O