参考资料:


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动态注册到监听器:

 1 SQL> show parameter service_names;
 2
 3 NAME                     TYPE     VALUE
 4 ------------------------------------ ----------- ------------------------------
 5 service_names                 string     vmdb,sn01,sn02
 6 SQL> show parameter instance_name;
 7
 8 NAME                     TYPE     VALUE
 9 ------------------------------------ ----------- ------------------------------
10 instance_name                 string     vmdb

2、静态注册

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

 1 SID_LIST_LISTENER =
 2   (SID_LIST =
 3     (SID_DESC =
 4       (GLOBAL_DBNAME = sn03)
 5       (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
 6       (SID_NAME = vmdb)
 7     )
 8   )
 9
10 LISTENER =
11   (DESCRIPTION =
12     (ADDRESS = (PROTOCOL = TCP)(HOST = CentOS)(PORT = 1521))
13   )
14
15 ADR_BASE_LISTENER = /u01/app/oracle

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

 1 SQL> startup
 2 ORACLE instance started.
 3
 4 Total System Global Area  776646656 bytes
 5 Fixed Size            2217384 bytes
 6 Variable Size          583010904 bytes
 7 Database Buffers      188743680 bytes
 8 Redo Buffers            2674688 bytes
 9 Database mounted.
10 Database opened.

启动数据库

 1 [oracle@CentOS ~]$ lsnrctl start
 2
 3 LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 28-MAR-2018 13:03:11
 4
 5 Copyright (c) 1991, 2009, Oracle.  All rights reserved.
 6
 7 TNS-01106: Listener using listener name LISTENER has already been started
 8 [oracle@CentOS ~]$ lsnrctl reload
 9
10 LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 28-MAR-2018 13:03:19
11
12 Copyright (c) 1991, 2009, Oracle.  All rights reserved.
13
14 Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=CentOS)(PORT=1521)))
15 The command completed successfully
16 [oracle@CentOS ~]$ lsnrctl status
17
18 LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 28-MAR-2018 13:03:25
19
20 Copyright (c) 1991, 2009, Oracle.  All rights reserved.
21
22 Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=CentOS)(PORT=1521)))
23 STATUS of the LISTENER
24 ------------------------
25 Alias                     LISTENER
26 Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
27 Start Date                28-MAR-2018 13:03:08
28 Uptime                    0 days 0 hr. 0 min. 16 sec
29 Trace Level               off
30 Security                  ON: Local OS Authentication
31 SNMP                      OFF
32 Listener Parameter File   /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
33 Listener Log File         /u01/app/oracle/diag/tnslsnr/CentOS/listener/alert/log.xml
34 Listening Endpoints Summary...
35   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=CentOS)(PORT=1521)))
36 Services Summary...
37 Service "sn03" has 1 instance(s).
38   Instance "vmdb", status UNKNOWN, has 1 handler(s) for this service...
39 The command completed successfully

启动监听器

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

4、手工注册

1 SQL> alter system register; 2 3 System altered.

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

 1 [oracle@CentOS ~]$ lsnrctl status
 2
 3 LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 28-MAR-2018 12:41:00
 4
 5 Copyright (c) 1991, 2009, Oracle.  All rights reserved.
 6
 7 Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=CentOS)(PORT=1521)))
 8 STATUS of the LISTENER
 9 ------------------------
10 Alias                     LISTENER
11 Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
12 Start Date                28-MAR-2018 12:40:45
13 Uptime                    0 days 0 hr. 0 min. 15 sec
14 Trace Level               off
15 Security                  ON: Local OS Authentication
16 SNMP                      OFF
17 Listener Parameter File   /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
18 Listener Log File         /u01/app/oracle/diag/tnslsnr/CentOS/listener/alert/log.xml
19 Listening Endpoints Summary...
20   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=CentOS)(PORT=1521)))
21 Services Summary...
22 Service "sn01" has 1 instance(s).
23   Instance "vmdb", status READY, has 1 handler(s) for this service...
24 Service "sn02" has 1 instance(s).
25   Instance "vmdb", status READY, has 1 handler(s) for this service...
26 Service "sn03" has 1 instance(s).
27   Instance "vmdb", status UNKNOWN, has 1 handler(s) for this service...
28 Service "vmdb" has 1 instance(s).
29   Instance "vmdb", status READY, has 1 handler(s) for this service...
30 Service "vmdbXDB" has 1 instance(s).
31   Instance "vmdb", status READY, has 1 handler(s) for this service...
32 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动态注册的目标端口

1 listener_alias =
2   (DESCRIPTION =
3     (ADDRESS = (PROTOCOL = TCP)(HOST = CentOS)(PORT = 1522))
4   )

3、修改参数LOCAL_LISTENER

alter system set local_listener=listener_alias;

alter system register;

4、查看监听状态

 1 [oracle@CentOS admin]$ lsnrctl status
 2
 3 LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 31-MAR-2018 06:55:42
 4
 5 Copyright (c) 1991, 2009, Oracle.  All rights reserved.
 6
 7 Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=CentOS)(PORT=1522)))
 8 STATUS of the LISTENER
 9 ------------------------
