进一步对上一篇客户的环境进行排查,发现同步程序是以短连接的形式访问数据库,平均每秒70次的连接;通过在测试环境进行批量短连接测试,重现大量

select /*+ connect_by_filtering index(sysauth$ i_sysauth1) */ privilege#, bitand(nvl(option$, 0), 8), grantee#, level from sysauth$ connect by grantee#=prior privilege# and privilege#>0 start with grantee#=:1 and privilege#>0

的问题。
(一)
测试环境,并接入EasyDB数据库管控软件

sys@ORCL> select * from v$version;BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE    11.2.0.4.0      Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Productionsys@ORCL> show parameter auditNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest                      string      /u01/app/oracle/admin/orcl/adump
audit_sys_operations                 boolean     FALSE
audit_syslog_level                   string
audit_trail                          string      DBsys@ORCL> show parameter cursor_sharingNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
cursor_sharing                       string      EXACT

(二)
简单编写shell脚本,发起大量数据库连接

#more /home/oracle/connect.sh for i in {1..200000}
dofor j in {1..40}do  sh /home/oracle/conn.shdone
done#more /home/oracle/conn.sh
#只执行简单的查询操作,之后退出sqlplus baiyang/oracle@orcl << EOFselect * from v\$version;exit;EOF#发起多个job执行,加大并发,执行将近一个小时 nohup sh connect.sh > /dev/null 2>&1&

(三)
查看EasyDB监控信息,这时各项指标飙升,但是TPS=0,
QPS,逻辑读明显上升

Oracle CPU、DBTime明显上升

主机CPU飙升

基本上是软解析,和客户环境遇到的不同

开了DB审计,引起log file sync 等待事件

(四)
分析listener.log 文件,确认每秒发起的连接数

grep '26-DEC-2018'  listener.log | sed 's/\*.*SERVICE_NAME=/  /g;s/).*HOST=/ /g;s/).*$//g'   | awk  '{if(NF==4){print "insert into t_tab  values('\''"$1"'\'','\''"$2"'\'','\''"$3"'\'','\''"$4"'\'');"}}'   > connect.txt
# 入库
@/u01/app/oracle/diag/tnslsnr/172-16-8-141/listener/trace/connect.txt
# 查询如下


可以看到这段时间监听每秒都响应了大量的连接请求
(五)
分析AWR报告,看看会有什么变化

因为开了SQL审核,所以有入库的操作;
最后一条是我们执行的测试SQL;
其他则都是递归SQL,大量的递归SQL;
但是不存在硬解析,这个客户环境的现象不一致

(6)
通过测试,重新了数据库问题,并验证在未执行 set role 时,同样会导致;
客户应用程序存在大量短连接,这会导致数据库、服务器资源飙升,并且会导致监听无法响应更多请求;
因客户的程序已经找不到开发商,目前很难对应用程序进行排查;
cursor_sharing=FORCE,虽然会带来一些优势,但官方不建议将此作为长久的优化方式;
提醒客户更新业务架构,使用长连接,并且自主掌握核心代码。

