3配置/管理Oracle数据库---监听程序配置

Posted 大脑经常闹风暴@小猿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3配置/管理Oracle数据库---监听程序配置相关的知识,希望对你有一定的参考价值。

3、配置/管理Oracle数据库—监听程序配置

在成功创建Oracle数据库之后,用户可以对其进行配置和管理。需要用到网络配置助手工具

网络配置助手:主要用于Oracle数据库的监听程序、命名方法、本地NET服务名和目录配置。

这里使用网络配置助手工具:Net Configuration Assistant;

监听程序配置

监听程序(Listener)是Oracle服务器端的一种网络服务。监听程序创建在数据库服务器端,主要作用是监听客户端的连接请求。Oracle监听程序总是存在于数据库服务器端,在客户端创建监听程序毫无意义。Oracle监听程序是基于端口的,也就是说,每个监听程序会占用一个端口。

配置监听程序的步骤如下所示:

(1)点击开始,搜索“Net Configuration Assistant” ,来启动网络配置助手,选择“监听程序配置”,单击下一步,欢迎界面如下:

(2)进入监听程序配置界面,选择“添加”,单击下一步:

(3)进入监听程序名配置页面,可以设置监听程序名,这里默认“LISTENER”即可,单击下一步:

(4)如果弹出具有此名称的监听程序已存在,则重新设置一个监听程序名:LISTENER1

(5)进入选择协议页面,保持默认的TCP协议,单击下一步

(6)进入端口选择页面,保持默认的TCP协议,单击下一步:

(7)如果弹出对话框:请使用另一个端口号…,选择否,重新设置一个端口号,例如1522

(8)如果需要添加其他监听程序,选择”是“,在这里选择”否“,并单击下一步:

(9)进入选择监听程序页面,选择LISTENER1,单击下一步:

(10)进入监听程序配置完成页面,单击下一步:

(10)会再一次进入欢迎界面,单击完成。
验证
方法①监听程序配置成功之后,可以在Windows服务中,看到新建监听程序的对应服务:

方法②:在Oracle安装目录ORACLE_HOME\\NETWORK\\ADMIN下的listener.ora文件会新加这么一段文本:

Oracle配置管理

一、Oracle客户端与服务器端的通信机制

Oracle产品安装完成后,服务器和客户端都需要进行网络配置才能实现网络连接,服务器端配置监听器,客户端配置网络服务名。

 

1、oracle net协议

Oracle通过oracle net协议实现客户端与服务器端的连接及数据传递。Oracle net是同时驻留在服务器端和客户端上的一个软件层,它封装了TCP/IP,负责建立与维护客户端应用程序到数据库服务器的连接。有协议就要有相应的端口,所以oracle NET有个默认的侦听端口1521

技术分享图片.

客户端发出的请求首先通过oracle net协议转换,转换成可以通过网络传输的信息,通过tcp/ip网络将请求传输到数据库服务器端,服务器端收到客户端请求后通过oracle net协议转换,将请求转换成数据库可以解释执行的本地指令,并在服务器端执行,并将结果通过tcp/iporacle  net协议传输给客户端显示。

 

2、客户端与服务器端的连接过程

Oracle服务器通过一个名为“oracle  net监听器”的组件接收来自客户端的连接请求,监听位于服务器端的一个后台进程。发送的客户端连接请求,首先被服务器的监听器所侦听,并交给对应的数据库实例,从而建立起客户端与服务器的连接。连接建立后,客户端与服务器端就可以直接进行通信,不需要监听器参与。要实现监听器对客户请求的监听,需要对监听器进行配置。

Oracle网络服务名是一个标识符,代表客户端连接服务器的配置信息。

技术分享图片

客户端与服务器端的连接过程如下:

1)在服务器端有一个常驻的监听器,监听客户端发出的连接请求。

2)用户在客户端使用(企业管理器或sql工具),输入用户名、口令及网络服务名,或在sql命令行中输入类似“CONNECT username/[email protected]_service_name”的请求。

3)客户端查看网络服务配置文件tnsnames.ora文件,将网络服务名映射为包含oracle服务器地址、监听端口和全局数据库名的连接描述符。

4)客户端根据连接描述符定位监听器,并通过网络连接信息传递给监听器。

5)监听器查询监听配置文件listener.ora,找出所要连接的服务器。

6)客户端和服务器开始通信。

 

3、配置和管理Oracle网络配置的工具常见的有以下几种:

技术分享图片

1)netca方式

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

查看监听文件

技术分享图片

 

开启新的监听器

技术分享图片

查看监听器状态

技术分享图片

2)netmgr方式

技术分享图片

添加监听器即可

 

3)命令方式

修改vim /opt/oracle/product/11.2/db_1/network/admin/listener.ora

增加新的侦听器,代码如下:


技术分享图片

开启新的监听器

技术分享图片


技术分享图片

上面红框中的代码the  listener supports no services显示没有任何服务注册到该监听器上,这与监听和数据库实例的启动先后顺序有关。

 

解决方法:监听启动和数据库实例启动的顺序

根据前面的知识,启动完数据库实例后,启动监听,在连接数据库时,只有这二者兼备,oracle才能向外提供服务。

监听和实例启动顺序的先后会对二者之间的工作协调产生影响,具体如下:

 

先启动监听,后启动实例:此时远程客户端连接实例是正常的,不会有问题,因为监听先启动,在启动实例时后台进程PMON会向监听注册服务器,当用户请求服务时,两者的协调工作已准备就绪。

先启动实例,后启动监听:如果监听刚启动,用户马上连接实例,可能会报“监听程序当前无法识别连接描述符中请求的服务”的错误,原因在于PMON还没来得及向监听注册实例服务。但是这个问题只会存在很短的一段时间,再连接就不会有问题了,为什么等一会就好了呢?因为PMON每隔一段时间都会看有无服务需要向监听注册,此时若监听已启动,PMON就能注册成功,二者的协调工作就准备就绪了。

有没有办法解决很短的一段时间内的这个问题呢?答案是一定的。就是以静态注册的方式,即将实例的服务描述添加到listener.ora,这样只要启动监听,对应的服务在监听中就注册了。这是只要实例正常启动完成,就可以对外提供服务器了。在Listener.ora代码中添加如下代码即可。

技术分享图片

4、客户端的连接

客户端连接到数据库服务器必须知道一些信息,如数据库服务器的主机名或ip地址,使用的通信协议、端口号、以及对应的数据库服务名,这些需要在客户端设置

1)win7上安装oracle客户端软件

技术分享图片

双击上图中第二个文件安装

 

安装完成时候会在c:盘下生成oracle文件夹:

技术分享图片

2)找到c:\oracle\product\11.2.0\client_lite\network\admin\tnsnames.ora文件,并修改,修改结果如下:

技术分享图片

 

3)注意:需要在hosts文件里面添加解析

技术分享图片

 

4)在win7客户端上打开命名行,执行命令连接

技术分享图片

已经远程连接到oracle服务器


以上是关于3配置/管理Oracle数据库---监听程序配置的主要内容,如果未能解决你的问题,请参考以下文章

oracle配置监听时提示端口被占用

oracle数据库tns配置方法详解

连接oracle出现ORA-12541:TNS:无监听程序

Oracle配置管理

oracle数据库无法启动监听服务怎么办?

oracle监听配置