oracle连接超时自动断开问题【经典】_amgo74207的博客-程序员秘密

技术标签: 数据库  

今天接到客户电话,描述新建的oracle 11.1.0.7 RAC数据库中,当一个用户连接到数据库上以后,如果在某一段时间内没有任何动作的话,该进程就会自己中断,这样在应用程

序就会因为进程超时自动断开而不能正常执行。
  分析原因,应该是该进程的用户的概要文件(profile)配置问题。
  发现用户所在的profile的IDLE_TIME为30。即30秒该进程没有任何操作,就会自动断开。

PROFILE的管理(资源文件)
      当需要设置资源限制时,必须设置数据库系统启动参数RESOURCE_LIMIT,此参数默认值为FALSE
      可以使用如下命令来启动当前资源限制:
      alter system set RESOURCE_LIMIT=true;
      当需要以后启动时也启动限制,必须在init<SID>.ora中设置
      RESOURCE_LIMIT=true

建立语法:
CREATE PROFILE profile LIMIT
{ resource_parameters | password_parameters }
[ resource_parameters | password_parameters ]...;

{ { SESSIONS_PER_USER | CPU_PER_SESSION | CPU_PER_CALL | CONNECT_TIME | IDLE_TIME    
     | LOGICAL_READS_PER_SESSION | LOGICAL_READS_PER_CALL | COMPOSITE_LIMIT }
     { integer | UNLIMITED | DEFAULT }
| PRIVATE_SGA { integer [ K | M ] | UNLIMITED | DEFAULT }
}

{ { FAILED_LOGIN_ATTEMPTS | PASSWORD_LIFE_TIME | PASSWORD_REUSE_TIME
     | PASSWORD_REUSE_MAX | PASSWORD_LOCK_TIME | PASSWORD_GRACE_TIME }
     { expr | UNLIMITED | DEFAULT }
| PASSWORD_VERIFY_FUNCTION { function | NULL | DEFAULT }
}

CREATE PROFILE new_profile
     LIMIT PASSWORD_REUSE_MAX DEFAULT
           PASSWORD_REUSE_TIME UNLIMITED;

CREATE PROFILE app_user LIMIT
      SESSIONS_PER_USER             UNLIMITED
      CPU_PER_SESSION               UNLIMITED
      CPU_PER_CALL                  3000
      CONNECT_TIME                  45
      LOGICAL_READS_PER_SESSION     DEFAULT
      LOGICAL_READS_PER_CALL        1000
      PRIVATE_SGA                   15K
      COMPOSITE_LIMIT               5000000;

CREATE PROFILE app_user2 LIMIT
      FAILED_LOGIN_ATTEMPTS 5
      PASSWORD_LIFE_TIME 60
      PASSWORD_REUSE_TIME 60
      PASSWORD_REUSE_MAX UNLIMITED
      PASSWORD_VERIFY_FUNCTION verify_function
      PASSWORD_LOCK_TIME 1/24
      PASSWORD_GRACE_TIME 10;
          
一、PROFILE的管理内容:
       1、CPU的时间
       2、I/O的使用
       3、IDLE TIME(空闲时间)
       4、CONNECT TIME(连接时间)
       5、并发会话数量
       6、口令机制:

二、DEFAULT PROFILE:
       1、所有的用户创建时都会被指定这个PROFILE
       2、DEFAULT PROFILE的内容为空,无限制

三、PROFILE的划分:
       If a user attempts to perform an operation that exceeds the limit for other session resources,
Oracle aborts the operation, rolls back the current statement, and immediately returns an error.
The user can then commit or roll back the current transaction, and must then end the session.
       that exceeds the limit(超过限制) for other session resources(范围之外的其他资源)
       被理解为:连接控制资源范围之外的其他资源。
    
       当一个用户试图操作超过限制的资源时,Oracle终止当前操作,取消正在执行的处理,并且返回一个错误,
用户可以提交或回滚当前事物,之后必须断开会话。

       如果一个用户试图操作一个超出他限制的资源,Oracle将放弃这个操作,取消正在执行的处理,并立即返
回一个错误。这个用户然后提交或回滚当前的处理,之后必须终止这个会话。

       如果是调用限制时,Oracle终止当前操作,取消正在执行的处理,并且返回一个错误,回滚整个事务。

       1、CALL级LIMITE:
          对象是语句:
          当该语句资源使用溢出时:
          A、该语句终止
          B、事物回退
          C、SESSION连接保持

       2、SESSION级LIMITE:
          对象是:整个会话过程
          溢出时:连接终止

