龙源期刊网 http://www.qikan.com.cn
Oracle数据库监听配置浅析与故障定位
作者:弓晓波
来源:《电脑知识与技术》2020年第20期
摘要:Oracle數据库作为市场占比最高的商业数据库,该系统功能强大,同时也具有一定的复杂性,Oracle的监听服务是客户端连接到数据库的必经之路,远程客户端进程只有通过服务端的监听认证、转发才能连接到数据库。本文首先分析了Oracle监听服务的工作模式,在此基础上分别研究了通过配置工具与配置文件实现Oracle客户端与Oracle服务器连接的方法,最后以常见的两例客户端连接故障为例,分析故障的原因并给出了故障解决方法。 关键词:Oracle数据库;监听服务;故障解决 中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2020)20-0040-02 1引言
龙源期刊网 http://www.qikan.com.cn
Oracle数据库是甲骨文公司的关系数据库管理系统,它在数据库领域一直处于领先的地位,可以说Oracle数据库系统是目前世界上最流行的关系数据库管理系统,系统移植性好、使用方便、功能强大,适用于各类大、中、小、微机环境[1]。它是一种高效率、可靠性好、适应高吞吐量的数据库方案,是各个领域企业级开发的首选。
Oracle是C/S(客户端/服务器)结构的数据库系统,其主要由客户端应用程序和数据库服务器进程组成。这种结构的优点是可将大量的数据处理工作在客户端完成,减少服务器的负载与网络通信的负载需求,但同时由于在客户端与服务器之间的通信,使得系统在远程认证与连接方面有一定的复杂性,在用户使用过程中,客户端的连接问题成为一个高发率的故障点[2]。本文阐述了Oracle数据库的监听服务工作模式及几种配置方法,并以常见的两例客户端连接故障为例,分析了故障的原因,给出了故障解决方法。 2Oracle通信方式
Oracle的客户端与服务端之间有两种通信方式,进程通信与网络通信,进程通信只适用于客户端与服务端位于同一服务器,当客户端和服务端位于不同的服务器上,只可采用网络通信的方式。目前大部分的应用系统部署方式是数据库与服务器分别独立部署,这样可分解服务器的负载和压力,提高系统的安全性[3],本文主要描述网络通信的配置与管理。
当客户端与服务端采用网络通信的方式连接时,Oracle监听成为客户端连接到数据库的必经之路,远程客户端进程只有通过服务端的监听认证、转发才能连接到数据库。数据库的连接方式有多种,如Easy ConneCt、Local naming、DireCtory naming、External naming,Local Naming(本地命名)是常用的数据库连接方式,也就是使用位于客户端的配置文件tnsnames.ora连接,本文主要分析的是Local Naming连接方式。 3Oracle监听配置与管理 3.1监听配置模板
采用LoCal Naming方式下的监听相关配置文件主要有3个:listener.ora、sqlnet.ora、tnsnames.ora,其中tnsnames.ora位于客户端,listener.ora与sqlnet.ora通常位于服务端。默认位置为ORACLE HOME\NETWORK\ADMIN.
listener.ora主要用于配置监听服务[4]。sqlnet.ora既可以位于Oracle服务端,也可以位于Oracle客户端,主要用于控制客户端和服务端Oracle Net Services的行为,例如设置会话跟踪级别和控制客户端连接等,tnsnames.ora位于客户端,主要是对连接描述符进行定义。典型的listener.ora配置文件模板如下: SID_LIST_LISTENER=
龙源期刊网 http://www.qikan.com.cn
(SIDLIST= (SIDDESC=
(GLOBAL_DBNAME=tns) (SID_NAME=tns) ) )
LISTENER= (DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.110)(PORT=1521》 )
ADR BASE LISTENER=*****
该配置文件包含三部分:LISTENER、SID LIST_ LISTENER与ADR BASE LISTENER。LISTENER用于设置监听基本配置信息,包含监听名字、连接协议、监听主机与监听端口。第二部分SID_LIST_LISTENER用于配置监听的静态注册特性,主要包含数据库服务名、实例名等信息。第三部分ADR_BASE_LIS-TENER指定数据库服务的路径。
其中,CLOBAL NAME指的是监听处理的数据库的服务名,SID_NAME指监听处理的数据库实例名,HOST表示监听运行的数据库服务器,HOST的值可以用IP地址、主机名、IP地址解析名表示,建议使用IP地址,清晰明了。PORT表示连接的端口号,默认为1521,需保证此端口号没有被其他程序占用。
sqlnet.ora文件指明客户端以何种方法连接数据库。在访问方式文件中指明客户端采用的Local Naming的方式,关键字为TNSNAMES。
tnsnames.ora文件主要是对连接描述符进行定义,与listen-er.ora中的配置相对应,配置文件模板如下: TNS=
(DESCRIPTION=