如何进行ora

45次阅读
没有评论

本篇文章给大家分享的是有关如何进行 ora-12516 错误分析与解决,丸趣 TV 小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着丸趣 TV 小编一起来看看吧。

  在使用 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

以上就是如何进行 ora-12516 错误分析与解决,丸趣 TV 小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注丸趣 TV 行业资讯频道。