ORACLE动态监听与静态监听

简介: 【前言】连接ORACLE其实是挺简单的一件事,只要会启动监听、配置tnsnames文件就可以了,但是相信大部分的人对于更深一点的动态监听和静态监听会知道一些,但也仅限于表面而已,在后面的工作中,因为一些配置的缘故需要对这个更深一步了解,所以就有了今天这个文档;   【1】数据库和监听注册的过程: 1.

【前言】连接ORACLE其实是挺简单的一件事,只要会启动监听、配置tnsnames文件就可以了,但是相信大部分的人对于更深一点的动态监听和静态监听会知道一些,但也仅限于表面而已,在后面的工作中,因为一些配置的缘故需要对这个更深一步了解,所以就有了今天这个文档;

 

【1】数据库和监听注册的过程:

1.1 如果知道数据库的信息,可以先在监听文件里面配置好要监听的数据库的实例名,并配置server名称,这种就是静态监听,因为这个监听服务器是由监听程序发起的,所以状态一直是UNKNOWN,且数据库关闭后这个监听还会存在;

1.2 监听文件没有配置监听数据库的信息,但是当数据库启动的时候,会自动将instance_name,service_names两个参数将实例和服务动态注册到listener中,这种监听就是动态监听因为这个监听是从数据库发起的,这个时候监听肯定是由对应的数据库的,所以显示的状态是READ,当数据库关闭后这个监听也就消失了。

[grid@db01 admin]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 03-DEC-2015 04:21:14

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date                03-DEC-2015 02:37:06
Uptime                    0 days 1 hr. 44 min. 8 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/grid/product/11.2.0/grid/network/admin/listener.ora
Listener Log File         /u01/app/grid/diag/tnslsnr/db01/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db01)(PORT=1521)))
Services Summary...
Service "JOEONEXDB" has 1 instance(s).
  Instance "JOEONE", status READY, has 1 handler(s) for this service...
Service "XIAMEN" has 2 instance(s).
  Instance "JOEONE", status UNKNOWN, has 1 handler(s) for this service...
  Instance "JOEONE", status READY, has 1 handler(s) for this service...
Service "XIAMEN01" has 1 instance(s).
  Instance "JOEONE", status UNKNOWN, has 1 handler(s) for this service...
Service "XIAMEN_DGB" has 1 instance(s).
  Instance "JOEONE", status READY, has 1 handler(s) for this service...
The command completed successfully

以上亮红色的字体有三个监听,分别是:

  • 数据库有通过动态注册一个Service为XIAMEN,INSTANCE_NAME为JOEONE的监听;
  • 配置了一个Service为XIAMEN,INSTANCE_NAME为JOEONE的静态监听,因为两个的SERVICE名称一样,所以合并在一起了;
  • 配置了一个Service为XIAMEN01,INSTANCE_NAME为JOEONE的静态监听;

 

相应的监听配置文件如下:

SID_LIST_LISTENER = 
  (SID_LIST = 
    (SID_DESC = 
      (GLOBAL_DBNAME =XIAMEN01
      (ORACLE_HOME =/u01/app/oracle/product/11.2.0/dbhome_1) 
      (SID_NAME =JOEONE
    ) 
  (SID_DESC =
      (GLOBAL_DBNAME =XIAMEN)
      (ORACLE_HOME =/u01/app/oracle/product/11.2.0/dbhome_1)
      (SID_NAME =JOEONE)
    )
  ) 

 

【2】动态监听的原理

  pmon在数据库启动到mount或open时,动态从参数文件中读取service_names值。service_names可以为多值(可以有64个,其中包括两个系统的)。
  service_names缺省为建立数据库时的全局数据库名,默认以1521的端口进行注册;

 

创建非默认的名称,脚本:

SQL>  alter system set service_names=JOHN;

Services Summary...
Service "JOEONEXDB" has 1 instance(s).
  Instance "JOEONE", status READY, has 1 handler(s) for this service...
Service "JOHN" has 1 instance(s).    #上面注册的名称
  Instance "JOEONE", status READY, has 1 handler(s) for this service...
Service "XIAMEN" has 2 instance(s).
  Instance "JOEONE", status UNKNOWN, has 1 handler(s) for this service...
  Instance "JOEONE", status READY, has 1 handler(s) for this service...
Service "XIAMEN01" has 1 instance(s).
  Instance "JOEONE", status UNKNOWN, has 1 handler(s) for this service...
Service "XIAMEN_DGB" has 1 instance(s).
  Instance "JOEONE", status READY, has 1 handler(s) for this service...
The command completed successfully

 

默认情况下监听的端口是1521,有时候出自于安全或区别的考虑监听的端口就会用非默认的端口,SAP数据库使用的端口就是用1527的,所以为了保证数据库和监听能够建立连接,就需要配置静态监听或让数据库进行动态注册;

  • 静态监听:这里的步骤不再说明,在$ORACLE_HOME/NETWORK/ADMIN/listener.ora添加上面增加1.2的配置
  • 动态监听:在ORACLE里面添加SQL语句进行注册,可以通过以下脚本进行管理:

 

2.1 动态监听的注册:alter system set LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=HOSTNAME)(PORT=1527))';

 

