oracle数据库网络相关的若干概念
client:是任何连接到oracle数据库发送或检索数据的运用程序。
client process:当用户运行客户端程序的时候由操作系统产生的进程。用户进程产生SQL语句,服务进程负责执行SQL语句。
server process:一个负责与client process通信的oracle进程。用来完成用户的请求,该进程同时也与数据库实例交互,但是并不是background进程(不是实例的一部分)。
connection:用户进程与一个oracle实例通信的路径。
session:存在于数据库实例中的一个逻辑实体,代表了当前用户登录到数据库的状态。一个connection可以建立多个会话(0,1,2....n)。
oracle Net:位于任何的客户端电脑与oracle数据库主机上,提供建立与维护客户端程序与oracle数据库的网络连接,在两者之间通过工业标准协议(TCP/IP)交换信息。oracle net 是oracle net services的一个组件。(当网络会话建立以后,oracle net 担当数据传送者的角色,oracle net以前叫做sqlnet.)
service name:client要连接到数据库必须标识要连接的数据库,数据库实例必须提供这样的标识,让客户端来连接。service name是数据库服务的逻辑标识,一个数据库实例可以有多个service name。service name提供了位置透明的特性,运用程序不需要知道数据库服务器位于网络中的那个位置。如果数据库移动到其他位置,只需要重新配置oracle net,而不需要改动运用程序。(一个 service name也可以标识一至多个数据库实例。)
dedicated server:默认的Oracle Net配置是dedicated server,在这种环境下每一个用户进程都拥有一个他自己的服务进程。
shared server:通过配置可以使用shared server,在这种情况下用户进程共享一个服务进程池。在这总情况下可以让数量更少的服务进程服务于大量的客户端进程。但是在以下情况下用户与DBA应该显式的指名使用专享服务进程连接到数据库实例。
1、提交成批的作业。
2、使用RMAN备份,修复,恢复一个数据库。
3、关闭数据库。
当oracle net配置成共享服务进程的时候,用户需要在连接标识符中
显式的指明用dedicated server连接数据库。即包括server=dedicated子句。在共享服务进程模式下用户进程连接到调度进程,然后由调度进程分配服务进程。
Oracle Net Listener:通常也称作listener。服务器端的一个进程用于监听客户端的连接请求,还负责客户端与数据库交互的流量管理。在数据库实例启动以后,在实例生命周期的各个阶段,实例会不断的与监听程序联系,建立通信路径。
dispatcher process(Dnnn):只有当配置了共享服务进程的时候才会出现的oracle后台进程。调度程序负责路由(非网络概念里的路由,这里是指传递,转发的意思)客户端进程的连接请求给共享服务进程,并返回请求结果。
service handler:服务处理程序,指的是一个专项服务进程或者dispather,服务处理程序是连接数据库的一个节点。
Service registration:服务登记是PMON oracle后台进程提供的一项功能,PMON动态的向监听程序登记实例的信息,这样允许监听程序就会转发客服端的请求到合适的服务处理程序。PMON向监听程序提供了一下的信息。
1、oracle数据库提供的服务名。
2、oracle实例名,实例的当前与最大负载。
3、实例可用的服务处理程序类型(dispatchers and dedicated servers),协议地址,当前与最大负载。
服务登记是动态进行的,不需要在listener.ora中配置,动态登记可以减小数据库或者实例的管理负担。初始化参数service_name列出了服务所属的实例。
PMON:一个监视数据库的进程,当用户进程失败的时候,执行进程恢复,PMON复杂清理cache与释放用户进程占用的资源。PMON同时还检查调度进程与服务进程当他们失败的时候重启他们,还负责向listener登记实例的信息。
现在把上面的几个概念串起来:
用户与客户端进程交互,客户端进程与监听进程交互,监听进程给客户端进程分配服务处理进程,这时候监听进程不在涉及客户端进程与服务处理进程的交互。服务进程与数据库实例交互,数据库实例通过后台进程与数据库交互。
当会话出现异常的时候PMON就来处理。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26110315/viewspace-717067/
,如需转载,请注明出处,否则将追究法律责任。