四、如何管理一个PROFILE
       1、CREATE PROFILE
       2、分配给一个用户
       3、象开关一样打开限制。

五、如何创建一个PROFILE:
       1、命令:
          CREATE PROFILE 名称
          LIMIT
          SESSION_PER_USER 2
          CPU_PER_SESSION 1000
          IDLE_TIME 60     用户在数据库终止前,可以让连接空闲多长时间(分钟)
          CONNECT_TIME 480
       
六、限制参数:
       0、UNLIMITED 取消资源限制
          DEFAULT      缺剩资源限制,即使用default资源限制

       1、CONNECT_TIME        :一个连接会话的最长连接时间(分钟)
                             当用户会话时间超过CONNECT_TIME指定的时间,Oracle将回滚当前事务,并且结束他的会话
          IDLE_TIME           :一个连接会话的最长连接时间
                             当用户空闲时间超过IDLE_TIME指定的时间,Oracle将回滚当前事务,并且结束他的会话

       2、SESSIONS_PER_USER:一个用户允许同时(并发)会话的总数,超过后系统禁止该用户的后续会话,并返回错误:
                             ORA-02391 exceeded simultaneous SESSIONS_PER_USER limit


       3、SESSION级LIMITE:
          CPU_PER_SESSION:定义了一个SESSION占用的CPU的时间(1/100 秒),当达到这个限制用户不能在此会话中执行任何操作,
                           此时必须先断开连接,再连接才行。
          CPU_PER_CALL      :限制每次调用SQL语句期间(parse、execute、fetch)可用的CPU时间总量,单位是百分之一秒。达到限制时
                           语句以报错结束。不同于CPU_PER_SESSION的是,没达到CPU_PER_SESSION限制,还可以进行新的查询。
    
       4、LOGICAL_READS_PER_SESSION: 一个会话允许读写的逻辑块的数量限制
    
       5、CALL级LIMITE
          CPU_PER_CALL:每个语句占用的CPU时间
          LOGICAL_READS_PER_CALL:一次调用的SQL期间,允许读数据库块数限制
       6、PRIVATE_SGA:一个会话允许分配的最大SGA大小,使用K/M定义
          COMPOSITE_LIMIT:一个会话的资源成本限制,CPU_PER_SESSION, CONNECT_TIME, LOGICAL_READS_PER_SESSION, and PRIVATE_SGA
       
七、分配给一个用户:
       CREATE USER 名称。。。。。。
       PROFILE 名称
       ALTER USER 名称 PROFILE 名称

八、打开资源限制:
       1、RESOURCE_LIMT:资源文件中含有
       2、ALTER SYSTEM SET RESOURCE_LIMIT=TRUE;
       3、默认不打开

九、修改PROFIE的内容:
       1、ALTER PROFILE 名称参数      新值
       2、对于当前连接修改不生效。

       DROP一个PROFILE
       1、DROP PROFILE 名称
          删除一个新的尚未分配给用户的PROFILE,
       2、DROP PROFILE 名称 CASCADE
       3、注意事项
          A、一旦PROFILE被删除,用户被自动加载DEFAULT PROFILE
          B、对于当前连接无影响
          C、DEFAULT PROFILE不可以被删除

十、信息获取:
       1、DBA_USERS:
          用户名,PROFILE
       2、DBA_PROFILES:
          PROFILE及各种限制参数的值
          每个用户的限制:PROFILE(关键字段)

十一、PROFILE的口令机制限制
       1、限制内容
          A、限制连续多少次登录失败,用户被加锁
          B、限制口令的生命周期
          C、限制口令的使用间隔
       2、限制生效的前提:
          A、RESOURCE_LIMIT:=TRUE
          B、ORACLE\RDBMS\ADMIN\UTLPWDMG.SQL
       3、如何创建口令机制:
          CREATE PROFILE 名称
          SESSIONS_PER_USER
          .....
          password_life_time 30
          failed_log_attempts 3
          password_reuse_time 3
       4、参数的含义:
          A、FAILED_LOGIN_ATTEMPTS      :当连续登陆失败次数达到该参数指定值时,用户被加锁;
                                       经过DBA解锁(或PASSWORD_LOCK_TIME天)后可继续使用
          B、PASSWORD_LIFE_TIME         :口令的有效期(天),默认为UNLIMITED
          C、PASSWORD_LOCK_TIME         :帐户因FAILED_LOGIN_ATTEMPTS锁定时,加锁天数
          D、PASSWORD_GRACE_TIME        :口令修改的宽限期(天)
          E、PASSWORD_REUSE_TIME        :口令被修改后原有口令隔多少天被重新使用,默认为UNLIMITED
          F、PASSWORD_REUSE_MAX         :口令被修改后原有口令被修改多少次才允许被重新使用。
          G、PASSWORD_VERIFY_FUNCTION:口令效验函数

