您现在的位置是:首页 >

苹果输入错误次数太多无法下载 Oracle连接数太多报错-ORA-12516错误

火烧 2022-04-09 01:19:25 1047
Oracle连接数太多报错-ORA-12516错误   系统上线 一下子有几百人用 数据库出现异常  ORA : TNS: 监听程序找不到符合协议堆栈要求的可用处理程  一开始以为数据库出了问题呢  

Oracle连接数太多报错-ORA-12516错误  

  系统上线 一下子有几百人用 数据库出现异常

  ORA : TNS: 监听程序找不到符合协议堆栈要求的可用处理程

  一开始以为数据库出了问题呢

  使用sqlplus连接以后 查看当前会话数 processes和sessions值 发现session数和 个参数的值已经非常逼近

  Sql代码

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

   COUNT(*)

    

  

   SQL> show parameter processes

   NAME                                 TYPE        VALUE

   db_writer_processes                  integer    

   gcs_server_processes                 integer    

   job_queue_processes                  integer    

   log_archive_max_processes            integer    

   processes                            integer    

  

   SQL> show parameter sessions

苹果输入错误次数太多无法下载 Oracle连接数太多报错-ORA-12516错误

   NAME                                 TYPE        VALUE

   java_soft_sessionspace_limit         integer     l

   icense_max_sessions                 integer    

   license_sessions_warning             integer    

   logmnr_max_persistent_sessions       integer    

   sessions                             integer    

   shared_server_sessions               integer

   修改processes和sessions值

  Sql代码

   SQL> alter system set processes= scope=spfile;

   系统已更改

   SQL> alter system set sessions= scope=spfile;

   系统已更改

   查看processes和sessions参数 但更改并未生效

  Sql代码

   SQL> show parameter processes

   NAME                                 TYPE        VALUE

   db_writer_processes                  integer    

   gcs_server_processes                 integer    

   job_queue_processes                  integer    

   log_archive_max_processes            integer    

   processes                            integer    

   SQL> show parameter sessions

   NAME                                 TYPE        VALUE

   license_max_sessions                 integer    

   license_sessions_warning             integer    

   logmnr_max_persistent_sessions       integer    

   sessions                             integer    

   shared_server_sessions               integer

   重启数据库 使更改生效

  Sql代码

   SQL> shutdown

   SQL> startup

   SQL> show parameter processes

   NAME                                 TYPE        VALUE

   db_writer_processes                  integer    

   gcs_server_processes                 integer    

   job_queue_processes                  integer    

   log_archive_max_processes            integer    

   processes                            integer    

   SQL> show parameter sessions

   NAME                                 TYPE        VALUE

   java_soft_sessionspace_limit         integer    

   license_max_sessions                 integer    

   license_sessions_warning             integer    

   logmnr_max_persistent_sessions       integer    

   sessions                             integer    

   shared_server_sessions               integer

  其他

  ORACLE的连接数(sessions)与其参数文件中的进程数(process)有关 它们的关系如下

  sessions=( *process+ )

  但是我们增加process数时 往往数据库不能启动了 这因为我们还漏调了一个unix系统参数 它是/etc/proc/kernel 中semmns 这是unix系统的信号量参数 每个process会占用一个信号量 semmns调整后 需要重新启动unix操作系统 参数才能生效 不过它的大小会受制于硬件的内存或ORACLE SGA 范围可从 —— 不等

  semmns的计算公式为   SEMMNS>processes+instance_processes+system

  processes=数据库参数processes的值  instance_processes= (smon pmon dbwr lgwr arch)

  system=系统所占用信号量 系统所占用信号量可用下列命令查出

  #ipcs s

  其中列NSEMS显示系统已占用信号量

lishixinzhi/Article/program/Oracle/201311/17721  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码