oracle的最大连接数问题

redappleji 2009-01-05 01:28:40
请知道的朋友帮帮忙了。
操作系统:windows 2003 server,64位的操作系统。
数据库:oracle10G,支持64位。

问题1:在什么情况下使用pfile,在什么情况下使用spfile,怎么查看当前使用的是pfile还是spfile?
问题2:最大连接数的问题,oracle中的session具体什么含义?在什么情况下可以产生一个session?
问题3:一个应用程序连接数据库的时候,连接字符串中采用一个用户名,假设为user,有100个应用程序客户端同时采用user用户名访问数据库,在这种情况下session的变化情况。

各位大哥大姐,拜托了!!!
...全文
2127 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
ball2fan 2009-01-29
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 redappleji 的回复:]
楼上的兄弟们辛苦了。
看了诸位的解答我已经清楚了。
马上结贴给分。
[/Quote]

到现在还没结贴

win9i以后都是用spfile的,但是直接修改文件内容的话只能用pfile,spfile是二进制的不能直接修改文件,只能在系统中修改。
每个进程都会有session,最大用户数体现在session。
luolaibin 2009-01-25
  • 打赏
  • 举报
回复
up

redappleji 2009-01-13
  • 打赏
  • 举报
回复
楼上的兄弟们辛苦了。
看了诸位的解答我已经清楚了。
马上结贴给分。
  • 打赏
  • 举报
回复
d
  • 打赏
  • 举报
回复
session 是指会话数 Proceess是指进程数 Process 会用到PGA

1个进程包含多个Sessions 从概念上我是这样理解的

实验情况: ORACLE 10G 直接连接模式 用HR登陆 默认参数:Process=150 Sessions=170

用SQLPLUS SYS 查看 Sessions =13 process=16

然后用PL/SQL 用HR登陆后 Sessions =14 process=17
1 开个SQL查询窗口 并运行句SQL Sessions =15 process=18
2 开第二个SQL查询窗口 并运行句SQL Sessions =16 process=19

再开启TOAD 用HR登陆 Sessions =17 process=20
开个SQL查询窗口 并运行句SQL Sessions =18 process=21

结果是 直接连接模式:同步增加.

这下我糊涂了

xingkongmori 2009-01-06
  • 打赏
  • 举报
回复
学习
wangsong145 2009-01-06
  • 打赏
  • 举报
回复
[Quote=引用楼主 redappleji 的帖子:]
请知道的朋友帮帮忙了。
操作系统:windows 2003 server,64位的操作系统。
数据库:oracle10G,支持64位。

问题1:在什么情况下使用pfile,在什么情况下使用spfile,怎么查看当前使用的是pfile还是spfile?
问题2:最大连接数的问题,oracle中的session具体什么含义?在什么情况下可以产生一个session?
问题3:一个应用程序连接数据库的时候,连接字符串中采用一个用户名,假设为user,有100个应用程序客户端同时采…
[/Quote]
问题1 如1楼所说
问题2 session是指当前会话,当有多个进程时就会产生多个SESSION
luolaibin 2009-01-06
  • 打赏
  • 举报
回复
up
hugh_9 2009-01-06
  • 打赏
  • 举报
回复
用sys登录 查看视图:
select * from v$resource_limit
MavenTalk 2009-01-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 csucxcc 的回复:]

如何调整oracle参数,使它支持更多的用户连接,
在参数文件中有三个参数
processes
license_max_sessions
license_max_users
这三个参数相互作用影响着用户连接数
license_max_sessions  (同时连接数据库的会话数)
license_max_users  (数据库能够创建的用户数)
如果设置为0就是不加限制。

如何查看ORACLE的连接数?
SQL> select count(*) from v$session  #查看当前ORACLE的连接数
SQL> Select count(*) from v…
[/Quote]

写的比较全面
rockywu 2009-01-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xiaoxiao1984 的回复:]
问题1:在什么情况下使用pfile,在什么情况下使用spfile,怎么查看当前使用的是pfile还是spfile?
9i或以上版本一般默认使用spfile, 如果需要临时使用特别的参数配置,可以使用指定pfile启动

SQL> show parameter spfile

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string …
[/Quote]

问题2:最大连接数的问题,oracle中的session具体什么含义?在什么情况下可以产生一个session?
session 进程访问数,一个进程访问数据库就可以产生多个session。
问题3:一个应用程序连接数据库的时候,连接字符串中采用一个用户名,假设为user,有100个应用程序客户端同时采用user用户名访问数据库,在这种情况下session的变化情况。
具体进程数量可以用
select * from v$session