十二、错误信息及解决方法
ORA-02390 exceeded COMPOSITE_LIMIT, you are being logged off
Cause: The COMPOSITE_LIMIT for the profile is exceeded. That is, the weighted sum of the connection time, logical reads per session, CPU usage per session, and private SGA space used during the session exceeded the limit set by the COMPOSITE_LIMIT clause set in the user profile.
Action: If this happens often, ask the database administrator to raise the COMPOSITE_LIMIT of the user profile, or determine which resource is used the most and raise the limit on that resource.

ORA-02391 exceeded simultaneous SESSIONS_PER_USER limit
Cause: An attempt was made to exceed the maximum number of concurrent sessions allowed by the SESSIONS_PER_USER clause of the user profile.
Action: End one or more concurrent sessions or ask the database administrator to increase the SESSIONS_PER_USER limit of the user profile. For more information about SESSIONS_PER_USER and the database administrator's specific tasks of adjusting concurrent sessions, see the Oracle9i SQL Reference and the Oracle9i Database Administrator's Guide.

ORA-02392 exceeded session limit on CPU usage, you are being logged off
Cause: An attempt was made to exceed the maximum CPU usage allowed by the CPU_PER_SESSION clause of the user profile.
Action: If this happens often, ask the database administrator to increase the CPU_PER_SESSION limit of the user profile.

ORA-02393 exceeded call limit on CPU usage
Cause: An attempt was made to exceed the maximum CPU time for a call, a parse, execute, or fetch, allowed by the CPU_PER_CALL clause of the user profile.
Action: If this happens often, ask the database administrator to increase the CPU_PER_CALL limit of the user profile.

ORA-02394 exceeded session limit on IO usage, you are being logged off
Cause: An attempt was made to exceed the maximum I/O allowed by the LOGICAL_READS_PER_SESSION clause of the user profile.
Action: If this happens often, ask the database administrator to increase the LOGICAL_READS_PER_SESSION limit of the user profile.

ORA-02395 exceeded call limit on IO usage
Cause: An attempt was made to exceed the maximum I/O for a call, a parse, execute, or fetch, allowed by the LOGICAL_READS_PER_CALL clause of the user profile.
Action: If this happens often, ask the database administrator to increase the LOGICAL_READS_PER_CALL limit of the user profile.

ORA-02396 exceeded maximum idle time, please connect again
Cause: A user has exceeded the maximum time allowed to remain idle.
Action: The user must reconnect to the database.

ORA-02397 exceeded PRIVATE_SGA limit, you are being logged off
Cause: This error occurs only when using a multi-threaded server.
Action: Contact the database administrator to expand the PRIVATE_SGA limit.

转载于:https://www.cnblogs.com/Csharpblogs/archive/2011/08/18/2145075.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/amgo74207/article/details/101798325

智能推荐

webpack中eslint的使用(最新webpack版本)_webpack eslint_倒拔二叉树的博客-程序员秘密

