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
转载于:https://www.cnblogs.com/andy6/p/7453395.html
Oracle监听的静态注册和动态注册相关推荐
- lsnrctl status区分静态注册与动态注册
unknow:静态注册 ready或blocked:动态注册 a.如果先启动监听,后启动数据库 Service "PLSExtProc" has 1 instance(s). ...
- oracle监听静态注册,oracle监听器动态注册于静态注册的区别
1, oracle 10g 用netca方式建立的都默认为动态注册方式 2,如果想改为静态注册的方式则在listener.ora 中加入如下内容即可 SID_LIST_LISTENER = (SID_ ...
- Oracle监听注册和sqlnet,Oracle监听的动态注册与静态注册
Oracle监听 介于Oracle的数据库和客户端之间的通道.因为数据库本身不对外提供服务,所以需要通过监听器来实现. 几个相关的参数: local_listener db_domain remote ...
- Oracle监听注册和sqlnet,Oracle监听配置(四)--如何实现静态、动态注册
Oracle监听配置(四)--如何实现静态.动态注册 第三节我们已经大概了解什么是静态注册和动态注册,下面我们将通过两个例子来更加深入了解它们之间的区别. 静态注册:当listener使用的是非标准端 ...
- oracle什么时候使用静态监听,Oracle监听之动态监听与静态监听特点
动态注册不需要显示的配置listener.ora文件,实例启动的时候,PMON进程根据instance_name,service_name参数将实例和服务动态注册 1.如何查询某服务是静态监听注册还是 ...
- Oracle listener静态注册和动态注册(zt)
曾经遇到一个问题,oracle10g里通过netca命令得到的listener.ora默认就是动态监听,但是默认没有设置instance_name和service_names参数.我一般是先启动db, ...
- oracle监听 客户 实例,oracle 数据库实例 监听
创建Oracle数据库.数据库名与实例名与SID之间的关系(图文详解) 目录 目录 软件环境 前言 安装Oracle监听程序 启动停止监听程序 创建数据库 数据库名db_name 数据库实例名inst ...
- oracle监听管理工具,oracle监听器管理
一.什么是注册? 注册就是将数据库作为一个服务注册到监听程序.客户端不需要知道数据库名和实例名,只需要知道该数据库对外提供的服务名就可以申请连接到数据库.这个服务名可能与实例名一样,也有可能不一样. ...
- linux oracle开启监听服务器,linux服务器启动oracle监听端口
oracle监听 原理 客户端向服务器端发送连接请求,监听器监听到客户端德连接请求 监听器监听到客户端德连接请求后,把客户端德连接请求交给数据库服务器处理 客户端和服务器端建立连接,连接建立后,服务器 ...
最新文章
- Windows 7 部署 Android 开发环境傻瓜式教程(Eclipse+ADT)
- Qt使用信号与槽时出现的错误“Incompatible sender/receiver arguments”
- linux取设备分辨率,linux 获取系统屏幕分辨率
- Neo4j:Cypher – Neo.ClientError.Statement.TypeError:不知道如何添加Double和String
- FaunaDB and serverless and bmob
- (转)编码剖析Spring管理Bean的原理
- 烟台市与拼多多达成战略合作 启动烟台优品线上云购节活动
- Python46 mysql备份
- ML面试1000题系列(91-100)
- Android中关于键盘的处理
- 陕西网络培训学院自动学习简易脚本
- amf webgame
- UOJ449. 【集训队作业2018】喂鸽子 [概率期望,min-max容斥,生成函数]
- 上班族用哪个邮箱好用,如何正确使用邮件工作?...
- 阿里云性能测试工具PTS
- 使用jquery.wordexport.js导出word文档 设置行间距不生效问题
- turbo linux系统光盘,TurboLinux系统启动软盘的创建方法(转)
- html5 自动矢量化,HTML5中地圖矢量化
- android html 文件怎么打开,Android可以用Html查看器打开txt文件
- [SDOI2008]山贼集团【树上背包+状压】
热门文章
- [Vue]组件——通过$emit为组件自定义事件
- SVN更新的时候报断言失败解决办法
- 前端开发规范文档(html,css,js)
- MIP开发常见问题解答
- 基于 jQuery支持移动触摸设备的Lightbox插件
- 无盘服务器读写缓存,无盘系统中实现网络磁盘本地写缓存控制的方法
- laravel 5.1 php版本号,发行版本说明 | 序言 | Laravel 5.1 中文文档
- php怎么查自己的文件编码,php检测文件编码的方法示例
- java记事本课程设计,java记事本课程设计
- 程序人生:提高代码运行效率的9个技巧