---------------------------------PROCESSES--------------------------------
默认40 指定可以同时连接到oracle的操作系统的用户进程的最大数量。它的值应该允许所有的后台进程,如锁,作业队列进程和并行执行的过程。 Processes参数指定了Instance在OS层面所能同时运行的进程数。基于和sessions设定同样的考虑,我们在设定processes时,也应考虑我们可能会有多少个同时连接到数据库的并发用户,并加上后台进程的进程数。当然,在MTS(shared server)的配置下,这个值的确定会有所不同。应该是普通后台进程+最大共享服务器的进程数(max_shared_servers) + 最大Dispatcher进程数(max_dispatchers).
另外,由于在window平台中,Oracle是以单一一个进程的形式存在,Processes 参数变成了限制Oracle进程里的线程数了。
当Oracle需要启动新的process而又已经达到processes参数时,就会报错:
00020, 00000, "maximum number of processes (%s) exceeded"
// *Cause: All process state objects are in use. // *Action: Increase the value of the PROCESSES initialization parameter. --------------------------------JOB_QUEUE_PROCESSES----------------------- 默认0 指定的作业的执行过程,可以创建的最大数量。它指定了每个实例的作业队列进程数量。------------------------------------SESSIONS------------------------------
Sessions 参数指定了一个 Instance中能够同时存在的sessions数量,或者说,就是能同时登陆到数据库的并发用户数。通常,我们设定这个数字时需要考虑我们可能会有多少个同时连接到数据库的并发用户,并加上后台进程的进程数,最后乘与1.1. 比如说,估计系统中可能会同时有100个用户连接到数据库,那么,你的session最少应该为(100 + 10 ) * 1.1 = 121当数据库连接的并发用户已经达到这个值时,又有新session连进来,就会报错
00018, 00000, "maximum number of sessions exceeded" // *Cause: All session state objects are in use. // *Action: Increase the value of the SESSIONS initialization parameter.