【案例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

相关文章

数据库面试必备之MySQL中的乐观锁与悲观锁

《数据库面试必备之MySQL中的乐观锁与悲观锁》:本文主要介绍数据库面试必备之MySQL中乐观锁与悲观锁的相关资料,乐观锁适用于读多写少的场景,通过版本号检查避免冲突,而悲观锁适用于写多读少且对数... 目录一、引言二、乐观锁(一)原理(二)应用场景(三)示例代码三、悲观锁(一)原理(二)应用场景(三)示例

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

MySQL高级查询之JOIN、子查询、窗口函数实际案例

《MySQL高级查询之JOIN、子查询、窗口函数实际案例》:本文主要介绍MySQL高级查询之JOIN、子查询、窗口函数实际案例的相关资料,JOIN用于多表关联查询,子查询用于数据筛选和过滤,窗口函... 目录前言1. JOIN(连接查询)1.1 内连接(INNER JOIN)1.2 左连接(LEFT JOI

Python从零打造高安全密码管理器

《Python从零打造高安全密码管理器》在数字化时代,每人平均需要管理近百个账号密码,本文将带大家深入剖析一个基于Python的高安全性密码管理器实现方案,感兴趣的小伙伴可以参考一下... 目录一、前言:为什么我们需要专属密码管理器二、系统架构设计2.1 安全加密体系2.2 密码强度策略三、核心功能实现详解

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

Win11安装PostgreSQL数据库的两种方式详细步骤

《Win11安装PostgreSQL数据库的两种方式详细步骤》PostgreSQL是备受业界青睐的关系型数据库,尤其是在地理空间和移动领域,:本文主要介绍Win11安装PostgreSQL数据库的... 目录一、exe文件安装 (推荐)下载安装包1. 选择操作系统2. 跳转到EDB(PostgreSQL 的

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态