读《Oracle 9i&10g编程艺术》记录--- TCP/IP连接基本原理

本文详细介绍了数据库连接机制,包括专用服务器连接与共享服务器连接的过程。对于专用服务器连接,监听器会根据操作系统不同创建新的进程或线程来建立连接。而对于共享服务器连接,则是由监听器选择调度器进程并建立连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果建立一条专用服务器连接,监听器进程就会为我们创建一个专用服务器。在UNIX上,这是通过fork()和exec()系统调用做到的(在UNIX中,要在初始化之后创建新进程,惟一的办法就是通过fork())。这个新的专用服务器进程继承了监听器建立的连接,现在就与数据库物理地连接上了。在Windows上,监听器进程请求数据库进程为连接创建一个新线程。一旦创建了这个线程,客户就会“重定向”到该线程,相应地就能建立物理连接。下图显示了UNIX上的监听器进程和专用服务器连接
110321_200907211056461.gif

如果我们发出共享服务器连接请求,监听器的表现则会有所不同。监听器进程知道实例中运行了哪些调度器。接收到连接请求后,监听器会从可用的调度器 池中选择一个调度器进程。监听器会向客户返回连接信息,其中说明了客户如何与调度器进程连接;如果可能的话,还可以把连接“转发”给调度器进程(这依赖于 不同的操作系统和数据库版本,不过实际效果是一样的)。监听器发回连接信息后,它的工作就结束了,因为监听器一直在特定主机的特定端口上运行(主机名和端 口号大家都知道),而调度器会在服务器上随意指派的端口上接受连接。监听器要知道调度器指定的这些随机端口号,并为我们选择一个调度器。客户再与监听器断 开连接,并与调度器直接连接。现在就与数据库有了一个物理连接。这个过程如下图所示。
110321_200907211057011.gif

fj.pngdedicated connect.gif

fj.pngshare connect.gif

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/110321/viewspace-609787/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/110321/viewspace-609787/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值