本篇文章给大家分享的是有关如何进行 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 行业资讯频道。