【转载】Oracle 概要文件IDLE_TIME限制用户最大空闲连接时间
会话的状态:
1.active 处于此状态的会话,表示正在执行,处于活动状态。
2.killed 处于此状态的会话,表示出现了错误,正在回滚,当然,也是占用系统资源的。还有一点就是,killed的状态一般会持续较长时间,而且用windows下的工具pl/sql developer来kill掉,是不管用的,要用命令:alter system kill session 'sid,serial#' ;
3.inactive 处于此状态的会话表示不是正在执行的,比如select语句已经完成。我一开始以为,只要是inactive状态的会话,就是该杀,为什么不释放呢。其实,inactive对数据库本身没有什么影响,但是如果程序没有及时commit,那么就会造成占用过多会话。解决inactive的方法最好的就是在oracle中直接设置超时时间。
下面是解决的方法:
Oracle会话达到一定连接时间自动断开的方法
IDLE_TIME:限制每个会话所允许的最长连续空闲时间,超过这个时间会话将自动断开。参数值是一个整数,单位是分钟。
1.Oracle数据库当中至少会有一个Profie文件,它可以限制口令和资源。建立oracle数据库时候,oracle会自动建立命名为default的profile,初始化的default有默认值,下面可以查看默认的profile的资源和口令限制的详细信息。
SQL> select PROFILE,RESOURCE_NAME,LIMIT from dba_profiles where PROFILE='DEFAULT';
PROFILE RESOURCE_NAME LIMIT
-------------------- -------------------- --------------------
DEFAULT COMPOSITE_LIMIT UNLIMITED
DEFAULT SESSIONS_PER_USER UNLIMITED
DEFAULT CPU_PER_SESSION UNLIMITED
DEFAULT CPU_PER_CALL UNLIMITED
DEFAULT LOGICAL_READS_PER_SESSION UNLIMITED
DEFAULT LOGICAL_READS_PER_CALL UNLIMITED
DEFAULT IDLE_TIME UNLIMITED
这个是空闲时间用来限制用户连接时间
PROFILE RESOURCE_NAME LIMIT
-------------------- -------------------- --------------------
DEFAULT CONNECT_TIME UNLIMITED
DEFAULT PRIVATE_SGA UNLIMITED
DEFAULT FAILED_LOGIN_ATTEMPTS 10
DEFAULT PASSWORD_LIFE_TIME 180
DEFAULT PASSWORD_REUSE_TIME UNLIMITED
DEFAULT PASSWORD_REUSE_MAX UNLIMITED
DEFAULT PASSWORD_VERIFY_FUNC NULL
PROFILE RESOURCE_NAME LIMIT
-------------------- -------------------- --------------------
DEFAULT PASSWORD_LOCK_TIME 1
DEFAULT PASSWORD_GRACE_TIME 7
16 rows selected.
查看某个用户的使用的profile文件,这个通过dba_users来查看。
SQL> select username,profile from dba_users where username='SYSTEM';
USERNAME PROFILE
------------------------------------------------------------ --------------------
SYSTEM DEFAULT
2.Oracle的系统参数RESOURCE_LIMIT是一个用来监控用户对于数据库资源使用的参数,当值为true的时候即为启用,否则禁用(默认是禁用的)。该参数结合profile来控制多种资源的使用,如CPU_PER_SESSION,CONNECT_TIME等等,从而达到节省资源来实现高效性能。通过下面语句可以在RAC当中查看系统参数RESOURCE_LIMIT是否开启。
SQL> select name,value from gv$parameter where name='resource_limit';
NAME VALUE
resource_limit FALSE
3.首先开启这个参数
SQL> alter system set resource_limit=true;
System altered.
SQL> select name,value from gv$parameter where name='resource_limit';
NAME VALUE
resource_limit TRUE
4.修改profile的idle_time,单位为分钟。设置为一小时60分钟。
SQL> alter profile default limit idle_time 60;
Profile altered.
之后再查看一下
SQL> select PROFILE,RESOURCE_NAME,LIMIT from dba_profiles where RESOURCE_NAME='IDLE_TIME';
PROFILE RESOURCE_NAME LIMIT
-------------------- -------------------- --------------------
DEFAULT IDLE_TIME 60
说明:
A:参数RESOURCE_LIMIT=TRUE用于启用数据库资源限制;
B:PROFILE用于实现资源的配置,创建或者修改已存在的PROFILE来调整各个具体资源的配置
C:一旦被限制的用户超出所设定的阀值将收到资源配置相关的错误提示
D:被限制资源的状态变为sniped
E:被限制资源的session对应的server process并没有释放,需要结合sqlnet.expire_time来释放。
通过idle_time限制session idle 时间。session idle超过设置时间,状态为sniped (v$session).,然而OS下的process并不会释放,当session(user process) 再次与server process 通讯,将关闭相应的server process.
5.使用SQLNET__EXPIRE_TIME清除僵死的连接:
数据库连接的客户端异常断开后,其占有的资源并没有被释放,从v$session数视图中依旧可以看到对应的session处于inactive状态,且对应的服务器进程也没有释放,导致资源长时间被占有。SQLNET.EXPIRE_TIME专门用于清理那些异常断开的情况:通过设定参数为非0值(单位为分钟)来发送探测包以检查客户端异常断开。一旦探测包找到了异常连接将返回错误,清除对应的server process。
配置SQLNET.EXPIRE_TIME:对于SQLNET.EXPIRE_TIME的配置,需要修改sqlnet.ora,其路径为$ORACLE_HOME/network/admin下面。然后添加SQLNET.EXPIRE_TIME选项,之后重启监听。
6.总结:
A:INACTIVE SESSION 是用户建立连接之后,尚未执行任何操作或操作已经完成但没有断开,等同于与处于idle状态,在v$session视图呈现的是INACTIVE状态。
B:对于使用resource_limit以及profile配置后用户session超出idle_time的情形,在v$session视图呈现sniped状态
C:当在sqlnet.ora配置文件中设置SQLNET.EXPIRE_TIME参数为非领值时,僵死连接在EXPIRE_TIME制定时间后被清除(设定24小时后将INACTIVE状态的session置为SNIPED状态,之后再半小时后清除僵死连接,理论上是行得通的)
D:设定SQLNET.EXPIRE_TIME为非零值之后,系统需要产生额外的开销以及带来网络性能的下降。
E:对于需要及时释放OS以及DB资源的情形,Oracle建议使用resource_limit以及profile限制的用户连接同时并设定SQLNET.EXPIRE_TIME为非零值。
【原文】https://blog.csdn.net/qq_34556414/article/details/81533712
转载于:https://www.cnblogs.com/freess/p/10312540.html
【转载】Oracle 概要文件IDLE_TIME限制用户最大空闲连接时间相关推荐
- oracle 概要文件不存在,oracle 概要文件 - kecy1217的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
概要文件用于限制由用户使用的系统和数据库资源,并可以对口令进行管理.如果在创建用户时没有指定概要文件, 将使用默认的概要文件. 1.使用create profile命令创建概要文件 语法格式如下: c ...
- Oracle——概要文件DBA_PROFILES解析
一.关于Oracle之DBA_PROFILES Profiles文件是口令和资源限制的配置集合,包括CPU的时间.I/O的使用.空闲时间.连接时间.并发会话数量.密码策略等对于资源的使用Profile ...
- oracle查询用户的概要文件,Oracle用户、概要文件、权限及角色实例
用户.概要文件.权限及角色实例 1.创建角色change SQL> create role change identified by zhubajie; Role created SQL> ...
- Oracle——17概要文件
2019独角兽企业重金招聘Python工程师标准>>> 概要文件用于限制由用户使用的系统和数据库资源,并可以对口令进行管理.如果在创建用户时没有指定概要文件, 将使用默认的概要文件. ...
- Oracle入门(十)之概要文件
一.概要文件作用 (1)功能 控制用户对系统和数据库资源的使用,保证系统正常运行,防止用户消耗大量资源造成的系统性能下降. (2)方法 设置预定义资源参数. 这些参数包含在概要文件中,如果没有为用 ...
- oracle导入多个dmp文件到一个用户,Oracle dmp文件导入(还原)到不同的表空间和不同的用户下...
------------------------------------- 从生产环境拷贝一个dmp备份文件,在另外一台电脑上搭建测试环境,用imp命令导入dmp文件时提示如下错误: 问题描述: IM ...
- oracle 日志注册,Oracle日常维护中管理用户以及重做日志文件的方法
一.管理用户和安全性在db中各种对象以 用户(方案) 的方式组织管理 select distinct object_type from dba_objects; 模式对象,schema ----> ...
- 【Oracle】创建概要文件
任务1:创建profile 创建概要文件my_profile 1)密码复杂性要求:启用: 2)密码长度最小值:8位: 3)密码错误输入三次,锁定账户,2分钟后自动解锁 任务2: 1)修改siebel用 ...
- oracle 数据泵impdp导入dmp文件时更改用户及表空间方法
oracle impdp导入dmp文件时更改用户及表空间方法 impdp默认导入expdp的dmp文件时,是需要建立相同名称的表空间及临时表空间的:而且会自动创建相同名称的用户名. 但是有时候我们想更 ...
最新文章
- pix4d计算机配置速度,ContextCapture、Pix4D电脑需求配置
- 适用于芯片验证工程师的atom插件列表
- python抢票_50 个加速包都抢不到车票,还不如这个 Python 抢票神器!
- 基础才是重中之重~再说面向接口的编程
- 【POJ - 2398】Toy Storage (计算几何,二分找位置,叉积,点和直线的位置关系)
- php 统计目录大小,PHP 统计目录大小
- json_encode转义中文问题
- 【图像处理】PS曲线工具matlab实现 交互自定义灰度映射(Gray Level Transformation)附代码链接
- 如何修改 / 校正Linux系统时间
- 工作记录 --01 验证证件号合法性!
- PS常用案例步骤详解,自学 Photoshop 2022 Mac版——笔记 3实战PS做练习题
- JDK19都出来了~是时候梳理清楚JDK的各个版本的特性了【JDK11特性讲解】
- Python练习小程序 定时关机小脚本
- 深入浅出系列之——并查集详解【武侠版】【简单有趣】
- 禁用开启笔记本自带键盘
- uniapp踩坑(五):监听手机物理返回键和滑动返回事件
- Jquery----下拉菜单(利用滑动效果)
- 网络实验之EtherChannel技术实践
- 硬盘分区-从其他盘划分容量到c盘
- 声学——声源定位阅读笔记
热门文章
- 重启服务器后mysql表损坏 Incorrect key file for table ‘.\axxxx.MYI‘; try to repair it“,“tourl“:““,.....
- 一个艰难的决定 [抨击不正当竞争]
- 51单片机学习笔记-10IIC总线
- python拼图游戏
- 金九银十的你准备好了吗?Python 100道基础面试题先收藏!(附答案)
- java 爬虫学习 httpclient使用
- spring的aop
- 海南英语111——Part 10: Gratitude 感谢
- 2014年暑假学习笔记
- oracle addm报告分析,Oracle addm