请注意,本文编写于 546 天前,最后修改于 546 天前,其中某些信息可能已经过时。
官方文档:
- PROCESSES:
http://docs.oracle.com/cd/B28359_01/server.111/b28320/initparams188.htm#sthref560 - SESSIONS:
http://docs.oracle.com/cd/B28359_01/server.111/b28320/initparams220.htm#sthref647 - TRANSACTIONS:
http://docs.oracle.com/cd/B28359_01/server.111/b28320/initparams248.htm
seesions和processes的关系
seesion是oracle层面的回话数量,processes是OS层面的进程数,windows叫线程,linux进程
Oracle 11gR2之前:sessions=(1.1*processes) + 5
Oracle 11gR2之后:sessions=(1.5*porcesses) + 22
当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.
当数据库连接的并发用户已经达到sessions这个值时,又有新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.
如何使用sqlplus查看、修改processes呢?
使用sys,以sysdba权限登录
1、查看processes和sessions参数
SQL> show parameter processes
SQL> show parameter sessions
2、修改processes和sessions值
SQL> alter system set processes=500 scope=spfile;
系统已更改。
SQL> alter system set sessions=555 scope=spfile;
系统已更改。
3、修改processes和sessions值必须重启oracle服务器才能生效
ORACLE的连接数(sessions)与其参数文件中的进程数(process)有关,它们的关系如下:
sessions=(1.1*process+5)
4、查询数据库当前进程的连接数
SQL> select count(*) from v$process;
5、查看数据库当前会话的连接数
SQL> select count(*) from v$session;
6、查看数据库的并发连接数
SQL> select count(*) from v$session where status='ACTIVE';
7、查看当前数据库建立的会话情况
SQL> select sid,serial#,username,program,machine,status from v$session;
8、查询数据库允许的最大连接数
SQL> select value from v$parameter where name = 'processes';
或者:
SQL> show parameter processes;
9、重启数据库
shutdown immediate;
startup;
注:如果修改出错ORA-32001: 已请求写入 SPFILE, 但是在启动时未指定 SPFIL
<1> 此时查看数据库是spfile还是pfile启动
SQL> show parameter spfile
NAME TYPE VALUE
------ ----------- ------------------------------------------
spfile string %ORACLE_HOME%DATABASESPFILEORACLE_SID%.ORA
value有值代表由spfile启动,如果为空值代表pfile启动
<2>如果用pfile启动,startup 加上参数pfile=‘路径\initorcl.ora’
<3>pfile spfile转换create pfile from spfile;
参考:
谢可爱在学习:https://blog.csdn.net/lids_nm/article/details/121410452
Aloys寒风: https://www.136.la/mysql/show-31322.html