oracle信号量设置,__9_1--修改Oracle的processes和sessions参数和Linux的信号量配置,可预防ORA-12516...

修改Oracle的processes和sessions参数和Linux的信号量配置,可预防ORA-12516

/*

1.问题分析

oracle服务器上某个数据库出现' ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程'错误'

问题首先查看一下数据库现有的进程数,是否已经达到参数processes的大小。

select count(*) from v$process; 取得数据库目前的进程数

select value from v$parameter where name = 'processes'; 取得进程数的上限。

select count(*) from v$session;

*/

--修改步骤

--1.查看当前正在运行的系统中的进程数和会话数

select count(*) from v$process;

select count(*) from v$session;

--2.查看数据库的配置的 processes值 和 sessions值

select value

from v$parameter where name = 'processes';

select value

from v$parameter where name = 'sessions';

或者在 sqlplus 中这么看:

show parameter processes

show parameter sessions

--3. 修改数据库的 processes 和 session

--原则上是进程数量控制了client的连接数量 ,会话数应该大于进程数 ,

oracle11g R2之前:推荐公式 session数=process数*1.1+5

oracle11g R2 推荐公式: 11gR2 Default value Derived: (1.5 * PROCESSES) + 22

对于oracle11g R2:

设置:

processes = 1000

则:sessions =1522;

select 1000*1.5+22 from dual;

--登录后台 sqlplus

alter system set processes=1000 scope=spfile;

alter system set sessions=1522 scope=spfile;

参数需求完成之后, 需要重启数据库才能生效, 此刻先不要重启, 等修改好操作系统内核中的信号量参数后再重启

--4. 修改操作系统中内核信号量参数

root登录

vi /etc/sysctl.conf

更改当前SEMAPHORES参数设置

[oracle@ebsse oracle]$ su

Password:

[root@ebsse oracle]# echo "5010 641280 5010 128" > /proc/sys/kernel/sem

[root@ebsse oracle]# cat /proc/sys/kernel/sem

5010 641280 5010 128

如需启动时自动应用,可在/etc/sysctl.conf增加或修改老配置为:

kernel.sem = 5010 641280 5010 128

修改好之后, 执行sysctl -p 使得内核参数生效

使用命令 # ipcs -ls 看设置的信号量参数是否生效

/*

说明:

kernel.sem = 250 32000 100 128

SEMMSL SEMMNS SEMOPM SEMMNI

如当oracle DB初始化参数文件中PROCESSES参数设置较大时,需要调整SEMAPHORES设置

SEMMSL应该设置为服务器中各个实例中最大的PROCESSES参数+10,例如,当最大的PROCESSES参数为5000时,SEMMSL应设置为5010。

SEMMNS参数应设置为SEMMSL*SEMMNI,接上例SEMMSL为5010,SEMMNS参数应为(5010*128)=641280。

SEMOPM参数应设置与SEMMSL参数相同,接上例此处应设置为5010

本篇文章来源于 Linux公社网站(http://doc.docsou.com) 原文链接:http://doc.docsou.com/Linux/2011-11/48245.htm

上面的4个数据分别对应:SEMMSL、SEMMNS、SEMOPM、SEMMNI这四个核心参数,具体含义和配置如下。

SEMMSL :用于控制每个信号集的最大信号数量。

Oracle 建议将 SEMMSL

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值