在webpack5中eslint-loader已经弃用,能使用eslint-webpack-plugin在webpack5中eslint应该这样配置(亲测可用)下载插件 cnpm ieslint-webpack-plugin -D在webpack中配置:1 引入插件const ESLintPlugin = require('eslint-webpack-plugin');2 在plugins中配置new ESLintPlugin({ ext...

tambour android wear,LV推出旗下首款智能手表Tambour Horizon_还没长大的成年人的博客-程序员秘密

近日,著名奢侈品品牌路易·威登(LV)推出了旗下首款智能手表——Tambour Horizon。【PChome智能硬件频道资讯报道】近几年,许多传统手表和奢侈品品牌都推出了旗下的智能手表产品,尽管这一市场并未迎来迅速增长,但仍然获得了不少品牌的青睐。近日,著名奢侈品品牌路易·威登(LV)也推出了旗下首款智能手表——Tambour Horizon。Tambour Horizon在配置方面,这款Tam...

Android 3D游戏开发技术详解与典型案例_aaradio 开发3d游戏_hevenangel的博客-程序员秘密

下载地址《Android3D游戏开发技术详解与典型案例》主要以Android平台下3D游戏的开发为主题,并结合真实的案例向读者详细介绍了OpenGL ES的基础 知识及3D游戏程序开发的整个流程。全书分为两篇共22章,第一篇以简单易懂的实例为依托,详细介绍了 OpenGLES各方面的基础知识,第二篇则对7个真实案例的开发步骤进行了 详细的介绍,逐步向读者讲解Android3D游戏的真实开发过...

MySQL 主键和索引_mysql主键索引_西柚001的博客-程序员秘密

主键:关系数据可依赖于主键,主键在物理层面上主要有两个用途:唯一的标识一行因为主键可以唯一标识一行记录,所以可以确保执行数据更新、删除的时候不会出现张冠李戴的错误。作为一个可以被外键引用的对象一个表的主键通常可以作为另一个表的外键,主键通过与外键构成参照完成性约束,防止出现数据不一致。主键分为单列主键和复合主键:主键分为两种:单一主键:只用一列来唯一标识一行复合主键(联合主键): 当使用一列不能唯一表示一行的时候,就要采用多列唯一标识一行索引:对于MySQL的高效运行是很重

Visual Studio中快捷收缩展开代码段_vs收缩代码_Anonymous..的博客-程序员秘密

Visual Studio中快捷收缩展开代码段1. Ctrl-M-O 折叠所有方法2.Ctrl-M-P 展开所有方法并停止大纲显示(不可以再折叠了)3. Ctrl-M-M 折叠或展开当前方法4. Ctrl-M-L 展开所有方法

以下选项中不符合python语言变量命题规则的是_【单选题】以下选项中符合Python语言变量命名规则的是A. AI! B. Templist C. 3_1 D. *i..._寂零幽谷的博客-程序员秘密

参考答案如下单选“伐柯如何?匪斧不克。娶妻如何?匪媒不得。”出自下列哪一篇《诗经》作品( )下选项中_____it rain tomorrow, we would have to putoff the visit to the Yangpu Bridge符合_____first place in the woman's ten meter platform diving event, Xu...

随便推点

等号(=)伪指令、EQU伪指令、TEXTEQU伪指令之间的区别_MoonHSV的博客-程序员秘密

&nbsp;&nbsp;这三种伪指令都是用来定义汇编语言中的符号常量,下面对它们各自的特点进行讲解等号伪指令等号伪指令用于定义整数或整数表达式的符号常量,语法为:name = expression如果“expression”为整数表达式则需要将它括起来。如:COUNT = (10 * 10),等号伪指令定义的符号常量是可以被重定义的。EQU伪指令EQU伪指令可以定义非整数,语法为:...

OpenGIS框架(一)_opengis api_summer7310的博客-程序员秘密

6.1  Open GIS概述OpenGIS(OpenGeodata Interoperation Specification,OGIS-开放的地理数据互操作规范)由美国OGC(OpenGIS协会,Open Geospatial Consortium)提出。OGC是一个非赢利性组织,目的是促进采用新的技术和商业方式来提高地理信息处理的互操作性(Interoperability),它致力于消除地

Taro 采坑日常_aiyuanqin9624的博客-程序员秘密

组件事件传参只能在类作用域下的确切引用(this.handleXX || this.props.handleXX),或使用 bind。  组件中点击事件如下// 组件&lt;AtListItem key={i} isSwitch switchIsCheck={ true } onSwitchChange={ (e) =&gt; this....

cpc按点击计算怎么算_百度竞价CPC是如何计算的?_迷彩虎哥的博客-程序员秘密

展开全部CPC=总费用32313133353236313431303231363533e4b893e5b19e31333436316237/点击数;CPC即平均点击消耗,表示该广告在设定时间范围内的点击费用。CPC以每点击一次计费。这样的方法加上点击率限制可以加强作弊的难度,网民的每一次点击就会为广告主带来真实的流量或是潜在的消费者,这样的方法加上点击率限制可以加强作弊的难度,而且是宣传网站站点的...

取消jupyter notebook的密码_机器视觉-zjuer的博客-程序员秘密

取消jupyter notebook的密码1。终端输入:jupyter notebook --generate-config 会生成一个配置文件,成功后会显示文件路径(/Users/kyousugi/.jupyter/jupyter_notebook_config.py) 2。打开路径下的jupyter_notebook_config.py配置文件,找到jupyter_notebook_c...

推荐文章

热门文章

相关标签