最近在使用Oracle的过程中,出现了数据库连接数满的情况,导致程序及数据库连接工具连接不上。主要从两个方面来考虑这件事,从程序方面来看:

1.进行数据库连接操作后未释放连接;

2.若使用了数据库连接池,则考虑连接池的超时设置。

从数据库本身来看:

1.可以增加数据库的最大连接数;

2.可以定时清理数据库中INACTIVE的会话。

查看Oracle连接数:

select b.MACHINE, b.PROGRAM , count(*) from v$process a, v$session b where a.ADDR = b.PADDR and b.USERNAME is not null group by b.MACHINE , b.PROGRAM order by count(*) desc;

对于增加最大连接数的资料很多,文末也会推荐一个链接,定时清理INACTIVE会话需要创建一个存储过程找出超过2小时(根据需求设定)的会话,然后断开会话,具体如下

CREATE OR REPLACE PROCEDURE DB_KILL_IDLE_CLIENTS AUTHID DEFINER AS

job_no number;

num_of_kills number := 0;

BEGIN

FOR REC IN (SELECT SID, SERIAL#, INST_ID, MODULE, STATUS

FROM gv$session S

WHERE S.USERNAME IS NOT NULL

AND S.LAST_CALL_ET >= 2 * 60 * 60

AND S.STATUS = 'INACTIVE'

ORDER BY INST_ID ASC) LOOP

DBMS_OUTPUT.PUT('LOCAL SID ' || rec.sid || '(' || rec.module || ')');

execute immediate 'alter system disconnect session ''' || rec.sid || ', ' ||

rec.serial# || '''immediate';

DBMS_OUTPUT.PUT_LINE('. killed locally ' || job_no);

num_of_kills := num_of_kills + 1;

END LOOP;

DBMS_OUTPUT.PUT_LINE('Number of killed system sessions: ' ||

num_of_kills);

END DB_KILL_IDLE_CLIENTS;

创建定时任务执行这个存储过程:

begin

sys.dbms_job.submit(job => :job,

what => 'SYS.DB_KILL_IDLE_CLIENTS;',

next_date => to_date('25-05-2018 17:00:00',

'dd-mm-yyyy hh24:mi:ss'),

interval => 'TRUNC(sysdate,''hh'') + 1/(24)');

commit;

end;

注意以sys角色登录操作。

以下是参考的资料:

1.增加连接数:https://blog.csdn.net/lele2426/article/details/4978283

2.清理会话:https://www.cnblogs.com/kerrycode/p/3636992.html

3.创建定时任务:https://www.cnblogs.com/yx007/p/6519544.html