Oracle 应用短连接导致连接风暴相关推荐

  1. oracle连接满报错日志,Oracle归档日志满了导致Oracle连接(ORA-00257)报错处理

    最近一段时间,有收到一台Oracle服务器的连接告警, 刚刚开始还以为是Oracle的监听被关闭导致,结果连上服务器看下Oracle的监听进程正常,自己连接一次发现有报ORA-00257错,又去监控系 ...

  2. grid赋予oracle磁盘权限,grid 与 Oracle 用户下 Oracle 程序权限不一致导致无法连接 ASM 问题...

    grid 与 Oracle 用户下 Oracle 程序权限不一致导致无法连接 ASM 问题 在 RAC 中, 启动数据库时遇到如下报错:Oracleinstance started. TotalSys ...

  3. Oracle RAC 环境下的连接管理(转) --- 防止原文连接失效

    崔华老师的文章!!! 这篇文章详细介绍了Oracle RAC环境下的连接管理,分别介绍了什么是 Connect Time Load Balancing.Runtime Connection Load ...

  4. Oracle RAC 环境下的连接管理

    转自 http://www.oracle.com/technetwork/cn/articles/database-performance/oracle-rac-connection-mgmt-165 ...

  5. MySQL性能优化知识:长连接、短连接、连接池

    当数据库服务器和客户端位于不同的主机时,就需要建立网络连接来进行通信.客户端必须使用数据库连接来发送命令和接收应答.数据.通过提供给客户端数据库的驱动指定连接字符串后,客户端就可以和数据库建立连接了. ...

  6. mysql半连接_mysql表的半连接,反连接导致的mysql性能优化剖析

    [导读] 关于Oracle的半连接,反连接,我一直认为这是一个能讲很长时间的话题,所以在我的新书<Oracle DBA工作笔记>中讲性能优化的时候,我花... 关于Oracle的半连接,反 ...

  7. asp oracle9i 链接oracle,解决使用ASP无法连接ORACLE 9i数据库的问题

    今天,在一台WIN2K SERVER 服务器上,通过ASP安装在本机的 Oracle9i 时,发现错误,根本无法连接上数据库.其错误描述如下: Microsoft OLE DB Provider fo ...

  8. MySQL之长连接、短连接、连接池(转载:http://www.ywnds.com/?p=9801)

    当数据库服务器和客户端位于不同的主机时,就需要建立网络连接来进行通信.客户端必须使用数据库连接来发送命令和接收应答.数据.通过提供给客户端数据库的驱动指定连接字符串后,客户端就可以和数据库建立连接了. ...

  9. sql 链接到oracle数据库,通过MSSQL连接服务器连接至Oracle数据库

    前言 有很多时候,我们需要MSSQL与Oracle进行跨库查询或数据交互.本篇随笔将阐述如何通过MSSQL的连接服务器连接至Oracle数据库,并且读取数据的示例. 具体步骤 首先需要到Oracle的 ...

最新文章

  1. HTML5 —— 视频/音频
  2. react ,ant Design UI中table组件合并单元格并展开详情的问题
  3. 使用Xpose突破安卓App禁止截屏限制
  4. 计算机社团嘉年华的游戏,社团嘉年华,游戏大乱斗!
  5. [css] 使用css将图片转换成黑白的效果
  6. beautifulsoup获取属性_Python爬虫常用模块:BeautifulSoup
  7. java图形界面重写坐标_重写自由软件和计算机图形的历史
  8. JavaScript 为何会成为最受欢迎的编程语言?
  9. Memcached 及 Redis 架构分析和比较
  10. codeblocks下载
  11. Unity给小鳄鱼洗澡2D流体水实现
  12. 一个C#版的多选题选项及判分设计方案
  13. Cond:条件变量源码解读
  14. html显示汉字音调,汉语拼音音调符号标法的规则
  15. ChatGPT 带火的「提示工程师」岗,不用写代码,也能获得年薪数百万?
  16. vue 实现图片放大缩小拖拽
  17. 内网穿透:什么是内网穿透,以及用什么软件
  18. 地理信息系统(GIS)系列——Portal for ArcGIS
  19. 生僻字用计算机怎么弹数字,抖音生僻字计算器乐谱完整版 抖音生僻字计算器数字简谱...
  20. 线性回归模型(最小二乘法模型)诊断--R语言

热门文章

  1. 绘制半圆_AI教程/绘制雪人插画
  2. 重磅 |《企业埋点体系搭建方法论及实践经验》白皮书上线
  3. 神策数据斩获大数据星河奖,首发用户行为分析标准
  4. 技术分享 | 个性化推荐系统商业化的五大要素
  5. ?为什么要学这个技术(有什么优秀的地方,可以解决哪些问题?
  6. IntelliJ IDEA 添加项目后编译显示包不存在的解决方案
  7. node简单实现一个更改头像功能
  8. 澳大利亚量子计算机获突破 首次实现简化逻辑门
  9. 破解前端面试系列(3):如何搞定纸上代码环节?
  10. 不区分大小写的内容比较