用户会话
※用户和服务器建立会话连接有两种方式:①专用服务器 ②共享服务器
专用服务器
※使用专用服务器进程时,服务器进程和用户进程之间是一对一的关系。每个服务器进程都使用系统资源,包括CPU 周期和内存。
※缺点:专用服务器进程会占用很多内存和CPU资源,因此会对系统可伸缩性产生负面的影响。
△解决办法:①增加更多的内存并扩大CPU容量来扩充系统资源 ②使用oracle共享服务器体系结构
共享服务器
※参与共享服务器体系结构的每个服务至少有一个(通常为多个)分派程序进程※与专用服务器进程不同,单个分派程序可以管理成百上千个用户会话。
※分派程序实际上并不处理用户请求,而是将用户请求传递到位于SGA 共享池部分的公用队列。
连接步骤
※连接请求到达时,监听程序不会衍生专用服务器进程,而是维护一个列表,此列表提供了可用于每个服务名的分派程序,以及每个分派程序的连接负载(并发连接数量)
※连接请求被路由到为指定服务名提供服务的负载量最低的分派程序。用户在会话期间一直连接到同一分派程序。
※由于单个用户会话的请求可能由多个共享服务器进程来处理,因此通常存储在PGA 中的大部分内存结构必须位于共享内存位置(默认情况下,在共享池中)。
※如果配置了大型池,或为Automatic Memory Management 设置了SGA_TARGET,这些内存结构会存储在SGA 的大型池部分。
共享模式下的SGA和PGA
※Oracle 共享服务器:用户会话数据存储在SGA 中。
※如果支持多个用户,则需要提高LARGE_POOL_SIZE 初始化参数值。
※配置PRIVATE_SGA 资源限制,限制每个会话在SGA中分配的空间量。
连接共享功能
※作用:使用连接共享功能,数据库服务器可以使空闲会话超时,因而使用连接为后续活动会话提供服务。空闲会话在下次发出请求后自动重新建立物理连接。
※连接共享是通过共享服务器配置的。
不能使用共享服务器的情况
※下列任务无法使用共享服务器:①数据库管理 ②备份和恢复操作 ③批处理和批量加载操作 ④数据仓库操作
※原因:由于存在公共请求队列,以及存在大量用户会共享分派程序响应队列这样的事实,所以共享服务器在处理大批数据的操作时性能并不是很好。
※所以一定不要(也无法)使用共享服务器连接执行大量的管理任务
※此外,所有DBA会话都必须选择专用服务器(如启动和关闭实例,创建表空间或数据文件,维护索引和表、分析统计操作等)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26121819/viewspace-706391/ ,如需转载,请注明出处,否则将追究法律责任。