第7章客户端和服务器端的连接本章内容:ORACLE客户端与数据库服务器间的连接机制服务器端的监听器配置客户端连接服务器的配置7.1OracleNet连接机制OracleNet是同时驻留在Oracle数据库服务器端和客户端上的一个软件层,它负责建立与维护客户端应用程序到数据库服务器的连接。如下图所示,客户端(企业管理器)发出的请求首先通过OracleNet协议转换,转换成可以通过网络传输的信息,通过TCP/IP网络将请求传输到数据库服务器端;服务器端接受到客户请求后要通过OracleNet协议转换,将请求转换成数据库可以解释执行的本地指令,并在服务器端执行(主要是一些输入输出操作),并将结果通过TCP/IP协议和OracleNet协议传输给客户端显示。客户端与服务器端的通信过程是:客户端向服务器端发出连接请求,服务器端通过监听器侦听和接受请求,并交给数据库服务执行。7.1OracleNet连接机制客户端数据库服务器连接网络企业管理器OracleNet协议TCP/IP协议OracleNet协议数据库7.2监听器Oracle数据库服务器通过一个名为“OracleNet监听器”的组件接受来自客户端的连接请求。监听器是位于服务器端的一个后台进程,它负责对客户端传入的连接请求进行监听。当客户端发出请求后,先被监听器接受,然后再交给服务器进行处理。当客户端和服务器端的连接已经建立后,客户端与服务器端即可直接通讯,不再需要监听器的参与。每个监听进程都要连接到一个指定的通信端口,一般使用端口1521。这样,客户端使用配置有协议、地址和端口的连接描述符,就可以向监听器发送连接请求(如VC连接Oracle的连接字符串)。当服务器从监听端口接受到连接请求时,监听器将接受到的客户请求信息与自身的配置文件(listener.ora)进行比较,如果二者匹配,则允许建立连接,否则拒绝用户的连接请求。如下图所示:7.2监听器数据库服务名连接描述符定位监听器位置数据库监听器查询listener.ora文件查询tnsname.ora文件7.2监听器客户端与服务端的连接过程为:1、首先在服务器端有一个常驻的监听器(监听服务要打开)监听客户端发出的连接请求。2、用户在客户端(企业服务器或SQL工具)输入用户名、口令及服务名,如在SQL*PLUS中输入CONNECTusername/password@net_Service_name的类似请求。3、客户端查看tnsname.ora配置文件,将服务名映射为包含Oracle服务器地址、端口和数据库服务的连接描述符。4、客户端根据连接描述符定位监听器,并通过网络将连接信息传递给监听器。5、监听器查询listener.ora文件,找出所要连接的数据库服务器。6、客户机和服务器开始通信。7.2监听器7.2监听器7.2监听器7.2监听器7.2监听器7.2监听器7.2监听器7.2监听器监听程序配置完成后,数据库系统会自动启动该监听器。7.2检查和修改监听器配置7.2检查和修改监听器配置7.2检查和修改监听器配置7.2检查和修改监听器配置7.2检查和修改监听器配置7.2检查和修改监听器配置7.2检查和修改监听器配置#LISTENER.ORANetworkConfigurationFile:e:\oracle\ora92\NETWORK\ADMIN\listener.ora#GeneratedbyOracleconfigurationtools.LISTENER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=tsinghua-p5z3mm)(PORT=1521)))SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(SID_NAME=PLSExtProc)(ORACLE_HOME=e:\oracle\ora92)(PROGRAM=extproc))(SID_DESC=(GLOBAL_DBNAME=mydb.bawei)(ORACLE_HOME=E:\oracle\ora92)(SID_NAME=mydb)))全局数据库名称数据库实例名称监听器协议(TCP)、主机地址、监听端口(1521)7.3启动和停止监听器在开始--运行使用lsnrctl命令打开监听器控制的命令行工具:7.3启动和停止监听器关闭监听器:7.3启动和停止监听器打开监听器:7.4客户端连接配置7.4客户端连接配置7.4客户端连接配置7.4客户端连接配置7.4客户端连接配置7.4客户端连接配置7.4客户端连接配置#TNSNAMES.ORANetworkConfigurationFile:d:\oracleClient\Oracle92\network\admin\tnsnames.ora#GeneratedbyOracleconfigurationtools.ORADB01=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.50.151)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=oradb01)))MYDB=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=mydb.bawei)))数据库服务名称数据库服务别名服务器监听进程的地址、端口号7.5利用客户端工具连接和使用异地数据库服务7.5利用客户端工具连接和使用异地数据库服务注:在远端数据库服务器上(或在客户端的管理器工具中)可以查看连接服务器的客户端会话信息,包括机器名(IP)等。