6. Oracle Net
- Launch a Server Process
• 当数据库监听器(Listener)收到客户端的连接请
求时, 在专用服务器模式下(dedicated server),
监听器将会启动一个服务端进程并分配一个端
口, 该端口号将被返回给客户端. 自此监听器的
工作完成, 并开始等待下一个会话连接.
Tip: 数据库监听器被停止时, 新的数据库会话
无法被建立, 但是不会影响到已经建立的会话.
• Drill down
使用下面的sql查看某个会话的操作系统进程号:
select a.program, a.SPID from v$process a, v$session b where
a.ADDR = b.PADDR and b.machine like 'CN%‘
13. Oracle Shared Server
- UGA
• 在专用服务器模式下, 会为每个会话分配对应的PGA内存;
在共享服务器模式下, PGA内存则不再被使用, 会话数据将
会保存在称为UGA(user global area)的内存区域中, UGA是大
池(large pool)中的内存区域, 可以通过large_pool_size参数
配置大池的内存大小. 下图描述了共享服务器的工作方式:
14. Oracle Shared Server
- Configuration
• 需要配置如下参数以启动oracle共享服务器模式:
– dispatchers
启动的分派器进程个数, 通常设置为2
– max_dispatchers
最大的分派器进程个数, 需要通过手动的方式启
动额外的分派器进程
– share_servers
启动的共享服务器进程个数, 如果没有设置默认为1
– max_shared_servers
共享服务器进程个数的最大值, oracle会自动启动额外
的共享服务器进程以应对突发的大量连接.
使用如下命令对上述参数进行设置:
alter system set dispatchers='(dispatchers=2)(protocol=tcp)';
alter system set shared_servers=20;
• When to use
共享服务器模式应用于OLTP系统, 以应付大量并发的短时间事务.
如果并发事务数超过了100, 那么可以考虑使用共享服务器模式.