把微笑留给那个让你伤心的人
做男人,洒脱一点
登录
注册
全站
当前博客
空间
博客
好友
相册
留言
ORA-12516错误的处理
收藏
解决过程
:
1、查看当前会话数、processes和sessions值,发现session数和2个参数的值已经非常逼近
SQL
*
Plus: Release
10.2
.
0.1
.
0
-
Production
on
星期一 10月
9
15
:
50
:
21
2006Copyright (c)
1982
,
2005
, Oracle.
All
rights reserved.
SQL
>
conn
/
as
sysdba
已连接。SQL
>
select
count
(
*
)
from
v$session;
COUNT
(
*
)
--
--------
45
SQL
>
show parameter processes
NAME TYPE VALUE
db_writer_processes
integer
1
gcs_server_processes
integer
0
job_queue_processes
integer
10
log_archive_max_processes
integer
2
processes
integer
50
SQL
>
show parameter sessions
NAME TYPE VALUE
java_soft_sessionspace_limit
integer
0l
icense_max_sessions
integer
0
license_sessions_warning
integer
0
logmnr_max_persistent_sessions
integer
1
sessions
integer
60
shared_server_sessions
integer
2、修改processes和sessions值
SQL
>
alter
system
set
processes
=
300
scope
=
spfile;
系统已更改。
SQL
>
alter
system
set
sessions
=
335
scope
=
spfile;
系统已更改。
3、查看processes和sessions参数,但更改并未生效
SQL
>
show parameter processes
NAME TYPE VALUE
db_writer_processes
integer
1
gcs_server_processes
integer
0
job_queue_processes
integer
10
log_archive_max_processes
integer
2
processes
integer
50
SQL
>
show parameter sessions
NAME TYPE VALUE
license_max_sessions
integer
0
license_sessions_warning
integer
0
logmnr_max_persistent_sessions
integer
1
sessions
integer
60
shared_server_sessions
integer
4、重启数据库,使更改生效
SQL
>
shutdown
SQL
>
startup
SQL
>
show parameter processes
NAME TYPE VALUE
db_writer_processes
integer
1
gcs_server_processes
integer
0
job_queue_processes
integer
10
log_archive_max_processes
integer
2
processes
integer
300
SQL
>
show parameter sessions
NAME TYPE VALUE
java_soft_sessionspace_limit
integer
0
license_max_sessions
integer
0
license_sessions_warning
integer
0
logmnr_max_persistent_sessions
integer
1
sessions
integer
335
shared_server_sessions
integer
其它:
ORACLE的连接数(sessions)与其参数文件中的进程数(process)有关,它们的关系如下:
sessions=(1.1*process+5)
但是我们增加process数时,往往数据库不能启动了。这因为我们还漏调了一个unix系统参数:它是/etc/proc/kernel 中semmns,这是unix系统的信号量参数。每个process会占用一个信号量。semmns调整后,需要重新启动unix操作系统,参数才能生效。不过它的大小会受制于硬件的内存或ORACLE SGA。范围可从200——2000不等。
semmns的计算公式为:
SEMMNS>processes+instance_processes+system
processes=数据库参数processes的值
instance_processes=5(smon,pmon,dbwr,lgwr,arch)
system=系统所占用信号量。系统所占用信号量可用下列命令查出:
#ipcs -s
其中列NSEMS显示系统已占用信号量。
其它一些跟连接有关的参数,如 licence_max_sessions, licence_sessions_warning 等默认设置都为零,也就是没有限制。我们可以放心大胆地使用数据库了。
发表于 @
2007年06月08日 11:47:00
|
评论(
loading...
)
新一篇: Linux/Unix下ODBC的安装
|
旧一篇: oracle中得字符集
用户操作
[即时聊天]
[发私信]
[加为好友]
︻┳═一
订阅我的博客
︻┳═一的公告
文章分类
.NET技术
ASP.NET
DB2
DELPHI
Linux and Unix
Oracle技术
UML建模
WIN32下的多线程
Windows编程
Windows的内存管理
Winsock编程
生活随笔
数据库
收藏
BLOG连接
存档
2007年08月(1)
2007年06月(5)
2007年05月(6)
2007年04月(9)
2007年03月(1)
2007年01月(3)
2006年12月(6)
2006年10月(4)
2006年09月(19)
2006年06月(9)
2006年05月(5)
软件项目交易