ORACLE最大进程数

 
查看ORACLE最大进程数:
SQL> select count(*) from v$session  #链接数
SQL> Select count(*) from v$session where status='ACTIVE' #并发链接数
SQL> show parameter processes  #最大链接
SQL> alter system set processes = value scope = spfile;重启数据库  #修改链接
unix 1个用户session 对应一个操做系统 process
而 windows体如今线程
------------------------------------------------------------------------------
修改ORACLE最大进程数:
使用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=300 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;
文件已建立。
 
重启数据库,
 
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     300
 
搞定!
 
 
------------------------------------------------------------------------------------------
 
能够查询
select username,machine,program,count(*) from gv$session
group by username,machine,program
看看主要集中在哪一个应用上

再查询下主要是在进行什么等待
select event,count(*)
from v$session
group by event
----------------------------------------------------------------------------------------------
 
太多的Inactive Sessions會吃掉Oracle資源
可依下列動做來清除Inactive Sessions:
1. 取得PID:
select concat('kill -9 ',pro.spid) from v$session ses,v$process pro where  ses.paddr=pro.addr and  ses.program='JDBC Thin Client';
會获得像這樣的列表:
kill -9 12345
2. 再到系統執行上面的列表
 
----------------------------------------------------------------------------------------------

清除Oralcle的session的理由和方法

杀掉Oralcle的一些session,理由大致以下: 1、问题的提出    不少的时候咱们迅速的杀掉Oralcle的一些session,理由大致以下:       一、 一些时候,因为咱们的数据量很大,相应的事务大而且多,在作shutdown immediate的时候会花费好多的时间,而咱们却想用shutdown immediate的方式,而又要把数据库迅速的shutdown下来。       二、 咱们的应用可能使用了会话控制,即在应用的层面控制了一些用户的链接的数量。但有时可能网络发生的瞬断,从而就产生了一些死进程,他们的状态为Inactive的状态。当咱们用alter system kill session ‘sid,serial#’进行清除时,这些session的状态又变成了killed,这些就由Pmon进程来慢慢进行清除了,而你偏偏又是个急脾气。       三、 系统突然慢了现来,你发现是某个session在作怪,想迅速把它迅速结束掉。       2、处理方法    其实处理方法很简单,是被一些人称为“谋杀”的一种方法。由于一个session会对应着操做系统中相应的一个进程(process),咱们不使用Alter system kill session这种方式了,取而代之则是kill的方式,当session的后台进程被杀掉了,便会促使懒散的Pmon进程迅速进行清理工做。       一、 以一个session作以示例,       a、 找到你要杀掉的那个session, 并记下paddr       select sid, username, paddr, status from v$session    where username = '用户名' and    status = 'INACTIVE';       b、 找到这个session所对应的spid       select * from v$process where addr = '上面查寻的paddr';    c、 杀掉spid所标识的那个进程       若是你的Oracle是在Unix平台上的,能够用kill。       $kill spid       若是你的Oracle是在windown平台上的,有一些的不一样,由于windown是以thead来代替process的,须要用到sid和spid两个值,所用的命令也由kill替换为Orakill,格式为rakill sid spid       C:\>orakill sid  spid       d、 再查一下v$session,看会话在不在了。       二、 如何谋杀掉全部的Oracle的用户的进程呢?       a、windows的环境,执行以下图中的SQL,并把结果存成.bat的文件,好比kill.bat, 执行一下kill.bat就能够了。       select 'orakill '||sid||' '||spid as thread from    sys.v_$process p, sys.v_$session s    where sid > 6 and    p.addr = s.paddr ;       b、 Unix的环境相对来讲就简单多了,执行以下的命令就能够了       $ ps -ef|grep $ORACLE_SID|grep -v ora_|grep LOCAL=NO|awk '{print $2}'|xargs kill       而后你再shutdown immediate就很快的了。       有一些死锁进程,异常退出后用    alter system kill session 'sid, serial#';没法释放会话    可从操做系统直接处理。
相关文章
相关标签/搜索