1.sessions
在初始化参数所设定的限制中,最为人所知的估计就是sessions和processes
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.
2. Processes
和Sessions是类似的是processes这个参数。
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.
1).通过SQLPlus修改
Oracle的sessions和processes的关系是
sessions=1.1*processes + 5
使用sys,以sysdba权限登录:
SQL> show parameter processes;
NAME TYPE VALUE
------------------------------------ ----------- ---------------------------------------
aq_tm_processes integer 1
db_writer_processes integer 1
job_queue_processes integer 10
log_archive_max_processes integer 1
processes integer 150
SQL> alter system set processes=400 scope = spfile;
系统已更改。
SQL> show parameter processes;
NAME TYPE VALUE
------------------------------------ ----------- -----------------------------------------
aq_tm_processes integer 1
db_writer_processes integer 1
job_queue_processes integer 10
log_archive_max_processes integer 1
processes integer 150
SQL> create pfile from spfile;
文件已创建。
重启数据库,OK!
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 145488364 bytes
Database Buffers 25165824 bytes
Redo Buffers 524288 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter processes;
NAME TYPE VALUE
------------------------------------ ----------- ----------------
aq_tm_processes integer 0
db_writer_processes integer 1
gcs_server_processes integer 0
job_queue_processes integer 10
log_archive_max_processes integer 2
processes integer 400
SQL> show parameter session;
NAME TYPE VALUE
------------------------------------ ----------- ----------------
java_max_sessionspace_size integer 0
java_soft_sessionspace_limit integer 0
license_max_sessions integer 0
license_sessions_warning integer 0
logmnr_max_persistent_sessions integer 1
session_cached_cursors integer 0
session_max_open_files integer 10
sessions integer 445
shared_server_sessions integer
注:sessions是个派生值,由processes的值决定,公式sessions=1.1*process + 5
转自:http://blog.sina.com.cn/s/blog_9426b1bd01012qsr.html
分享到:
相关推荐
在Oracle数据库管理中,对`process`与`session`的管理和优化至关重要。本文将从查询、设定以及二者之间的关系等方面详细介绍如何修改Oracle的`process`与`session`初始化参数。 #### 一、查询Process与Session ...
查看processes和sessions参数 第一步,在cmd命令行,输入sqlplus 第二步,根据提示输入用户名与密码
首先,我们需要查看当前系统中`processes`和`sessions`的设置情况。 ```sql SQL> show parameter processes; SQL> show parameter sessions; ``` 通过以上命令,我们可以了解到当前配置的最大进程数(`processes`)和...
在Oracle数据库系统中,了解Connect、Session和Process的概念及其相互关系对于有效管理和优化数据库性能至关重要。下面我们将深入探讨这三个术语的定义以及它们之间的差异和联系。 1. Connect(连接): Connect...
4. Oracle数据库进程数与会话数之间的关系:在Oracle 11g R2版本中,会话数和进程数有一个大致的数学关系:session=(1.5*processes+22)。这个公式可以用于估算在不调整会话数的情况下,进程数需要调整为多少。通常,...
5. **验证设置**:重启后,再次检查`processes`和`sessions`参数的值,确认是否已正确设置。 ```sql SHOW PARAMETER PROCESSES; SHOW PARAMETER SESSIONS; ``` 6. **监控性能**:在调整最大连接数后,持续监控...
6. **session_cached_cursors** 和 **open_cursors**: 控制会话缓存的游标数和允许打开的游标数,优化游标管理可以减少磁盘I/O并提升性能。 7. **open_links** 和 **open_links_per_instance**: 设定单个会话可打开...
1. **重新安装Oracle**: 这种方法虽然简单粗暴,但在实际操作中并不推荐,因为它意味着需要从头开始配置环境,不仅耗时且可能带来额外的风险。 2. **修改服务端字符集**: 相较于第一种方法,这种方式更加实用且高效...
### Oracle中文乱码解决方案...通过上述步骤,可以有效地解决Oracle数据库中的中文乱码问题,确保数据能够正常显示。在实际操作过程中,还需要注意备份原有数据以防万一,并仔细检查每个步骤的执行结果以确保变更成功。
在Oracle12cRAC环境中,每个实例都配置了一定数量的最大并发进程数(processes)和会话数(sessions),如果这些值被超过,则可能导致客户端连接失败。例如,当processes参数设置为300时,如果当前活动的进程数已经接近...
在Oracle数据库的管理与维护过程中,字符集的正确设置对于确保数据的正确显示与处理至关重要。由于不同的地区和语言环境对于字符编码的需求各异,因此有时可能需要更改Oracle数据库的字符集设置。本文将详细介绍如何...
2. **Oracle 参数配置不当**:虽然配置文件中的 `processes` 和 `sessions` 参数分别设置为了800和885,但实际连接数仍受限于250个,这表明可能存在其他参数配置不当导致的问题。 3. **Listener 配置问题**:尝试在 ...
Oracle 中的 Job 是一个非常强大且灵活的功能,它允许开发者在数据库中执行计划任务,提高数据库的自动化程度和效率。那么,什么是 Oracle 中的 Job 呢? Oracle 中的 Job 是一个计划任务,它可以在指定的时间点或...
在企业级应用中,Oracle数据库因其强大的数据处理能力和高度的可靠性而被广泛采用。然而,随着业务量的增长,数据库的并发访问需求也会相应增加。为了确保系统的稳定运行,了解并合理设置Oracle的最大并发用户数成为...
在Oracle数据库管理中,了解和调整最大连接数是至关重要的任务,这关乎到系统的稳定性和性能。Oracle数据库允许并发用户连接进行数据操作,而“最大连接数”就是系统能够同时处理的最大用户会话数量。本篇文章将深入...
Oracle中的Job主要用于数据库中任务的定时执行,具体来说是定时执行存储过程。使用Job可以让一些需要周期性处理的业务逻辑自动化运行,减少编程工作量,提升执行效率和程序稳定性。在Oracle中,Job的实现依赖于Job ...
在使用轻量级数据库Oracle XE的过程中,部分用户可能会遇到中文字符显示为乱码的问题。这一问题通常发生在数据库设置不当或者字符集配置错误的情况下。中文乱码不仅影响数据的可读性,还可能导致业务逻辑出错或用户...
5. 设置JOB_QUEUE_PROCESSES和AQ_TM_PROCESSES为0,以避免后台进程干扰: ```sql ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; ALTER SYSTEM SET AQ_TM_PROCESSES=0; ``` 6. 打开数据库: ```sql alter database...