oracle数据库连接满了,ORACLE数据库连接数满的分析及优化相关推荐

  1. oracle服务器的操作系统,Oracle Linux 操作系统及数据库的时区机制分析

    Oracle Linux 操作系统及数据库的时区机制分析 1. /etc/localtime 这个文件记录的是系统的时区,缺省的数据库由此获得时区信息 这个文件是二进制文件,修改该文件的方法是拷贝/u ...

  2. oracle数据库连接拒绝,Oracle 数据库连接失败问题

    Oracle 数据库连接失败问题 Oracle 数据库连接失败问题 为什么80%的码农都做不了架构师?>>> 环境上安装的是oracle11g,其实oracle的安装是比较容易的,w ...

  3. oracle数据库连接不稳定,Oracle数据库自连接查询的缺点及解决方法

    问题:我们在Oracle数据库中,如果需求要查询出 EMP 表中的所有员工及员工对应的领导时,就需要用到自连接查询: 查询语句如下:select e.empno,e.ename,e.mgr from ...

  4. oracle数据库连接加密,oracle 数据库加加密。

    通过oracle的加密技术.可以对数据库内部用户无影响外. 又可以让那些能查看oracle数据库文件的人,无法取得相应表的数据. [@more@] 过程: 设置加密密钥. SQL> alter ...

  5. oracle数据库连接时报12514_Oracle 数据库 SQLPlus连接正常、PLSQL连接报错 ORA-12514、TNSPING正常...

    如题: 已开启的服务有(实例名 kaiser )OracleDBConsolekaiser OracleOraDb11g_home1TNSListener OracleServiceKAISER TN ...

  6. 数据太大导致oracle数据库连接关闭,ORACLE异常关闭后导致数据库报错无法连接问题解决办法-Oracle...

    1.首先kill掉所有oracle相关的进程 [oracle@oracle11g db_1]$ps -ef|grep $ORACLE_SID [oracle@oracle11g db_1]$kill ...

  7. oracle archivelog满了,Oracle archivelog占用100%如何处理?

    Oracle archivelog占用100%如何处理? 大家好我现在遇到了这样一个问题,我这里有个oracle11g的数据库,是一个通过shareplex同步的目标库 前段时间疏于管理,忘了查看目标 ...

  8. oracle数据库连接违反,Oracle 数据库连接的一些坑

    问题: ORA-12504:TNS:监听程序在CONNECT_DATA中未获得SERVICE_NAME ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求服务 解决办法: 1 权限 ...

  9. oracle数据库连接自动关闭,oracle 自动关闭 数据库连接

    数据库启动后过一会自动断开连接(大概10分钟) 方法一.直接修改资源配置文件 分三个步骤在sqlplus环境下完成. 第一步,查询资源文件,找到CONNECT_TIME所在的profile名. sel ...

最新文章

  1. 给DataGrid添加自动增长的序列号
  2. webform(八)——LinQ简单增、删、改、查
  3. android日常开发60条经验
  4. java分布式对象(RMI+部署使用RMI的程序)
  5. 《网站性能监测与优化》一2.4 软件服务应用网站
  6. 联想投资服务器5g芯片,从5G投票到要没必要做芯片,联想到了最危险的时候
  7. 第6 章 面向对象的程序设计
  8. pc 页面在移动端怎么获取放大倍数、_逆冬:移动端排名应该怎么做?两种匹配移动端实战排名干货分享!...
  9. iOS 上传苹果商店失败记录
  10. 物欲横流的社会中,有没有那么一首诗、一首歌、一句话、一个词....不经意间勾起了你心中无限的回忆,甚至心都跟着微微颤抖了一下
  11. Halcon 算子 Orientation_region
  12. 移动开发技术【安卓】——Android_Studio【Part 1】
  13. cmd指令ie打开html文件,命令行调用 IE 浏览器打开指定网址
  14. 复习IO流复制文件时,文件损坏并且文件变得超大(FileInputStream和FileOutputStream)数组复制
  15. 磁滞回线如何用计算机画图,利用Origin8.5软件简化磁滞回线数据处理
  16. 计算机网络系列笔记(六) - 物理层
  17. 6、Spring Boot:自定义Servlet Filters
  18. 卡巴斯基:一年内手机恶意软件受害者数量增3倍
  19. Windows和虚拟机的Ubuntu不能进行复制粘贴
  20. 京成电铁:Yotsugi站呈献别具一格的《足球小将》装饰

热门文章

  1. vb中picturebox透明时看到下面的picturebox中图片
  2. IDEA中Spring Boot项目报错:There was an unexpected error (type=Not Found, status=404)
  3. 个人pkm软件 pim软件_个人申请软件著作权需要走哪些流程
  4. jlabel字怎么变化_疫情在家烦躁不如学习怎样练好字吧
  5. python数据科学实践 常象宇_Python数据科学实践
  6. ll微信2下载安装_【兰苑文学】:陈振 ll黄金槐
  7. 计算机x线影像ppt,计算机X线摄影ppt课件
  8. 腾讯视频如何设置画面对比度方面的内容
  9. JDK线程池CompletionService的使用
  10. syslog发送日志而docker容器接收不到的问题