记得之前Oracle原厂的工程师在例行检查时发现一台Oracle数据库服务器的上启动了两个监听,分别监听的是1521和1581端口,而且两个端口都在用,当时当作一个比较奇怪的现象,没有能理解原因是什么。最近几天在看Oracle网络配置的文档,无意间在虚拟机上启动了两个监听,就又想起了之前的问题。到底是因为什么原因呢?

下面先来还原一下整个过程。

当时是在做配置静态监听的练习,在listener.ora中配置了一个静态监听:ORCL =

(DESCRIPTION=

(ADDRESS_LIST=

(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.2)(PORT=1581))

SID_LIST_ORCL=

(SID_LIST=

(SID_DESC=

(GLOBAL_DBNAME=orcl)

(ORACLE_HOME=/u02/app/oracle/product/11.2.4/db1)

(SID_NAME=orcl)))

启动正常:[oracle@rhel6 admin]$ lsnrctl start orcl

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 03-JUN-2017 16:22:41

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

Starting /u02/app/oracle/product/11.2.4/db1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.4.0 - Production

System parameter file is /u02/app/oracle/product/11.2.4/db1/network/admin/listener.ora

Log messages written to /u02/app/oracle/diag/tnslsnr/rhel6/orcl/alert/log.xml

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.2)(PORT=1581)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.2)(PORT=1581)))

STATUS of the LISTENER

------------------------

Alias                     orcl

Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production

Start Date                03-JUN-2017 16:22:41

Uptime                    0 days 0 hr. 0 min. 0 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /u02/app/oracle/product/11.2.4/db1/network/admin/listener.ora

Listener Log File         /u02/app/oracle/diag/tnslsnr/rhel6/orcl/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.2)(PORT=1581)))

Services Summary...

Service "orcl" has 1 instance(s).

Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...

The command completed successfully

远程测试连接成功

这时不小时敲了lsnrctl start命令,“神奇”的事情发生了,又一个监听起来了:

使用netstat -nltp查端口,两个端口都是被监听的状态:

现在远程测试连接,居然也可以连接成功

那么现在问题就来了,为什么可以启动两个监听,而两个监听都可以用呢?而且我在listener.ora中并没有配置1521端口的监听,为什么可以启动1521的监听呢?

先来看第二个问题,为什么会启动对1521端口的监听,从官方文档中找到这样一名话:

Because all of the configuration parameters have default values, it is possible to start

and use a listener with no configuration. This default listener has a name of LISTENER,

supports no services on startup, and listens on the following TCP/IP protocol address:

(ADDRESS=(PROTOCOL=tcp)(HOST=host_name)(PORT=1521))

这句话就能解释为什么会启动1521端口的监听。我也做了实验,即使是在没有listener.ora文件的情况下,也会可以启动名为LISTENER的监听来监听1521端口。

解释了监听起来的问题,再来看第一个问题,为什么两个监听都可以用呢?

先了解一下动态监听和静态监听:

动态监听是在数据库启动后,PMON进程会向本地的端口注册服务信息,默认是向本地地址的1521端口注册。而前面启动的对1521端口的监听正符合默认的注册方式,所以直接可以注册成功,数据库也可以对外提供服务。

而最开始配置的静态监听的目的就是代替PMON进程注册的工作,直接把数据库的服务强制绑定到监听上,即使数据库没有启动,这个数据库的服务名还是会在监听中显示的。

了解了这些之前,就不难理解为什么两个监听可以同时使用了:数据库默注册到了1521端口的监听上了,而静态监听又强制数据库绑定到了1581端口上,所以两个监听端口都是可以通的。

所以出现这种情况的原因是配置静态监听的时候,使用了是1581端口而非默认的1521端口,而且又启动了默认的监听。如果静态监听使用的1521端口,也不会出现这样的情况。

那如何能避免使用非默认监听端口时出现这种情况呢?可以在数据库中配置local_listener参数,详细参考之前的博客:http://hbxztc.blog.51cto.com/1587495/1890055