当有200个客户端应用程序连接的时候,应该产生200个session...
不一定有200个session
孑冰 2009-01-05
  • 打赏
  • 举报
回复
帮你顶一下,学习中
xiaoxiao1984 2009-01-05
  • 打赏
  • 举报
回复
问题1:在什么情况下使用pfile,在什么情况下使用spfile,怎么查看当前使用的是pfile还是spfile?
9i或以上版本一般默认使用spfile, 如果需要临时使用特别的参数配置,可以使用指定pfile启动

SQL> show parameter spfile

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string D:\ORACLE\ORCL10G\DBS\SPFILEMA
OMAO.ORA

如果spfile参数不为空,则使用spfile, 否则使用pfile


问题2:最大连接数的问题,oracle中的session具体什么含义?在什么情况下可以产生一个session?
问题3:一个应用程序连接数据库的时候,连接字符串中采用一个用户名,假设为user,有100个应用程序客户端同时采用user用户名访问数据库,在这种情况下session的变化情况。
一个user可以创建多个session, 100个应用程序客户端采用user访问数据库的情形不好说(是否是用连接池等等)
自己查询
select * from v$session
看结果
傻儿哥 2009-01-05
  • 打赏
  • 举报
回复

如何调整oracle参数,使它支持更多的用户连接,
在参数文件中有三个参数
processes
license_max_sessions
license_max_users
这三个参数相互作用影响着用户连接数
license_max_sessions (同时连接数据库的会话数)
license_max_users (数据库能够创建的用户数)
如果设置为0就是不加限制。

如何查看ORACLE的连接数?
SQL> select count(*) from v$session #查看当前ORACLE的连接数
SQL> Select count(*) from v$session where status='ACTIVE' #查看当前ORACLE的并发连接数
SQL> show parameter processes #如何查看ORACLE的最大进程数最大连接
SQL> alter system set processes = value scope = spfile;重启数据库 #修改连接

如何对操作系统进行调优,使操作系统支持最大连接数?

在solaris下,在安装oracle前必须要调整系统参数,该参数文件位于/etc/下,名为system,里面有一个参数
semsys:seminfo_semmns=1024,这个值是processor的最终控制值,这个参数表示unix系统总共可以分配的进程。当oracle的进程数超过操作系统的限制时,就会出现这样的错误。maximum number of processes(150) exceeded,现在,你可以检查根据你自己的操作系统检查一下看怎样找到该参数。
AIX操作系统下,smit chgsys 查看Maximum number of PROCESSES allowed per user
系统缺省128。如果连接数超过,也会有访问不了oracle的问题.

具体的可参考帖子http://www.lslnet.com/linux/dosc1/42/linux-294982.htm
viscount 2009-01-05
  • 打赏
  • 举报
回复
9i 以后就建议使用spfile..
show parameter spfile or pfile就可以查看。

不同的程序打开旧有多少个session ..

具体查看v$session;
redappleji 2009-01-05
  • 打赏
  • 举报
回复
来人啊,来者给分。
redappleji 2009-01-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 chenqingyu 的回复:]
1.查看系统是以pfile还是spfile启动
Select isspecified,count(*) from v$spparameter group by isspecified;
如果isspecified里有true,表明用spfile进行了指定配置
如果全为false,则表明用pfile启动

如果你是9i以后的版本...默认是spfile的.可以手动指定用pfile启动...具体方法请google

2.按我的理解...session是和process对应的

3.多个用户应该就有多个session


如有错请指教.
[/Quote]

谢谢了,朋友。
请教问题3,我客户端应用程序都是采用一个oracle用户名登陆的,在数据库里面设定的session的数目是115(process为100)。照朋友的说法,当有200个客户端应用程序连接的时候,应该产生200个session,这个时候应该是超过数据库的最大的连接数了,那么就不能访问数据库了,但是实际的情况是这个时候还是可以使用的,所以我感觉应该不是这样的。
chenqingyu 2009-01-05
  • 打赏
  • 举报
回复
1.查看系统是以pfile还是spfile启动
Select isspecified,count(*) from v$spparameter group by isspecified;
如果isspecified里有true,表明用spfile进行了指定配置
如果全为false,则表明用pfile启动

如果你是9i以后的版本...默认是spfile的.可以手动指定用pfile启动...具体方法请google

2.按我的理解...session是和process对应的

3.多个用户应该就有多个session


如有错请指教.

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