Oracle里有形形色色的限制(limit)清楚的了解这些限制可以帮助我们更好的使用Oracle和理解Oracle 本文是Oracle的限制系列的第一篇文章最主要介绍了一些由Oracle初始化参数设定的一些基本限制(sessions processes ) Key Word: ORA ORA sessions 在初始化参数所设定的限制中最为人所知的估计就是sessions和processes Sessions 参数指定了一个 Instance中能够同时存在的sessions数量或者说就是能同时登陆到数据库的并发用户数通常我们设定这个数字时需要考虑我们可能会有多少个同时连接到数据库的并发用户并加上后台进程的进程数最后乘与 比如说估计系统中可能会同时有个用户连接到数据库那么你的session最少应该为 ( + ) * = 当数据库连接的并发用户已经达到这个值时又有新session连进来就会报错 maximum number of sessions exceeded // *Cause: All session state objects are in use // *Action: Increase the value of the SESSIONS initialization parameter Processes 和Sessions是类似的是processes这个参数 Processes参数指定了Instance在OS层面所能同时运行的进程数基于和sessions设定同样的考虑我们在设定processes时也应考虑我们可能会有多少个同时连接到数据库的并发用户并加上后台进程的进程数 当然在MTS(shared server)的配置下这个值的确定会有所不同应该是普通后台进程+最大共享服务器的进程数(max_shared_servers) + 最大Dispatcher进程数(max_dispatchers) 另外由于在window平台中Oracle是以单一一个进程的形式存在Processes 参数变成了限制Oracle进程里的线程数了 当Oracle需要启动新的process而又已经达到processes参数时就会报错 maximum number of processes (%s) exceeded // *Cause: All process state objects are in use // *Action: Increase the value of the PROCESSES initialization parameter |