Oracle监听

介于Oracle的数据库和客户端之间的通道。因为数据库本身不对外提供服务,所以需要通过监听器来实现。

几个相关的参数:

local_listener

db_domain

remote_listener

service_names

相关命令:

监听命令:lsnrctl

参数:

1、start/stop 启动/关闭服务

2、service 查看当前已注册的服务

3、status  查看注册服务的状态

登录数据库命令:sqlplus

为了使用监听器,首先就要启动监听:

lsnrctl start

监听注册过程

一、数据库根据service_names/db_domain两个参数,创建服务名:

service_name1.db_domain ... service_nameN.db_domain

默认为数据库的实例名。

二、将服务名注册到监听器,如果监听器没有启动,则以:lsnrctl start启动;注册内容有服务名、端口(默认1521)等

三、监听器对外提供已注册的服务

四、外部客户端通过该服务器的1521端口连接到数据库

监听需要注册服务,有两种方式:

一种是静态注册。在启动监听的时候,根据监听文件($ORACLE_HOME/network/admin/listener.ora)直接注册

这种方式不管数据库是否启动,都会注册一个监听服务。因此,通过这个服务去连接数据库,有可能连接不上,也有可能

连接上。

其状态显示的是unknown,也就是说它此时是不知道数据库是否可以连接的。

Service "PLSExtProc" has 1 instance(s).

Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...

一种是动态注册。数据库启动后,自动会将服务名注册到监听器上。因此,通过这类服务去连接,是可以确保连接成功的。

动态注册除了数据库启动时会自动注册,也可以通过以下命令手工注册:

alter system register;

如果不执行手工命令进行动态注册,数据库也会间隔1分钟自动发起注册。

其状态显示的是ready,也就是说此时已经准备好连接了。

Service "orcl" has 1 instance(s).

Instance "orcl", status READY, has 1 handler(s) for this service...

如果此时数据库是关闭的,将不会有动态注册的信息显示,而静态注册却依然存在。

对于监听文件

如果不存在,数据库会按照当前的服务名参数(service_names)中提供的服务名,会自动将服务注册到监听器上。

如果存在,则按照监听文件中提供的服务名进行注册,数据库也会发起注册到监听器上。此时动态注册和静态注册会同时存在。

前面已经说到,注册到监听器上的服务名,是由service_names参数决定的,可以指定多个,以逗号分隔,如下:

SQL> show parameter service_names;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

service_names                        string      orcl,wanghf

除了服务名,还可以为服务指定一个域名,可以让将服务名让各个不同的外部系统调用:

SQL> alter system set db_domain='abc.com' scope=memory;

alter system set db_domain='abc.com' scope=memory

*

ERROR at line 1:

ORA-02095: specified initialization parameter cannot be modified

SQL> alter system set db_domain='abc.com' scope=spfile;

从上面可以看到,这个参数的修改需要重启数据库,而不能立即生效。

修改后,查看监听状态信息便显示如下(部分):

Service "wanghf.abc.com" has 1 instance(s).

Instance "orcl", status READY, has 1 handler(s) for this service...

The command completed successfully

对于动态注册,如果没有特殊设置,则到目前为止已经可以正常连接和操作了。

但是,如果需要修改默认端口(1521),那该怎么做?这个时候,local_listener参数就出现了。

可以按如下命令进行设置:

alter system set local_listener='(ADDRESS = (PROTOCOL=TCP)(HOST=localhost)(PORT=1522))';

其中,端口可以按要求做修改。设置此参数后,再手工注册一下即可:

alter system register;

或者等待最多一分钟,数据库也会自动重新注册。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12932950/viewspace-706407/,如需转载,请注明出处,否则将追究法律责任。

Oracle监听注册和sqlnet,Oracle监听的动态注册与静态注册相关推荐

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

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

  2. android的动态注册,Android应用开发之BroadcastReceiver(广播)的静态注册和动态注册 --Android开发...

    本文将带你了解Android应用开发之BroadcastReceiver(广播)的静态注册和动态注册 --Android开发,希望本文对大家学Android有所帮助 BroadcastReceiver ...

  3. oracle 静态监听 端口,侦听动态注册静态注册local_listener参数端口PORT

    之前都是网上看过整理的,今天看到local_listener竟然一点印象都没有,太恐怖,索性再好好整理一下,避免再次忘记. 一.什么是注册 注册就是将数据库作为一个服务注册到监听程序.客户端不需要知道 ...

  4. Oracle监听器—静态注册

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

  5. Oracle listener静态注册和动态注册(zt)

    曾经遇到一个问题,oracle10g里通过netca命令得到的listener.ora默认就是动态监听,但是默认没有设置instance_name和service_names参数.我一般是先启动db, ...

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

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

  7. oracle监听静态注册,oracle监听器动态注册于静态注册的区别

    1, oracle 10g 用netca方式建立的都默认为动态注册方式 2,如果想改为静态注册的方式则在listener.ora 中加入如下内容即可 SID_LIST_LISTENER = (SID_ ...

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

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

  9. oracle监听的动态注册和静态注册

    参考资料: https://blog.csdn.net/tianlesoftware/article/details/5543166 https://www.cnblogs.com/guilingya ...

最新文章

  1. 人终究要活出自己对于这个世界的看法和自己的处事方式,并且由内而外的生成自信
  2. 【写法规范】-- 设计请求返回接口与封装
  3. ProtoBuf3语法指南(Protocol Buffers)_上
  4. [2-sat][topsort输出解] POJ 3648 Wedding
  5. python发送qq消息linux_python 调用qq邮箱 linux 执行每天自动发送邮件
  6. 学习vue3系列computed
  7. 从阿姆斯特丹建设智能交通能得到什么经验?
  8. D3D游戏关于窗口中如何精确确定鼠标位置的相关讨论
  9. 解决树莓派 Error -110 whilst initializing SD card的一种方法
  10. 计算机通识必修课程学什么内容,计算机通识课程教学平台研究与探索.doc
  11. 10.MATLAB方差分析
  12. android 播放器架构,Android播放器框架设计系列-1
  13. Windows Media Encode 9简介及SDK
  14. arccotx图像在matlab,反三角函数图像与性质是什么?
  15. jQuery性能优化
  16. vue项目导入谷歌字体包
  17. 芯片失效分析手段系列之X-RAY探伤
  18. 上班路上因单方事故被撞伤可以算是工伤吗
  19. 简单说说USB协议(一)
  20. Java Swing制作2048小游戏【完整版】

热门文章

  1. 初学React,setState后获取到的thisstate没变,还是初始state?
  2. Hash(LCP) || 后缀数组 LA 4513 Stammering Aliens
  3. jQuery缓存数据——仿Map
  4. shell脚本工具之控制结构
  5. 查看自己Android设备分辨率
  6. [转]敏捷开发中编写高质量Java代码
  7. 关于USB-AUDIO使用ALSA编程的一点问题
  8. PAFF 和MBAFF
  9. dm365 resize
  10. 【面经——《广州敏视数码科技有限公司》——图像处理算法工程师-深度学习方向】