参考资料:


https://blog.csdn.net/tianlesoftware/article/details/5543166

https://www.cnblogs.com/guilingyang/p/6074867.html

 现象1:


1、动态注册

参数文件中指定service_names(多个服务名vmdb,sn01,sn02),8i以后数据库实例启动后,会根据参数文件的service_names以及instance_name动态注册到监听器:

 SQL> show parameter service_names;

 NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
service_names string vmdb,sn01,sn02
SQL> show parameter instance_name; NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
instance_name string vmdb

2、静态注册

实例启动时读取文件$ORACLE_HOME/network/admin/listener.ora文件的配置,将实例和服务注册到监听程序。listener.ora文件配置如下:

 SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = sn03)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = vmdb)
)
) LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = CentOS)(PORT = 1521))
) ADR_BASE_LISTENER = /u01/app/oracle

3、先启动数据库再启动监听

 SQL> startup
ORACLE instance started. Total System Global Area 776646656 bytes
Fixed Size 2217384 bytes
Variable Size 583010904 bytes
Database Buffers 188743680 bytes
Redo Buffers 2674688 bytes
Database mounted.
Database opened.

启动数据库

 [oracle@CentOS ~]$ lsnrctl start

 LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 28-MAR-2018 13:03:11

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

 TNS-01106: Listener using listener name LISTENER has already been started
[oracle@CentOS ~]$ lsnrctl reload LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 28-MAR-2018 13:03:19 Copyright (c) 1991, 2009, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=CentOS)(PORT=1521)))
The command completed successfully
[oracle@CentOS ~]$ lsnrctl status LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 28-MAR-2018 13:03:25 Copyright (c) 1991, 2009, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=CentOS)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 28-MAR-2018 13:03:08
Uptime 0 days 0 hr. 0 min. 16 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/CentOS/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=CentOS)(PORT=1521)))
Services Summary...
Service "sn03" has 1 instance(s).
Instance "vmdb", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

启动监听器

发现监听服务只有静态注册的sn03

4、手工注册

SQL> alter system register; System altered.

再次查看监听,动态注册成功:

 [oracle@CentOS ~]$ lsnrctl status

 LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 28-MAR-2018 12:41:00

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

 Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=CentOS)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 28-MAR-2018 12:40:45
Uptime 0 days 0 hr. 0 min. 15 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/CentOS/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=CentOS)(PORT=1521)))
Services Summary...
Service "sn01" has 1 instance(s).
Instance "vmdb", status READY, has 1 handler(s) for this service...
Service "sn02" has 1 instance(s).
Instance "vmdb", status READY, has 1 handler(s) for this service...
Service "sn03" has 1 instance(s).
Instance "vmdb", status UNKNOWN, has 1 handler(s) for this service...
Service "vmdb" has 1 instance(s).
Instance "vmdb", status READY, has 1 handler(s) for this service...
Service "vmdbXDB" has 1 instance(s).
Instance "vmdb", status READY, has 1 handler(s) for this service...
The command completed successfully

查看监听状态

动态注册到非默认端口


如果要向非默认监听注册,则要修改相应系统参数。将要监听的信息添加到tnsnames.ora文件(pmon动态注册监听时从tnsnames.ora文件读取信息)。

对于专用服务器模式:

LOCAL_LISTENER=listener_alias

对于共享服务器模式:

DISPATCHERS="(PROTOCOL=tcp)(LISTENER=listener_alias)"

例如对于专用服务器模式,监听端口1522:

1、修改listener.ora文件监听器的监听端口

LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = CentOS)(PORT = 1522))
)

2、修改tnsnames.ora,设置pmon动态注册的目标端口

 listener_alias =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = CentOS)(PORT = 1522))
)

3、修改参数LOCAL_LISTENER

alter system set local_listener=listener_alias;
alter system register;

4、查看监听状态

 [oracle@CentOS admin]$ lsnrctl status

 LSNRCTL for Linux: Version 11.2.0.1. - Production on -MAR- ::

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

 Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=CentOS)(PORT=)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1. - Production
Start Date -MAR- ::
Uptime days hr. min. sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.2./dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/CentOS/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=CentOS)(PORT=)))
Services Summary...
Service "sn01" has instance(s).
Instance "vmdb", status READY, has handler(s) for this service...
Service "sn02" has instance(s).
Instance "vmdb", status READY, has handler(s) for this service...
Service "sn03" has instance(s).
Instance "vmdb", status UNKNOWN, has handler(s) for this service...
Service "vmdb" has instance(s).
Instance "vmdb", status READY, has handler(s) for this service...
Service "vmdbXDB" has instance(s).
Instance "vmdb", status READY, has handler(s) for this service...
The command completed successfully

静态注册的意义


//TODO

总结:


与文章开头的引用的外部文章说法有些差异:

1、动态注册只会在PMON进程启动时才会自动将服务注册到监听器(一般在启动一分钟内完成注册),如果此时监听器未启动,则动态注册失败,此时如果再启动监听器,依然不会有动态注册信息。

2、静态注册与实例是否启动无关,启动监听器时会读取listener.ora文件进行静态注册,此时即便数据库未启动,监听状态依然能看到静态注册信息。重启监听器也一样,只会进行静态注册,所以可能导致动态注册信息丢失。