10 Alias                     LISTENER
11 Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
12 Start Date                31-MAR-2018 06:55:14
13 Uptime                    0 days 0 hr. 0 min. 28 sec
14 Trace Level               off
15 Security                  ON: Local OS Authentication
16 SNMP                      OFF
17 Listener Parameter File   /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
18 Listener Log File         /u01/app/oracle/diag/tnslsnr/CentOS/listener/alert/log.xml
19 Listening Endpoints Summary...
20   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=CentOS)(PORT=1522)))
21 Services Summary...
22 Service "sn01" has 1 instance(s).
23   Instance "vmdb", status READY, has 1 handler(s) for this service...
24 Service "sn02" has 1 instance(s).
25   Instance "vmdb", status READY, has 1 handler(s) for this service...
26 Service "sn03" has 1 instance(s).
27   Instance "vmdb", status UNKNOWN, has 1 handler(s) for this service...
28 Service "vmdb" has 1 instance(s).
29   Instance "vmdb", status READY, has 1 handler(s) for this service...
30 Service "vmdbXDB" has 1 instance(s).
31   Instance "vmdb", status READY, has 1 handler(s) for this service...
32 The command completed successfully

View Code

静态注册的意义


//TODO

总结:


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

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

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

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

转载于:https://www.cnblogs.com/ZeroTiny/p/8652111.html

oracle监听的动态注册和静态注册相关推荐

  1. Oracle监听注册和sqlnet,Oracle监听配置(四)--如何实现静态、动态注册

    Oracle监听配置(四)--如何实现静态.动态注册 第三节我们已经大概了解什么是静态注册和动态注册,下面我们将通过两个例子来更加深入了解它们之间的区别. 静态注册:当listener使用的是非标准端 ...

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

    Oracle监听 介于Oracle的数据库和客户端之间的通道.因为数据库本身不对外提供服务,所以需要通过监听器来实现. 几个相关的参数: local_listener db_domain remote ...

  3. oracle什么时候使用静态监听,Oracle监听之动态监听与静态监听特点

    动态注册不需要显示的配置listener.ora文件,实例启动的时候,PMON进程根据instance_name,service_name参数将实例和服务动态注册 1.如何查询某服务是静态监听注册还是 ...

  4. oracle监听管理工具,oracle监听器管理

    一.什么是注册? 注册就是将数据库作为一个服务注册到监听程序.客户端不需要知道数据库名和实例名,只需要知道该数据库对外提供的服务名就可以申请连接到数据库.这个服务名可能与实例名一样,也有可能不一样. ...

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

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

  6. oracle实例注册监听,Oracle 19C 监听无法动态注册实例

    Oracle 19C 监听无法动态注册实例 环境: DB:Oracle 19.3.0.0.0 OS:Red Hat Enterprise Linux Server release 7.5 (Maipo ...

  7. oracle动态注册和静态注册监听器

    oracle动态注册和静态注册的区别:动态监听不需要在listener.ora文件中记录关于数据的任何信息,只需要将监听器的配置信息写入到该文件.例如: LISTENER =  (DESCRIPTIO ...

  8. oracle 动态注册和静态注册

    动态注册:实例启动后,pmon每分钟自动将服务名注册到侦听器中,也可以手动注册alter system register:系统默认有一个listener:不需要listener.ora文件也可以启动侦 ...

  9. oracle监听 客户 实例,oracle 数据库实例 监听

    创建Oracle数据库.数据库名与实例名与SID之间的关系(图文详解) 目录 目录 软件环境 前言 安装Oracle监听程序 启动停止监听程序 创建数据库 数据库名db_name 数据库实例名inst ...

最新文章

  1. 学习Cassandra资料的一些整理
  2. Handlebars partials 隐藏的力量
  3. jdbc preparestatement 执行多条语句_jmeter获取JDBC响应做接口关联(三)
  4. 机器学习(三十三)——价值函数的近似表示
  5. Linux压缩打包命令
  6. 动态分配数组(new)和用随机数赋值(rand)
  7. 洛谷P1801 黑匣子 双堆套路的使用
  8. 纽约时报》:乔布斯和苹果的“保密文化”
  9. java replace stringbuilder_【基础篇】揭开String、StringBuilder以及StringBuffer的神秘面纱...
  10. excel设置曲线图横坐标值
  11. 【142】阿蛮歌霸使用技巧
  12. 论文写作——小白如何写好并投稿自己的第一篇英文论文?
  13. 百度云apkg手机文件怎么打开_无需会员 | 手机免费解压百度云压缩文件
  14. Delphi CxGrid 用法详解
  15. 完全背包问题 买书(信息学奥赛一本通)
  16. IE无法查看源文件原因及解决办法
  17. QT 中控件缩放比列设置
  18. Modern GMT Series:Slice in 3D View (三维切片图)
  19. 超时用集群脚本ync.sh、xcall.sh
  20. 读书笔记《复杂世界的明白人》九边著

热门文章

  1. 微软在 Windows 10 中提供沙箱 Windows Sandbox
  2. c# —— 枚举和值的隐藏副作用
  3. 上下布局_再出上下铺新布局 新全顺都快被途酷玩出花了 还不来看看?
  4. html中加粗的字体如何改细,css怎么把字体变细?
  5. mysql json 引号 双引号_关于JSON字符串key缺少双引号的解决方法 的讲解
  6. 关于打印数组一直输出地址符号的一个解决方法
  7. go去掉最后一个字符_可维护的Go代码程序指南(一)之变量篇
  8. oracle 最小权限,oracle低权限下获取shell
  9. 微信小程序选择框问题 小程序picker点击显示object range-key=这里写要显示的字段
  10. ajax异步验证效果展示,AJAX(二)-实现验证码异步验证功能(示例代码)