Oracle数据库广州大学华软软件学院软件工程系Oracle系统应用广州大学华软软件学院软件工程系第三章Oracle网络配置本章主要介绍Oracle的网络组件与配置工具,通过学习同学们应该熟练利用网络配置工具进行服务器端与客户端的数据库网络连接配置。Oracle数据库广州大学华软软件学院软件工程系Oracle系统应用广州大学华软软件学院软件工程系本章学习目标:Oracle网络服务组件Oracle网络连接的基本概念服务器端网络配置客户端网络配置(本地命名方式)Oracle数据库广州大学华软软件学院软件工程系Oracle系统应用广州大学华软软件学院软件工程系1.1Oracle的网络服务组件为了适应大型企业网络应用的要求,Oracle网络服务结构在可连接性、可管理性、可扩展性以及网络安全等方面均提供了完善的解决方案。组件一:OracleNetOraclenet是同时驻留在oracle服务器与客户端上的一个软件层,它负责建立与维护客户端应用程序到数据库服务器的连接。Oracle数据库广州大学华软软件学院软件工程系Oracle系统应用广州大学华软软件学院软件工程系Oraclenet主要由两层组成:Oraclenet基础层:客户端应用程序与oraclenet基础层进行通信,从而建立与维护到服务器的连接。Oraclenet基础层再对Oracle协议支持层进行调用,从而利用工业标准的协议,如tcp/ip与数据库服务器进行通信。Oracle协议支持层:为oraclenet基础层提供基于工业标准协议的物理连接支持。Oracle数据库广州大学华软软件学院软件工程系Oracle系统应用广州大学华软软件学院软件工程系组件二:Oraclenet监听器监听器是位于服务器端的一个后台进程,它负责对客户端传入的连接请求进行监听,并且负责对服务器端的连接负荷进行调整。当客户端试图建立一个到服务端的网络会话时,首先是由监听器来处理实际的网络连接请求的。一旦客户端与服务器的连接已经建立,客户端和服务器即可直接通信,不再需要监听器的参与。(下图所示是监听器的工作方式)Oracle数据库广州大学华软软件学院软件工程系Oracle系统应用广州大学华软软件学院软件工程系Oracle数据库广州大学华软软件学院软件工程系Oracle系统应用广州大学华软软件学院软件工程系组件三:网络配置工具Oracle同时提供图形化界面和命令行方式的网络配置工具。包括:Oraclenetconfigurationassistant图形化工具,通常在完成oracle数据库服务器时会自动启动,利用它可以完成基本的网络(监听器)的配置工作。命令行配置工具LSNRCTL。对监听器进行配置、管理与监视。Oraclenetmanager图形化管理工具,提供对Oracle所有网络组件进行详细配置的集中化管理界面,DBA可对创建的监听器进行进一步的细致调整和配置。Oracle数据库广州大学华软软件学院软件工程系Oracle系统应用广州大学华软软件学院软件工程系Oracle数据库广州大学华软软件学院软件工程系Oracle系统应用广州大学华软软件学院软件工程系1.2Oracle网络连接的基本概念数据库服务与数据库实例标识对客户端来说,一个oracle数据库就是一个服务,数据库以提供服务的方式为客户端完成某些特定的工作。基本概念:服务名(servicename)服务名是数据库的逻辑表示,对于客户端来说就是数据库的存在方式。一个数据库可以具有多个服务名。在大部分情况下,数据库的服务名就是它的全局数据库名(globaldatabasename),即数据库名加上网络域名。Oracle数据库广州大学华软软件学院软件工程系Oracle系统应用广州大学华软软件学院软件工程系数据库服务名通过初始化参数service_names来指定,service_names参数默认值为全局数据库名(db_name参数加上db_domain参数),可以在初始化参数文件中设置,例如:service_names=foxconn.gz,foxconn.bj利用连接描述符访问数据库服务为了连接到数据库服务器,客户端必须使用“连接描述符”来提供数据库的位置与数据库服务名信息。基本概念:连接描述符(connectdescriptor)连接描述符是一个特定网络连接的描述格式字符串,在连接描述符中包含了目标服务名以及网络路径的信息。目标服务是数据库的服务名,网络路径主要是指数据库所监听的网络地址和端口信息等。Oracle数据库广州大学华软软件学院软件工程系Oracle系统应用广州大学华软软件学院软件工程系例:下面的连接描述符能够使客户端连接到一个服务名为foxconn.gz的数据库。(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=sise)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=foxconn.gz)))服务处理器基本概念:服务处理器(servicehandler)在数据库服务器中实际为客户连接请求提供服务的进程。当监听器接收到一个客户连接请求后,它将自动选择一个适当的服务处理器,然后将客户连接请求交给服务器进行处理,此后将由服务器与客户端进行网络通信。Oracle数据库广州大学华软软件学院软件工程系Oracle系统应用广州大学华软软件学院软件工程系Oracle数据库具有两种类型的服务处理器:调度器(dispatcher):在共享服务结构中,由调度器直接与客户端会话进行通信。调度器将来自客户端的连接请求放入共享池中的请求队列中,然后由空闲的共享服务进程对连接请求进行处理,处理的结果再由调度器返回给客户端会话。因此,共享服务进程并不作为服务处理器,而是由调度器作为服务处理器。专用服务进程(dedicatedserver):如果客户端需要连接的是一个专用服务进程,监听器将启动一个专用服务进程,并将连接请求传递给这个专用服务进程。此后,由这个专用服务进程专门为客户端会话服务。Oracle数据库广州大学华软软件学院软件工程系Oracle系统应用广州大学华软软件学院软件工程系命名方式(NamingMethod)客户端程序将连接标识符转换为连接描述符的一种机制。基本概念:连接字符串(connectstring)客户端在连接数据库时需要提供的信息,包括用户名、口令以及连接标识符。基本概念:连接标识符(connectidentifier)连接标识符是一个完整的连接描述符,或者是一个映射到连接描述符的名称。连接标识符通常也称为“网络服务名(netservicename)”。客户端在连接数据库时需要在连接字符串中包含一个连接标识符,然后通过特定的命名方式将连接标识符解析为对应的连接描述符,再利用连接描述符中包含的信息建立到数据库服务器的连接。Oracle数据库广州大学华软软件学院软件工程系Oracle系统应用广州大学华软软件学院软件工程系客户端提出连接请求时需要提供一个“连接字符串”,形式如下:connectusername/password@connect_identifier连接字符串“@”字符之后的部分是一个连接标识符。连接标识符实际上就是连接描述符的简写形式。可以在@字符之后直接给出完整的连接描述符,这样过于繁琐,例如Connectscott/tiger@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=wah)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=foxconn.gz)))Oracle数据库广州大学华软软件学院软件工程系Oracle系统应用广州大学华软软件学院软件工程系如果利用连接标识符foxconn来代替连接描述符,上面的连接字符串可以简化为下列形式:connectscott/tiger@foxconn建立连接时首先将foxconn映射到对应的连接描述符,完成映射所需的信息保存在一个或多个资料档案库中或文件,客户端将通过特定的“命名方式”来访问这些资料档案库。Oracle数据库广州大学华软软件学院软件工程系Oracle系统应用广州大学华软软件学院软件工程系利用命名方式建立客户端会话的步骤:1.客户端在连接字符串中给出一个连接标识符,提出初始连接请求。2.连接标识符通过某种命名方式转换为连接描述符,并将转换后的信息返回给客户端。3.客户端利用连接描述符中提供的服务名与网络地址向数据库提出连接请求。4.监听器收到连接请求后将它传递给数据库服务器。5.到数据库服务器的连接建立完毕。Oracle数据库广州大学华软软件学院软件工程系Oracle系统应用广州大学华软软件学院软件工程系Oracle网络服务结构提供了如下几种命名方式:本地命名方式(localnaming)目录命名方式(directorynaming)oracle命名方式(oraclenaming)主机命名方式(hostnaming)外部命名方式(externalnaming)本地命名方式是最常用的一种命名方式,它将连接标识符与它们对应的连接描述符都存储在本地的名为Tnsnames.ora的配置文件中,客户端在本地能够完成连接标识符到连接描述符的映射。Oracle数据库广州大学华软软件学院软件工程系Oracle系统应用广州大学华软软件学院软件工程系1.3服务器端网络配置监听器的响应方式监听器的配置静态服务注册的配置动态服务注册的配置监听器的管理操作Oracle数据库广州大学华软软件学院软件工程系Oracle系统应用广州大学华软软件学院软件工程系监听器的响应方式监听器具有三种不同的相应方式,分别是:Spawnandbequeath相应方式监听器启动一个新的服务处理器,然后将客户端连接信息交给新的服务处理器,仅适用于专用服务进程。Directhandoff响应方式监听器将客户端连接信息直接发送给调度器,仅适用于共享服务进程。重定向相应方式监听器将客户端连接信息通过网络重定向的方式传递给调度器或专用服务进程。Oracle服务器有两种不同类型的服务处理器:调度器(dispatcher)和专用服务进程。Oracle数据库广州大学华软软件学院软件工程系Oracle系统应用广州大学华软软件学院软件工程系监听器的响应方式:专用服务器-监听器启动新的服务进程Oracle数据库广州大学华软软件学院软件工程系Oracle系统应用广州大学华软软件学院软件工程系BequeathSession连接过程详解:①client使用设定的协议向Listener发送一个CONNECT包,建立与Listener的连接。②Listener检查SID是否已经被定义。如果已经被定义,Listener将fork一个新的进程来处理此连接。一个Bequeath连接就在Listener和新的服务器进程之间建立起来,用于传输进程初始化信息。随后,Bequeath连接将被关闭。注意,TCPsockets是被新的服务器进程继承的。③服务器进程会给client发送一个RESEND包。④一个新的CONNECT包在此从client发送到fork产生的服务器进程⑤dedicated服务器进程接到新的连接包,会返回一个ACCEPT包给client。Oracle数据库广州大学华软软件学院软件工程系Oracle系统应用广州大学华软软件学院软件工程系监听器的响应方式:共享或专用服务器-监听器把请求交调度器或服务进程Oracle数据库广州大学华软软件学院软件工程系Oracle系统应用广州大学华软软件学院软件工程系RedirectSession连接过程详解:①client使用设定的协议向Listener发送一个CONNECT包,建立与Listener的连接。②Listener检查SID是否定义过。如果定义过SID,Listener将产生一个新的线程或是进程给新的连接。一个IPC连接就被建立在Listener和新进程/线程之间。③新进程/线程从空闲user