ORA-12516錯誤分析與解決

來源:互聯網
上載者:User

ORA-12516錯誤分析與解決

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

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.