3、动态注册默认只注册到默认的监听器(名称LISTENER,端口1521,协议TCP),否则PMON不能动态注册listener,除非修改参数local_listener。

oracle监听的动态注册和静态注册的更多相关文章

  1. Oracle静态监听和动态监听

    一.静态注册 静态注册指实例启动时读取listener.ora配置文件,将实例和服务注册到监听程序.无论何时启动一个数据库,默认都有两条信息注册到监听器中:实例和服务.SID_LIST_LISTENE ...

  2. Oracle监听的静态注册和动态注册

    静态注册:通过解析listene.ora文件 动态注册:由PMON进程动态注册至监听中 在没有listener.ora配置文件的情况下,如果启动监听,则监听为动态注册.用图形化netca创建的监听,默 ...

  3. oracle监听动态注册与静态注册

    client端如果想要连接到远程的数据库服务器,首先数据库服务器必须启动监听器 oracle监听器的配置在$ORACLE_HOME/network/admin/listener.ora,打开这个文件, ...

  4. 【转】oracle 监听静态注册举例解析

    网上有很多关于oracle 监听静态注册的文章,但大多都是简单说说,并没有详细的例子,这里,将结合linux as3 下的oracle 10gR2.0.1 举一个具体的例子 1.在 $ORACLE_H ...

  5. oracle 监听静态注册举例解析

    网上有很多关于oracle 监听静态注册的文章,但大多都是简单说说,并没有详细的例子,这里,将结合linux as3 下的oracle 10gR2.0.1 举一个具体的例子 1.在 $ORACLE_H ...

  6. oracle监听(lsnrctl)详解解读

    (总结)Oracle监听服务lsnrctl参数及查询状态详解   lsnrctl命令常用参数详解: lsnrctlstart启动指定的监听器 stop关闭指定的监听器 status显示监听器的状态.s ...

  7. ORACLE 监听

    今天来学习一下监听的相关内容,昨晚被老大问了两个关于监听很简单的问题,但是却吞吞吐吐回答,而且有一个问题还答错了,刚刚查了下资料,才发现"驴头对了马嘴",哭笑不得. 一.监听(li ...

  8. ORACLE监听配置及测试实验

    实验一: 修改db_domain和service_name 我们将Db_name和Db_domain两个参数用'.'连接起来,表示一个数据库,并将该数据库的名称称为Global_name即等于serv ...

  9. ORACLE监听理解

    参考官方文档Net Services Reference的7 Oracle Net Listener Parameters (listener.ora) 1 监听概念 oracle监听,是个服务器端进 ...

随机推荐

  1. MYSQL二进制5.7.安装

    一.下载MySQL二进制软件包 下载连接:MYSQ安装包下载 官网MySQL有四个版本:GA版.DMR版.RC版.Beta版.一般生产和测试环境使用GA版(常规可用的版本,经过bug修复测试) 二.安 ...

  2. 【强大美观易用的图像编辑器】Pixelmator Pro 1.2 for Mac

    图标 Icon   软件介绍 Description Pixelmator Pro是一个功能强大.美观.易于使用的图像编辑器,专为Mac设计.Pixelmator Pro 借助各种专业级的无损图像编辑 ...

  3. MySQL入门介绍(mysql-8.0.13)

    MySQL入门介绍(mysql-8.0.13单机部署) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL数据库介绍 1>.MySQL是一种开放源代码的关系型数据库 ...

  4. Jquery Pagination分页插件使用

    JqueryPagination是个简单轻量级的分页插件,使用起来很容易,只要初始化一个实例,并设置总数量.翻页回调函数.其它参数就可以实现无刷新分页功能了. 准备工作 下载jquery.min.js ...

  5. Linux下main函数启动过程【程序员自我修养笔记】【自用】

    1. 入口函数和程序初始化 1.1 程序从main开始吗? 当程序执行到main函数的第一行时,很多事情都已经完成了: [证1]如下是一段C语言代码: 代码中可以看到,在程序刚刚执行到main的时候, ...

  6. MySQLMySql免安装版安装配置

    MySql免安装版安装配置,附MySQL服务无法启动解决方案 mysql 5.6.17 绿色版(免安装)安装配置教程 [mysql] # 设置mysql客户端默认字符集 default-charact ...

  7. 如何使用Cygwin在Windows上运行OpenSSH SSHD服务器

    记录几款非常有趣, 但不怎么耳熟的软件: Cygwin 是可以安装 OpenSSH server 和 client 的, Mosh 也可以, 这对于 Linux 用户而言就非常方便了. 如何使用Cyg ...

  8. IntelliJ IDEA 创建Web项目(全教程)

    说明:IntelliJ IDEA 版本为14.JDK 版本为1.7tomcat 版本为apache-tomcat-7.0.70 注:在创建过程中注意相关软件版本位数的问题.32位,64位的软件混搭会导 ...

  9. 【bzoj 3524】[Poi2014]Couriers

    Description 给一个长度为n的序列a.1≤a[i]≤n.m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r-l+1)/2.如果存在,输出这个数,否则输出0. ...

  10. Discuz 论坛 (LAMP环境)

    Discuz 论坛系统运行依赖 LAMP/LNMP的基础环境. 1.使用 yum 安装 MySQL: yum install mysql-server -y service mysqld restar ...