Home >Database >Mysql Tutorial >ORA-12516错误分析与解决

ORA-12516错误分析与解决

WBOY
WBOYOriginal
2016-06-07 16:44:322047browse

在使用swingbench对oracle数据库进行压力测试时,出现ORA-12516错误。这个报错一般是因为oracle的会话数超出了限制,一般都是由于

在使用swingbench对Oracle数据库进行压力测试时,出现ORA-12516错误。这个报错一般是因为oracle的会话数超出了限制,一般都是由于多次connect建立多个连接会话引起的,最后导致oracle无法响应新的请求,从而出现ora-12516错误。

解决该问题的思路和方法:

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

select count(*) from v$process;

获得数据库当前的进程数。

select value from v$parameter where name = 'processes';

获得进程数的上限。

查看当前sessions值,发现session数和processes参数的值已经非常接近

SQL> conn / as sysdba
已连接。

SQL> select count(*) from v$session;
  170

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    150

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    175
shared_server_sessions              integer

然后修改processes和sessions值

SQL> alter system set processes=500 scope=spfile;
系统已更改。
SQL> alter system set sessions=555 scope=spfile;
系统已更改。

注:只要会话连接数超过上面的process数150或者sessions数170,再来一个的会话进程,就会产生12516错误。因此可以修改一下该值:

sessions=1.1*processes+5;//这个是sessions值和processes值的关系,最好按照这样做,

因此如果要将processes数设置为500,则sessions数必须为1.1*500+5=555

查看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    150
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    170
shared_server_sessions              integer

重启数据库,使更改生效

SQL> shutdown immediate

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    500
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    555
shared_server_sessions              integer

Oracle 11g 在RedHat Linux 5.8_x64平台的安装手册

Linux-6-64下安装Oracle 12C笔记

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

本文永久更新链接地址:

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn