问题:
系统卡顿,检查数据库发现很多无效连接,因为是两个节点提供服务,一开始只有第一个节点故障,重启第一个节点后节点正常,但另外一个节点也故障了。
解决思路:
1、检查数据库连接
--查看资源限制 set line 1000 set pagesize 1000 col RESOURCE_NAME for a50 col INITIAL_ALLOCATION for a30 col LIMIT_VALUE for a60 select * from v$resource_limit; --查看无用会话 select count(*) from v$session where status='INACTIVE'; --查询未释放连接的sql select object_name,machine,s.sid,s.serial# from v$locked_object l,dba_objects o ,v$session s where l.object_id = o.object_id and l.session_id=s.sid;
2、修改sqlnet.ora文件,新增expire_time=x(单位是分钟)
我的sqlnet.ora位置在grid用户下的$ORACLE_HOME/network/admin下
–设置无用连接自动清理,间隔为10分钟,自动清理
ps:IDLE_TIME:限制每个会话所允许的最长连续空闲时间,超过这个时间会话将自动断开。参数值是一个整数,单位是分钟。
3、重启数据库后
观察一天后没有类似情况发生。
这里主要介绍IDLE_TIME参数的含义,当然在profile中做控制也行,这个就看大家选择了。后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~