精华内容
下载资源
问答
  • 问题描述 用PL/SQL登录普通用户时发生报错: 出现这个问题的根本原因就是因为数据库的process和session已经快达到甚至超过最大值了。 问题解决 1.用sqlplus工具,通过sysdba用户登录 2.查看数据库允许的最大连接数...

    问题描述

    用PL/SQL登录普通用户时发生报错:
    在这里插入图片描述
    出现这个问题的根本原因就是因为数据库的process和session已经快达到甚至超过最大值了。

    问题解决

    1.用sqlplus工具,通过sysdba用户登录
    2.查看数据库允许的最大连接数和进程数

    SQL> show parameter process
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    aq_tm_processes                      integer     1
    cell_offload_processing              boolean     TRUE
    db_writer_processes                  integer     1
    gcs_server_processes                 integer     0
    global_txn_processes                 integer     1
    job_queue_processes                  integer     1000
    log_archive_max_processes            integer     4
    processes                            integer     1000
    processor_group_name                 string
    SQL> show parameter session
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    java_max_sessionspace_size           integer     0
    java_soft_sessionspace_limit         integer     0
    license_max_sessions                 integer     0
    license_sessions_warning             integer     0
    session_cached_cursors               integer     50
    session_max_open_files               integer     10
    sessions                             integer     1524
    shared_server_sessions               integer
    
    SQL> select value from v$parameter where name = 'processes';
    
    VALUE
    ---------------------------
    1000
    
    SQL> select value from v$parameter where name = 'sessions';
    
    VALUE
    ----------------------------
    1524
    

    3.查看当前进程数

    SQL> select count(*) from v$process;
    
      COUNT(*)
    ----------
           998
    

    4.查看当前会话数

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

    很显然资源快占满了

    5.修改数据库允许的最大process

    SQL> alter system set processes =2000 scope=spfile;
    

    session会自动根据process调整,一般是 sessions=processes*1.5+5

    6.重启实例使配置生效
    7.查看数据库允许的最大连接数和进程数
    在这里插入图片描述

    展开全文
  • PS:processes和sessions的值,oracle官方文档要求:sessions=processes*1.5+5 修改后重启oracle服务,启动全部tomcat服务,重新查询 process 和 session 的占用情况,process 和 session 使用数目都小于最大限定...

    1、问题描述

    远程登录数据库时报错:

    出现问题后去数据库告警文件 alert.log 中查看,发现报错如下:

    2、问题原因

    错误信息一般在Oracle实例在创建一些辅助后台进程(如mmon的子进程m00x或者子进程W00x等)时出现进程启动失败时出现,而造成该错误的可能性有多种,包括Oracle实例资源不足、操作系统资源不足等等。其中较为常见的是数据库在实际运行过程中实例instance的process使用达到参数设定上限而导致问题出现

    通过v$resource_limit视图可以查询实例生命周期内是否发生过process进程达到上限的情况

    由于报错无法登录数据库(sys as sysdba也无法登录),所以需要先断掉占用的process,停掉几个tomcat即可释放连接,停掉后就可以连接了。

    登录数据库后查询v$resource_limit视图,查询结果如下:

    通过查询结果可以看到process的MAX_UTILIZATIOON最大使用数目曾经达到过LIMIT_VALUE限定的150,极有可能就是process总数达到上限数量导致数据库创建新的后台辅助进程失败。

    现在可以重新启动 tomcat 服务,一个一个启动,每启动一个 tomcat 都查看一下process和session的值

    select count(*) from v$process; //查询process使用数目
    select count(*) from v$session; //查询session连接数目

    如果发现 process 增长会达到上限数目,则说明确实是这个原因导致数据库报错,则需要修改process和session参数的上限值

    3、解决方法

    修改修改process和session参数的上限值

    altert system set processes = 250 scope = spfile;
    alter system set sessions = 380 scope = spfile;
    
    PS:processes和sessions的值,oracle官方文档要求:sessions=processes*1.5+5

    修改后重启oracle服务,启动全部tomcat服务,重新查询 process 和 session 的占用情况,process 和 session 使用数目都小于最大限定值即可

    ps:但是也有可能是数据库某一时间突然process达到最大值,我遇见的情况就是,没有修改参数,重启tomcat后就可以正常使用了

    展开全文
  • 注意一下processes的值和sessions的值,Oracle官方文档中要求: sessions=processes*1.1+5 sessions的值是根据processes的值计算得来的。 修改完process和session的值后,重启oracle服务器就好了, 输入...

    根本原因就是因为process和session已经达到甚至超过最大值了。

    解决根本方法就是 修改process和session的值

     

    首先输入sqlplus /nolog

    然后输入conn sys / as sysdba,在输入口令处输入数据库密码,出现已连接成功既成功。

    可以查看下连接进程数量设置值,输入命令
    show parameter processes;
    查看会话数量设置值,输入命令
    show parameter sessions;

    然后修改process和session的最大值,修改语句

    alter system set processes=300 scope=spfile;
    alter system set sessions=335 scope=spfile;

    注意一下processes的值和sessions的值,Oracle官方文档中要求:


    sessions=processes*1.1+5
    sessions的值是根据processes的值计算得来的。
    修改完process和session的值后,重启oracle服务器就好了,

    输入命令立即关闭数据库: shutdown immediate  

    开启数据库:startup

    展开全文
  • 提示监听程序找不到符合协议堆栈要求可用处理程序,无法登录数据库,其主要是因为oracle的process和session已经达到甚至超过最大值了 第一种解决方法是重启oracle服务,但是如果之后链接过多还是会出现这种情况。...

    经常登录oracle数据库时可能出现如图所示情况
    在这里插入图片描述
    提示监听程序找不到符合协议堆栈要求的可用处理程序,无法登录数据库,其主要是因为oracle的process和session已经达到甚至超过最大值了
    第一种解决方法是重启oracle服务,但是如果之后链接过多还是会出现这种情况。
    点击开始——控制面板——系统和安全——管理工具——服务,双击服务选项,出现如下图界面
    在这里插入图片描述
    找到OracleDBConsolertrdp,OracleServiceTRDP和OracleOraDb11g_home1TNSListener右键单击,选择重新启动,重新链接数据库即可。

    第二种方法,修改process和session的值。
    首先输入sqlplus /nolog,出现如下图
    在这里插入图片描述
    然后输入conn sys / as sysdba,在输入口令处输入数据库密码(注意输入的密码不显示),出现下图即成功
    在这里插入图片描述
    然后查看连接进程数量设置值,输入命令
    show parameter processes;
    查看会话数量设置值,输入命令
    show parameter sessions;

    最后修改process和session的最大值,修改语句
    alter system set processes=300 scope=spfile;
    alter system set sessions=335 scope=spfile;
    需要注意的是Oracle官方文档中要求
    sessions=processes*1.1+5
    sessions的值是根据processes的值计算得来的。
    修改完process和session的值后,重启oracle服务器即可
    如下图
    在这里插入图片描述

    展开全文
  • 报错场景: ...根本原因就是因为oracle的process和session已经达到甚至超过最大值了(局限于pc机登陆的台数,pl/sql 新增一个运行窗口也会增加),接下来就详细说明一下解决方案。 查看procress&...
  • 一、 错误码ORA-12516 TNS监听程序找不到符合协议堆栈要求可用处理程序 解决方案 1.错误原因 由于超过连接最大值导致无法登录,所以用sys as dba也是登录不上的,首先需要先断开占用的procress,即停掉几个...
  • ORA-12516: TNS: 监听程序找不到符合协议堆栈要求可用处理程 。 上网搜了搜,数据库的当前连接数超过了最大连接数: 解决办法: 1、查看当前的数据库连接数  select count(*) from v$process ; --当前的...
  • ORA-12516 "TNS监听程序找不到符合协议堆栈要求可用处理程序" 解决方案 1.进入数据库:sqlplus /nolog 2.进入数据库:conn sys/123456 as sysdba; 3.show parameter processes; 查看procress&session的...
  • 项目运行中报错“oracle 12516 :TNS:监听程序找不到符合协议堆栈要求的可以用处理程序”,plsql 也不能远程连接上数据库。服务器远程桌面连接成功,查询到原因是可能是session数不够 。 1、关闭项目,远程登录...
  • ORA-12516 TNS 监听程序找不到符合协议堆栈要求可用处理
  • 上面提到由于超过连接最大值导致无法登录,所以用sys as dba也是登录上的,首先需要先断开占用的procress,即停掉几个tomcat即可释放连接,接下来就可以登录了。在这里我停掉了所有tomcat,再通过sys用户登录...
  • 服务器上某个数据库出现' ORA-12516: TNS: 监听程序找不到符合协议堆栈要求可用处理程'错误,要解决该问题首先查看一下数据库现有的进程数,是否已经达到参数processes的大小。  a.select count(*) from v$...
  • 这样的情况下连sqlplus都登录进去了。由于超过连接最大值导致无法登录,首先需要先断开占用的procress,即停掉所有tomcat释放连接,接下来就可以登录了。如果还是不行,我这里是直接把数据库主机断网,再通过...
  • TNS: 监听程序找不到符合协议堆栈要求可用处理程'错误 连接太多,关掉你的plsql的一些窗口即可解决!
  • 问题场景: 之前有一个库一直作为测试用(部门A),昨天晚上因另一个测试部门(部门...结果当通过客户端测试就报ORA-12516 TNS: 监听程序找不到符合协议堆栈要求可用处理程序。 看到这个错误时并没有反映过来到
  • 报:“ORA-12516:TNS:监听程序找不到符合协议堆栈要求可用处理程序” 二、收到这个情况,没有先去百度,之前经常碰到这个问题。猜想问题应该出在3个地方中的其中一种 A.oracle实例 B.监听服务 C.listener.log ...
  • 服务器上某个数据库出现' ORA-12516: TNS: 监听程序找不到符合协议堆栈要求可用处理程'错误,要解决该问题首先查看一下数据库现有的进程数,是否已经达到参数processes的大小。 使用system帐户登录 a.select ...
  • 再有一个就是客户端和服务端建立连接的时候稳定所引起的,我现在的服务端是oracle10g r2,而 客户端是oracle11i,结果当连接数大的时候,就会报ora-12516的错误   1.针对第一个原因就是修改连接数的限制 ...
  • ORA-12516: TNS: 监听程序找不到符合协议堆栈要求可用处理程序 问了组里的有经验的程序员,知道了ORA数据库线程饱满了,让我去清一下数据库的session,最好是查看一下现在的线程最大设置了多少,设置一下数据库...
  • ORA-12516 “TNS监听程序找不到符合协议堆栈要求可用处理程序” 解决方案 前言 简单描述一下场景,总共两台应用服务器,每台安装3个tomcat进行集群,并通过nginx做了负载均衡,今天在生产环境中...
  • ORA-12516: TNS: 监听程序找不到符合协议堆栈要求可用处理程     今天测试的同事发现报 ora-12516的错误,基于这个分析,一般有两个原因,一个是session数不够 再有一个就是客户端和服务端建立连接的...
  • oracle服务器上某个数据库出现' ORA-12516: TNS: 监听程序找不到符合协议堆栈要求可用处理程'错误,要解决该问题首先查看一下数据库现有的进程数,是否已经达到参数processes的大小。   a.select count(*) from ...
  • 服务器上某个数据库出现' ORA-12516: TNS: 监听程序找不到符合协议堆栈要求可用处理程'错误,要解决该问题首先查看一下数据库现有的进程数,是否已经达到参数processes的大小。 a.select count(*) from v$process...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,072
精华内容 5,628
关键字:

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