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

相关文章

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

MySQL数据库中ENUM的用法是什么详解

《MySQL数据库中ENUM的用法是什么详解》ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,下面:本文主要介绍MySQL数据库中ENUM的用法是什么的相关资料,文中通过代码... 目录mysql 中 ENUM 的用法一、ENUM 的定义与语法二、ENUM 的特点三、ENUM 的用法1

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

Spring Security中用户名和密码的验证完整流程

《SpringSecurity中用户名和密码的验证完整流程》本文给大家介绍SpringSecurity中用户名和密码的验证完整流程,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 首先创建了一个UsernamePasswordAuthenticationTChina编程oken对象,这是S

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

MySQL追踪数据库表更新操作来源的全面指南

《MySQL追踪数据库表更新操作来源的全面指南》本文将以一个具体问题为例,如何监测哪个IP来源对数据库表statistics_test进行了UPDATE操作,文内探讨了多种方法,并提供了详细的代码... 目录引言1. 为什么需要监控数据库更新操作2. 方法1:启用数据库审计日志(1)mysql/mariad