网站首页 > 技术文章 正文
出处:墨天轮(https://www.modb.pro/db/6951 复制链接至浏览器,即可查看)
本文为原创文章,如有转载,请标明出处
今年以来,在某客户现场遇到了2次HPUX IA64平台11g及12c某些版本登陆速度缓慢的问题(包含本地及远程sqlplus/jdbc登陆都慢),经过大量测试分析,最终确定Oracle的某些PSU存在缺陷,导致在HPUX IA64平台上登陆时间大幅增加。
具体的版本如下:
1、11.2.0.4PSU20181016,本地sqlplus登陆300-400ms,同比11.2.0.4.8以下版本不到100ms,11.2.0.1则不到10ms;
2、12.2.0.1PSU20180417,本地sqlplus登陆500ms-1s,同比12.2.0.1PSU20180129以下版本大约100ms。
问题描述
对某厂商生产系统核心库深度巡检中,发现在类似的登陆频度下,11g和12c的登陆消耗差距巨大:
11.2.0.4.8版本库:
12.2.0.1PSU20180417:
可以看到12c登陆消耗的DB TIME高达48%,为11g的400倍,消耗时间为3423s,为11g的122倍!
问题分析
按前面的脚本分别测试sqlplus本地连接,11g小于30ms,12c为400ms,差距10倍以上。
11.2.0.4.8:
12.2.0.1PSU2018106:
登陆连接分析
通过在Oracle MOS上开SR,给出如下跟踪建议:
1. 创建针对dbatest用户的logon trigger,自动产生10046(测试完毕以后,请删除这个trigger< drop trigger sqlldr_logon >)。 CREATE OR REPLACE TRIGGER sqlldr_logon AFTER LOGON ON DBATEST.SCHEMA BEGIN execute immediate 'alter session set tracefile_identifier="sqlldr"'; execute immediate 'alter session set events ''10046 trace name context forever, level 12'''; END; /
2. 开启net trace
Action Plan ========== 1). Please add the following into client machine,sqlnet.ora TRACE_LEVEL_CLIENT=16 TRACE_DIRECTORY_CLIENT=/temp TRACE_TIMESTAMP_CLIENT=TRUE DIAG_ADR_ENABLED=off 2).In server sqlnet.ora,add the following items. ========== --Add to a srever SQLNET.ORA file ========== NAMES.DIRECTORY_PATH= (TNSNAMES) TRACE_TIMESTAMP_SERVER=TRUE DIAG_ADR_ENABLED=off TRACE_LEVEL_SERVER = 16 TRACE_TIMESTAMP_CLIENT = ON TRACE_DIRECTORY_SERVER = /temp/nettrace ========== 3). --Add the following in listener.ora DIAG_ADR_ENABLED_LISTENER = OFF 3. 服务器端测试 $rm /tmp/12.log $ /usr/local/bin/tusc -aepo /temp/12.log -T %H:%M:%S sqlplus dbatest/dbatest@ORADB
Client net trc可以看出08:04:11.899客户端发起连接:
但是Server端08:04:12.127才开始接收请求,延迟0.22ms,说明不少时间消耗在OS层面的处理上面:
分析tusc的文件,发现2个系统调用消耗绝大多数时间:
a.sigtimedwait调用超时36次,消耗391ms
b.登陆成功前read系统调用消耗437ms
而检查登陆正常的11g及12c版本库,发现没有sigtimedwait系统调用,read系统调用在10ms左右!
4.版本测试
尝试打上最新的PSU20190716,故障现象依旧。
随后SR也重现了此现象,认为可能是一个oracle缺陷,并准备开一个defect处理:
问题解决
从上述测试分析推断,Oracle某些PSU存在缺陷,导致在HPUX IA64平台上登陆时间大幅增加。
目前看12.2.0.1是从PSU20180417(27674384)开始的,11.2.0.4推测也可能是PSU20180417(27338049)
建议方案
1、对于数据库短连接较多的情况,由于此BUG存在,客观造成了连接资源的增加。建议协调应用尽可能改造成长连接,减少相关资源消耗;
2、持续跟进SR,督促Oracle公司给出补丁(11g已经不出补丁了,12c周期也可能比较长);
3、如果无法解决并且此问题影响生产,可以尝试卸载对应的PSU到20180417版本以下。
想了解更多关于数据库、云技术的内容吗?
快来关注“数据和云"、"云和恩墨"公众号及"云和恩墨"官方网站,我们期待大家一同学习与进步!
墨天轮小程序”DBASK“在线问答,随时解惑,欢迎了解和关注!
- 上一篇: oracle 管理员不用密码登录,错误解决
- 下一篇: 关于工作:oracle容器数据库启动方法
猜你喜欢
- 2025-07-17 ORACLE EBS怎么样?(oracle ebs前景)
- 2025-07-17 Oracle 数据库日常巡检之检查数据库安全性
- 2024-10-23 centos7安装oracle11在实战 centos7.9安装oracle11g
- 2024-10-23 Oracle EMCC13C学习-安装部署(2) oracle ibm emc
- 2024-10-23 navicat连接orcale数据库报ORA-28547错误的解决方案
- 2024-10-23 CentOS环境下安装Oracle数据库(四)——Oracle11g数据库管理
- 2024-10-23 Win10环境-甲骨文数据库Oracle10.2安装详解
- 2024-10-23 Oracle Code 2019 开发者大会嘉宾及日程揭晓!
- 2024-10-23 oracle 19c sec_case_sensitive_logon=false正确密码无法登录
- 2024-10-23 Linux 下Oracle 数据库重建的傻瓜式操作指南
你 发表评论:
欢迎- 615℃几个Oracle空值处理函数 oracle处理null值的函数
- 608℃Oracle分析函数之Lag和Lead()使用
- 595℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 592℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 587℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 580℃【数据统计分析】详解Oracle分组函数之CUBE
- 569℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 560℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- PageHelper - 最方便的 MyBatis 分页插件
- 面试二:pagehelper是怎么实现分页的,
- MyBatis如何实现分页查询?(mybatis-plus分页查询)
- SpringBoot 各种分页查询方式详解(全网最全)
- 如何在Linux上运行exe文件,怎么用linux运行windows软件
- 快速了解hive(快速了解美国50个州)
- Python 中的 pyodbc 库(pydbclib)
- Linux搭建Weblogic集群(linux weblogic部署项目步骤)
- 「DM专栏」DMDSC共享集群之部署(一)——共享存储配置
- 故障分析 | MySQL 派生表优化(mysql pipe)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)