【案例46】Oracle更换数据库密码后产生Library Cache Lock导致系统卡死

本文主要是介绍【案例46】Oracle更换数据库密码后产生Library Cache Lock导致系统卡死,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题现象

WAS环境,服务起不来,改成单机版后能登录,打不开节点。直接卡死。

问题分析

经过顾问反馈,在启动环境时,中间件卡住不动,怀疑数据源不通导致,于是使用checkDB脚本发现desgin数据源用户名密码不对。测试不通过。经过沟通,中午修改过数据库的密码。在sysconfig中修改了原数据源的相关密码未修改desgin数据源密码。经过沟通,顾问修改了oracle数据库的密码。

修改数据源的密码后再次测试数据源。发现测试通过,但是等待很久的时间才会返回结果。 

再次启动,发现WAS已经正常启动。无报错。

但是登录系统测试后发现,过一段时间后,系统卡顿严重。再等待的一段时间后直接白屏卡死。

再次使用checkDB脚本排查发现报了一堆监听的错误。

检查was的systemout日志也发现了大量的报错。

经过反馈,之前修改完密码后,有人重新建立过数据库监听,怀疑tnsnames.ora配置错误导致。重新配置了相关文件。 

重新启动了监听,发现过一段时间,又变的很卡。查看监听日志暂无异常。

 

于是生成了awr报告,发现有大量的Library Cache Lock的等待 。

并且查看了alert日志发现有大量的TNS超时操作来源于某服务器(非NC应用服务器)

经过排查发现此IP为文件服务器,文件服务器是一个独立的ncchome,怀疑是文件服务器的数据源密码没有修改。一直在连数据库。但交互的密码是错误的。查询相关资料后,怀疑是Oracle的新特性导致的。  

在 Oracle 11g 中,为了提升安全性,Oracle 引入了『密码延迟验证』的新特性。

这个特性的作用是,如果用户输入了错误的密码尝试登录,那么随着登录错误次数的增加,每次登录前验证的时间也会增加,以此减缓可能对于数据库重复的口令尝试攻击。

但是对于正常的系统,由于口令的更改,可能存在某些被遗漏的客户端,不断重复尝试,从而引起数据库内部长时间的 Library Cache Lock的等待,这种情形非常常见。

解决方案

--备份参数文件,防止数据库启动异常
--备份路径自己指定,下方Z盘为举例
create pfile='z:\app\orcl.ora' from spfile;--修改event
alter system set EVENT = '28401 TRACE NAME CONTEXT FOREVER, LEVEL 1' SCOPE = SPFILE;--关闭数据库
shutdown immediate--启动数据库
startup

重启完数据库后,重启整个WAS集群,再次访问系统,无卡顿。问题解决。 

这篇关于【案例46】Oracle更换数据库密码后产生Library Cache Lock导致系统卡死的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1090918

相关文章

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

oracle 11g导入\导出(expdp impdp)之导入过程

《oracle11g导入导出(expdpimpdp)之导入过程》导出需使用SEC.DMP格式,无分号;建立expdir目录(E:/exp)并确保存在;导入在cmd下执行,需sys用户权限;若需修... 目录准备文件导入(impdp)1、建立directory2、导入语句 3、更改密码总结上一个环节,我们讲了

MySQL8 密码强度评估与配置详解

《MySQL8密码强度评估与配置详解》MySQL8默认启用密码强度插件,实施MEDIUM策略(长度8、含数字/字母/特殊字符),支持动态调整与配置文件设置,推荐使用STRONG策略并定期更新密码以提... 目录一、mysql 8 密码强度评估机制1.核心插件:validate_password2.密码策略级

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

如何通过try-catch判断数据库唯一键字段是否重复

《如何通过try-catch判断数据库唯一键字段是否重复》在MyBatis+MySQL中,通过try-catch捕获唯一约束异常可避免重复数据查询,优点是减少数据库交互、提升并发安全,缺点是异常处理开... 目录1、原理2、怎么理解“异常走的是数据库错误路径,开销比普通逻辑分支稍高”?1. 普通逻辑分支 v

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp

Java 正则表达式的使用实战案例

《Java正则表达式的使用实战案例》本文详细介绍了Java正则表达式的使用方法,涵盖语法细节、核心类方法、高级特性及实战案例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、正则表达式语法详解1. 基础字符匹配2. 字符类([]定义)3. 量词(控制匹配次数)4. 边

Python Counter 函数使用案例

《PythonCounter函数使用案例》Counter是collections模块中的一个类,专门用于对可迭代对象中的元素进行计数,接下来通过本文给大家介绍PythonCounter函数使用案例... 目录一、Counter函数概述二、基本使用案例(一)列表元素计数(二)字符串字符计数(三)元组计数三、C