Oracle DBA基础教程
上QQ阅读APP看书,第一时间看更新

3.1 Oracle的网络连接

无论是应用程序,还是使用SQL*PLUS工具连接远端数据库(物理上分布),都必须建立客户端与数据库服务器之间的一个Oracle连接,Oracle提供了Oracle Net Service组件,用于方便地配置和管理网络连接。

Oracle Net Service组件由以下五个部分组成:

● Oracle Net;

● Oracle Net Listeners;

● Oracle Connection Listeners;

● Oracle Net Configuration Assitant;

● Oracle Net Manager。

这些组件不需要单独安装,在安装数据库服务器或者客户端软件时会被自动安装,其中Oracle Net组件必须在客户机与服务器上都安装,它负责完成客户机与服务器之间连接的初始化、建立以及维护工作。该组件由以下两部分组成。

● Oracle Network Foundation Layer:该层负责建立和维护客户端与数据库服务器之间的连接和信息交互。

● Oracle Protocol Support:该层映射Transparent Network Substrate(TNS)到业内标准协议。

下面是Oracle网络连接的流程描述。

01 客户端发起连接。需要服务器、静听端口、协议、数据库服务名。

02 客户端一旦与监听器建立连接,则在客户端生成用户进程,同时监听器会判断客户端所请求的服务名是否是自己所管理的服务名。如果客户端传过来的连接字符串不包含服务名,报错;如果请求的服务名不是自己管理的,报错并中断;如果请求的服务名是自己管理的,监听器就在数据库服务器上创建服务器进程。

03 监听器在创建服务器进程以后,会将用户进程与服务器进程建立连接,之后,监听器退出与客户端的连接。

04 服务器进程根据用户进程提供的用户名和密码到数据字典里判断是否正确。

05 如果用户名和密码不匹配,报错;如果匹配,则分配PGA,并生成SESSION。