理解oracle的共享连接和专用连接
专用连接模式下,客户端连接只支持专用连接;共享连接模式下,既可以使用专用连接模式,又可以使用共享连接模式;
专用连接模式:一个客户端连接对应一个服务器进程,一对一;
共享连接模式:多个客户端连接对应一个服务器进程,服务器端存在一个进程调度器(dispatchers)来管理,多对多;
看图说话
共享连接
专用连接
查看oracle数据库服务器是共享连接模式还是专用连接模式
以下测试为专用模式使用共享模式连接登录数据库报错
将server修改回DEDICATED,即可登录
那么如何修改数据库为共享模式呢?
配置dispatcher为2个,最大不超过5个;
alter system set dispatchers='(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.3.168))(DISPATCHERS=2)';--这里建议写上host,如果不写,需要在连接的电脑上hosts文件加一条主机名和ip对应记录,否则会报错ora-12545;
alter system set max_dispatchers=5;
配置共享服务器进程的数量
alter system set shared_servers=5;--设置当前共享服务器进程为5
alter system set max_shared_servers=15;--最大共享服务器进程为15
alter system set shared_server_sessions=100;--设置共享连接会话数,此数量不能超过session的数量
修改tnsnames.ora的连接模式为shared共享模式
连接成功,查询v$session动态性能视图,连接方式既有专用又有共享连接
查询所有的dispatchers
最后教给大家一个简易连接方式
语法:
connect 用户名/密码@主机名(或IP地址):端口号/实例名
如:sqlplus sys/123456@192.168.3.168:1521/orcl