Oracle监听的静态注册和动态注册
静态注册:通过解析listene.ora文件
动态注册:由PMON进程动态注册至监听中
在没有listener.ora配置文件的情况下,如果启动监听,则监听为动态注册。用图形化netca创建的监听,默认也为动态注册
1.静态注册
listener.ora文件,监听的配置文件,静态注册读取该文件,动态注册,不必要
可以通过netca工具创建,也可以手动编辑。典型的listener.ora文件内容:
|
LISTENER_PHAMR = SID_LIST_LISTENER_PHALR = |
listener.ora文件两大模块:
LISTENER模块:监听名字、连接协议、监听主机、监听端口等基本配置信息
SID_LIST_LISTENER模块:配置监听的静态注册特性,包含数据库服务名、ORACLE_HOME、实例名等信息。
注意:SID_NAME,就是数据库实例名,在Linux环境大小写敏感
GLOBAL_DBNAME就是数据库服务名,可以省略,默认和SID_NAME保持一致,也可以不一致。
ORACLE_HOME,默认和$ORACLE_HOME环境变量保持一致。Windows,该参数无效,取自注册表。
静态注册,监听不知道实例的具体状态,所以监听启动之初查看实例信息,其状态信息显示为UNKNOWN.例如:
|
oracle@phamrdb1: /home/oracle> lsnrctl status LISTENER_PHAMR LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-NOV-2016 17:17:37 Copyright (c) 1991, 2013, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=phamrdb1-vip)(PORT=1521))) |
2,动态注册
在动态注册监听的环境中,listener.ora文件可以不包括当前数据库的实例信息,所以这个文件不必要。
实例启动时,会由Oracle PMON进程将数据库实例信息动态注册至监听上。
当Oracle实例关闭时,会再次由PMON进程自动从监听里面撤销当前实例信息。
所以,要实现动态注册,数据库的实例至少要处于nomount状态
监听动态注册时的实例状态:来自PMON进程动态注册时的实例状态,一般有3种状态:READY、BLOCKED和RESTRICED
READY:表示数据库实例已经处于mount或者open状态,可以接受客户端连接
BLOCKED:表示数据库实例还处于nomount状态或者该实例类型为ASM实例,不接受客户端连接,如果这时候客户端去连
接数据库会报ora-12528错误
RESTRICED:表示数据库处于RESTRICED模式,不接受普通权限的远程客户端连接,如果这时候客户端去连接数据库会报
ora-12526错误
|
oracle@fsdata: /oracle/product/11.2.0/network/admin> lsnrctl status LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-NOV-2016 16:01:43 Copyright (c) 1991, 2013, Oracle. All rights reserved. Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) |
|
oracle@fsdata: /oracle/product/11.2.0/network/admin> lsnrctl status LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-NOV-2016 15:58:47 Copyright (c) 1991, 2013, Oracle. All rights reserved. Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) |
实例既可以动态注册,同时静态注册,状态分别显示为READY和UNKNOWN
|
oracle@fsdata: /oracle/product/11.2.0/network/admin> lsnrctl status LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-NOV-2016 17:50:14 Copyright (c) 1991, 2013, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=fsdata)(PORT=1521))) |
3.监听的常用命令
lsnrctl start [listener_name]
lsnrctl stop [listener_name]
lsnrctl status [listener_name]
lsnrctl service [listener_name]
lsnrctl reload [listener_name]
4.监听的别名
监听默认名字是LISTENER,可以配置别名
oracle@fsdata: /dump> ps -ef | grep tnslsnr | grep -v grep
oracle 29598 1 0 15:57 ? 00:00:00 /oracle/product/11.2.0/bin/tnslsnr LISTENER -inherit
oracle@phamrdb1: /home/oracle> ps -ef | grep tnslsnr| grep -v grep
oracle 38300 1 0 Oct01 ? 06:21:54 /oracle/product/11.2.0/bin/tnslsnr LISTENER_PHAMR –inherit
Oracle监听的静态注册和动态注册的更多相关文章
- Oracle 监听动态注册与静态注册
静态注册 静态注册是在启动listener时,listener会从listener.ora文件中获取服务名及相关信息.信息包括:实例名和服务名等. --静态注册时,listener.ora中的内容如下 ...
- Oracle监听静态注册和动态注册
静态注册和动态注册总结 一.什么是注册? 注册就是将数据库作为一个服务注册到监听程序.客户端不需要知道数据库名和实例名,只需要知道该数据库对外提供的服务名就可以申请连接到数据库.这个服务名可能与实例名 ...
- 【转】oracle 监听静态注册举例解析
网上有很多关于oracle 监听静态注册的文章,但大多都是简单说说,并没有详细的例子,这里,将结合linux as3 下的oracle 10gR2.0.1 举一个具体的例子 1.在 $ORACLE_H ...
- oracle 监听静态注册举例解析
网上有很多关于oracle 监听静态注册的文章,但大多都是简单说说,并没有详细的例子,这里,将结合linux as3 下的oracle 10gR2.0.1 举一个具体的例子 1.在 $ORACLE_H ...
- oracle监听(lsnrctl)详解解读
(总结)Oracle监听服务lsnrctl参数及查询状态详解 lsnrctl命令常用参数详解: lsnrctlstart启动指定的监听器 stop关闭指定的监听器 status显示监听器的状态.s ...
- ORACLE监听配置及测试实验
实验一: 修改db_domain和service_name 我们将Db_name和Db_domain两个参数用'.'连接起来,表示一个数据库,并将该数据库的名称称为Global_name即等于serv ...
- ORACLE监听理解
参考官方文档Net Services Reference的7 Oracle Net Listener Parameters (listener.ora) 1 监听概念 oracle监听,是个服务器端进 ...
- Android(java)学习笔记173:BroadcastReceiver之 静态注册 和 动态注册
1. 广播接受者>什么是广播.收音机.电台:对外发送信号.收音机:接收电台的信号. >在android系统里面,系统有很多重要的事件: 电池电量低,插入充电器,sd卡被移除,有电话打出去, ...
- Android(java)学习笔记116:BroadcastReceiver之 静态注册 和 动态注册
1. 广播接受者>什么是广播.收音机.电台:对外发送信号.收音机:接收电台的信号. >在android系统里面,系统有很多重要的事件: 电池电量低,插入充电器,sd卡被移除,有电话打出去, ...
随机推荐
- Bzoj1208 [HNOI2004]宠物收养所
Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 7457 Solved: 2960 Description 最近,阿Q开了一间宠物收养所.收养所提供两 ...
- Two-Pointer 之 Run Length Coding (RLC)
游程编码(Run Length Coding, RLC)是串处理中常见的预处理方法.其写法是典型的双指针(Two-Pointer).下面总结其写法1.输入为一串整数可以不把整数存在数组里
- python 之 PIP 安装
1.安装的必备包 pip 和 setuptool 都要有, 这个可以从python.org网站下载 // setuptool 安装 下载地址 https://pan.baidu.com/s/1gf ...
- 有用的git建议
这篇文章的目的是给经常使用git管理项目提供一个有益的提醒.如果你是git新手,可以先阅读文后的引用部分,然后在回头阅读此篇文章.在介绍git命令之前,你可以先看看来自 on-my-zsh 提供的别名 ...
- 调试使用windows堆程序遇到的问题
今天测试我的api hook demo,中间有个单向链表,我对他进行遍历的时候,通过判断链表当前元素是否为NULL(即0)来进行循环控制,在cmd下正常运行,输出的是:,struct addr is ...
- 获取centos6.5系统信息脚本
最近想尝试做两件比较重要的事情,第一是用python写个cmdb,第二还是用python写个小型监控系统,下面是获取系统信息的脚本: #!/usr/bin/env python # coding:ut ...
- yaml
YAML http://baike.baidu.com/link?url=Jqbh_SBnlVuP0dPCknzd5ti5jr4h9HcacA0j56ztf4QsPcXI8kvgFaKpvhRG3em ...
- 在Application中集成Microsoft Translator服务之开发前准备
第一步:准备一个微软账号 要使用Microsoft Translator API需要在Microsoft Azure Marketplace(https://datamarket.azure.com/ ...
- 深入理解javascript原型和闭包(17)——补this
本文对<深入理解javascript原型和闭包(10)——this>一篇进行补充,原文链接:http://www.cnblogs.com/wangfupeng1988/p/3988422. ...
- IntersectionObserver API
温馨提示:本文目前仅适用于在 Chrome 51 及以上中浏览. 2016.11.1 追加,Firefox 52 也已经实现. 2016.11.29 追加,Firefox 的人担心目前规范不够稳定,未 ...