2.2  查看当前本地监听注册的信息: show parameter local_listener;

SQL> show parameter listener

NAME                           TYPE                                 VALUE
----------------------  --------------     ----------------------------------------------------------------
local_listener                 string                (ADDRESS=(PROTOCOL=TCP)(HOST=db01)(PORT=1527))

 

2.3 删除当前监听的注册信息:alter system set LOCAL_LISTENER='';

SQL> show parameter  local_listener 

NAME                                 TYPE                             VALUE
-----------------------  -------------    --------------------------------------------------------------------
local_listener                 string               (ADDRESS=(PROTOCOL=TCP)(HOST=db01)(PORT=1527))

SQL> alter system set LOCAL_LISTENER='';

System altered.

SQL> show parameter local_listener;

NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
local_listener                 string

 

【总结】认证整理完监听的这个文档,发现其实监听也是很简单的一件事就像男生和女生谈恋爱一样,要么男生主动找女生这是动态监听,要么女生就在那边静静等待男生的到来这是静态监听;但是动态不管是动态监听还是静态监听女生都要告诉男神联系的暗号,这样才能在同一个频道上面。。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

如果你对ORACLE的数据库管理有独特的见解或者有浓厚的兴趣,请加入群367875324,暗号ORACLE管理

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

相关文章
|
4月前
|
Oracle 关系型数据库 Linux
Oracle设置监听之Navicat的锅
Oracle设置监听之Navicat的锅
67 0
|
11月前
|
存储 Oracle 关系型数据库
9-3 Oracle数据字典和动态性能视图介绍
9-3 Oracle数据字典和动态性能视图介绍
146 1
|
12月前
|
Oracle 关系型数据库 Java
云服务器安装oracle修改IP地址监听器报错问题
当在云服务器中安装oracle时,按照一般的安装步骤安装后,需要修改两个文件的iIP地址才可以在本机进行访问,修改注意点: 监听器部分不要改成服务器的公网IP,要改成服务器的计算机名字才可以,两个配置文件夹均要修改
98 0
|
4月前
|
SQL Oracle 关系型数据库
Oracle-动态性能视图解读
Oracle-动态性能视图解读
120 0
|
存储 Oracle 关系型数据库
Oracle优化07-分析及动态采样-DBMS_STATS 包
Oracle优化07-分析及动态采样-DBMS_STATS 包
112 0
Oracle优化07-分析及动态采样-DBMS_STATS 包
|
SQL 存储 Oracle
Oracle优化07-分析及动态采样-动态采样
Oracle优化07-分析及动态采样-动态采样
132 0
|
SQL Oracle 关系型数据库
Oracle优化07-分析及动态采样-直方图
Oracle优化07-分析及动态采样-直方图
82 0
|
监控 Oracle 网络协议
干货速看!CentOS7+Oracle 19c安装并开启IPv6监听,带你一文打尽。
近日,工信部印发了关于贯彻落实《推进IPv6规模部署行动计划》的通知,额。。。不好意思,跑题了!其实也没有跑题,本篇就是想要讲跟IPV6有关的东西。现在很多最新版的组件都默认支持IPV6了,比如Nginx、PHP、MySQL等等。那么本篇专门讲解一下Oracle 19C如何开启对IPV6的支持,从安装到配置、到IPV6监听的配置,一文打尽。
362 0
|
Oracle 安全 关系型数据库
ORACLE 11g【安装流程】及部门问题解决,ORA-12514: TNS:监听程序当前无法识别连接描述符中请求的服务 下
ORACLE 11g【安装流程】及部门问题解决,ORA-12514: TNS:监听程序当前无法识别连接描述符中请求的服务 下
216 0
ORACLE 11g【安装流程】及部门问题解决,ORA-12514: TNS:监听程序当前无法识别连接描述符中请求的服务   下
|
SQL Oracle 关系型数据库
ORACLE 11g【安装流程】及部门问题解决,ORA-12514: TNS:监听程序当前无法识别连接描述符中请求的服务 上
ORACLE 11g【安装流程】及部门问题解决,ORA-12514: TNS:监听程序当前无法识别连接描述符中请求的服务 上
489 0
ORACLE 11g【安装流程】及部门问题解决,ORA-12514: TNS:监听程序当前无法识别连接描述符中请求的服务   上

推荐镜像

更多