客户端如何连接服务器.ppt
通过该配置,客户软件可以把我们使用的TNS连接串ORCL映射到某些有用的信息,也就是主机名、该主机上监听器进程接受连接的端口,该主机上所连接数据库的服务名客户端软件知道要连接到哪里,它会与主机名为AAAA的服务器在端口1521打开一条TCP/IP连接,如果服务器端DBA安装并配置了oraclenet,并且有一个监听器在端口1521上监听连接请求,就会收到这个连接。在网络环境中,我们会在服务器上运行一个称为TNS监听器的进程。就是这个监听器进程让我们的客户端与数据库物理连接。不允许连接该主机),也可能接受请求,并真正建立连接。当监听器收到连接请求时,它会使用自己的配置文件检查这个请求,可能会拒绝请求(可能没有对应的数据库,或者IP地址受限,SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=PLSExtProc)
(ORACLE_HOME=E:\oracle\product\10.2.0\db_2)
(PROGRAM=extproc)
)
(SID_DESC=
(GLOBAL_DBNAME=orcl)
(ORACLE_HOME=E:\oracle\product\10.2.0\db_2)
(SID_NAME=ORCL)
)
)
LISTENER=
(DESCRIPTION_LIST=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))
)
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=AAAA)(PORT=1521))
)
)该方法只有在oracle10g以上的版本使用要想使用该解析方法在sqlnet.ora中必须设置NAMES.DIRECTORY_PATH=(EZCONNECT,TNSNAMES)connectscott/tiger@hostname:port/servicesname
connectscott/tiger@//hostname/servicesname管理许多oracle服务器的复杂网络时有优势,管理员可以在一个比较集中的位置上配置和管理。使用非oracle工具管理和解析oracle服务名称。总结三个文件Sqlnet.oraTnsnames.ora客户端的两个文件01Listener.ora服务器端的文件02Connectsys/zhao@orclassysdbaoraclenet首先通过sqlnet.ora来决定怎样找连接中出现的网络服务名orcl假如sqlnet.ora是下面的设置Names.directory_path=(tnsnames,hostname)客户端就首先在tnsnames.ora中找orcl的记录,如果没有,则尝试把orcl当做一个主机名,通过网络途径将该主机名解析为对应的IP,然后连接。listener.ora监听进程的配置文件,在服务器端接受远程连接的申请,如果不使用远程连接,listener进程不是必须的,关闭llistener进程并不影响已经存在的数据库连接030201Oracle客户端如何连接服务器服务器进程就是代表客户会话完成工作的进程,客户端的应用向数据库发送的SQL语句最后就要由这些服务器进程接收并执行。030201Oracle服务器处理客户的请求有两种方式专用服务器连接(dedicatedserver)共享服务器连接(sharedserver)或(multi–threadedserverMTS)在专用服务器连接方式下,每一个应用,oracle总会创建一个新的服务器进程,该服务器进程在应用的生存期中专门为应用服务,对于每个应用,都会出现一个新的专用服务器进程,应用和专用服务器进程之间是一对一的关系。12当客户进程通过某种网络通道与这个专用服务器直接通信,并由这个服务器进程接收和执行SQL,,如果有必要,它会读取数据文件,并在缓冲区中查找客户要的数据,该服务器进程的主要目标是对用户提交的SQL调用做出响应。3该服务器进程不是实例的一部分,共享服务器连接(sharedserver)正式的说法是多线程服务器(multi_threadedserver-MTS)在共享服务器连接下,与数据库连接的客户进程不会与共享服务器直接通信,之所以不能与共享服务器直接对