oracle数据库启动多个监听,一台Oracle数据库服务器上两个监听同时使用相关推荐

  1. winserver下oracle好运维吗,在Windows 客户端下备份远程Linux服务器上的Oracle数据库...

    1.在Windows上安装Oracle客户端软件(比如:win32_11gR1_client版本最好跟服务器Oracle版本相同) 系统运维  www.osyunwei.com  温馨提醒:qihan ...

  2. oracle 设置监听和服务,oracle服务端和客户端之间的网络监听设置

    下面为您介绍的是oracle服务端和客户端之间的网络监听设置,如果您在oracle服务端和客户端之间的网络监听设置方面遇到过类似的问题,不妨一看. oracle服务端和客户端之间的网络监听设置 假如我 ...

  3. oracle 设置监听和服务,oracle服务端和客户端之间的网络监听如何设置呢?

    racle服务端和客户端之间的网络监听设置 假如我现在有两个数据库kkman和orcl,现在我想在服务端设立两个监听来处理从客户端发过来的连接请求. ------------------------- ...

  4. oracle asm磁盘标签丢失导致整个集群和数据库启动失败

    oracle asm磁盘标签丢失导致整个集群和数据库启动失败 应用环境描述 一.硬件 1. 服务器:2台dell r610-16G内存.2颗6核xeon cpu.2个146G sas盘,做了raid1 ...

  5. Oracle 数据库启动模式

    目录 1.启动数据库的步骤 2.启动模式 1.启动实例不加载数据库(NOMOUNT模式 ) 2.加载数据库但不打开数据库(MOUNT模式) 3.打开数据库(OPEN模式) 4.强制启动数据库 3.转换 ...

  6. Oracle中启动和关闭的各种方式

    shutdown 命令  SHUTDOWN有四个参数:NORMAL.TRANSACTIONAL.IMMEDIATE.ABORT.缺省不带任何参数时表示是NORMAL.  SHUTDOWN NORMAL ...

  7. window oracle 只有bak文件怎么恢复_Oracle 11g R2 RAC数据库备份通过RMAN恢复到单实例数据库实现...

    Oracle 11g R2 RAC数据库备份通过RMAN恢复到单实例数据库实现 下面是我的一次从Oracle 11g R2 RAC到单实例间通过RMAN恢复备份集的过程,记录在此. 有些人以此方法作为 ...

  8. 在现有oracle服务器上新建一个oracle实例

    一 概述 假如一台服务器上已经安装了一个单机版的oracle实例orcl,这时想在这台服务器上再部署一个单机版的oracle实例ystat,则可以参考该文档进行部署. 注意:新实例名不要带特殊字符,下 ...

  9. 1主5从mysql数据库_MySQL主从复制虽好,能完美解决数据库单点问题吗?

    一.单个数据库服务器的缺点 数据库服务器存在单点问题: 数据库服务器资源无法满足增长的读写请求: 高峰时数据库连接数经常超过上限. 二.如何解决单点问题 增加额外的数据库服务器,组建数据库集群: 同一 ...

最新文章

  1. javac和java命令的使用
  2. exfat文件系统_u盘文件系统exfat格式优缺点有哪些【详细介绍】
  3. 12_Android中HttpClient的应用,doGet,doPost,doHttpClientGet,doHttpClient请求,另外借助第三方框架实现网络连接的应用,
  4. sqlite3数据库操作小记
  5. Android: AndroidStudio使用OpenCV-Java
  6. 当null检查非常失败时
  7. mysql 6.5.7_centos 6.5装mysql5.7
  8. [转]ClassPath是什么
  9. 硬件基础知识---(16)三极管放大电路
  10. DatabaseMetaData的使用
  11. 使用 EclEmma 进行覆盖测试
  12. 为什么需要一个激励函数
  13. 联想计算机Lenovo ThinkCentre M910t-NO76的重装
  14. 《Linux C编程环境》 课程大实验 及近期练习题:计算器,复写机,目录树创建,批处理执行器,扫雷
  15. 人脸识别实践(2) - 人脸识别系统展示
  16. 微信小程序开发者工具真机调试和预览连接本地服务器
  17. 中国传媒大学GPA算法
  18. 关于echarts套娃柱状图(嵌套柱)的实现
  19. h5(移动端) 监听软键盘弹起、收起
  20. 尖端技术打底新能源产业链 恒大正式收购卡耐新能源

热门文章

  1. SpringSecurity3整合CAS实现单点登录
  2. 把对方陷入困境中(博弈论的诡计)
  3. 程序员的进阶课-架构师之路(大纲)-思维导图
  4. icon-font-generator 的使用
  5. 2011系统架构师大会分享-自动化运维中的关系管理
  6. openstack之创建虚拟机
  7. 软件测试 学习之路 CSS(一)
  8. mysql数据库写分页函数_mysql数据库写分页函数
  9. 手机python3ide加法器_Python3开发常用工具
  10. 对于python的感受_聊聊我对python的感受