【背景】今天中午的时候用户反馈需要修改数据库的和应用的连接密码,修改密码这种小事情,本以为不会不会出现问题的。没想到午休到一半的时候就接到用户的电话,系统连接不进去了。

【环境】

操作系统 linux6.3_64

数据库版本11.2.0.3

【症状】用户修改密码之后通过应用连接一直连接不上,我登录主机通过sqlplus连接的时候,也是一直处于hang住状态,但是sys、system用户进行连接的时候速度就很快;

[Oracle@ekpdbtest ~]$ sqlplus / as sysdba  (数据库可以正常登录)

SQL*Plus: Release 11.2.0.1.0 Production on Fri Apr 10 17:37:42 2015

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

SQL> conn sale/oracle (HANG住了)

【备注】操作系统的CPU、内存、网络、磁盘空间都没有发现异常;

1、查看等待事件

通过查看awr报告,library cache lock等待严重

wait  % DB

Event                                Waits    Time(s)  (ms)  time Wait Class

------------------------------ ------------ ----------- ------ ------ ----------

library cache lock                      866    145,056 2.E+05  92.0 Concurrenc

row cache lock                          195      9,155  46948    5.8 Concurrenc

2、恢复用户到修改前的密码

SQL> conn sale/sale  (可以登录)

【问题原因】经过一番查找发现该问题属于ORACLE 11的一个新特性,如果一个用户使用不正确的密码尝试登录数据库,那么随着登录失败次数的增加,每次登录验证前延迟等待的时间也会增加。这个特性主要用于避免一些程序采用错误的密码进行尝试性的登录;所有这一切都已经说明,当前有一个或多个中间件服务器在使用错误的密码连接数据库,由于密码延迟验数据证的策略,导致所有后续的连接都被HANG住。

用户的环境是怎么触发这个特性的了?

用户的环境中,连接数据库不仅有应用层,还有一些【地磅系统】,这些系统直接连接数据库,所以虽然更改了应用的密码,但是地磅系统由于数量众多且修改麻烦,所以应用的连接密码修改后,地磅系统的连接密码并没有改,所以一直在用错误的密码进行登录,而触发了【密码延迟验证导致的系统HANG住】

【解决方法】这个性特性可以提供系统的安全性,但同时也引入了bug,Oracle最强大之处就在于几乎所有的功能和特性都有对应的开关,通过设置EVENTS 28401可以屏蔽密码延迟验证,重启数据库后解决。

SQL> ALTER SYSTEM SET EVENT = ‘28401 TRACE NAME CONTEXT FOREVER, LEVEL 1’ SCOPE = SPFILE;

【总结】暂时性的关闭这个特性,然后再逐步修改每个系统的密码,又化解了一次危机;

更改oracle背景,Oracle 11gR2修改用户后导致系统HANG住相关推荐

  1. libc.so.6被删后导致系统无法使用的原因及解决方法

    libc.so.6被删后导致系统无法使用的原因及解决方法 参考文章: (1)libc.so.6被删后导致系统无法使用的原因及解决方法 (2)https://www.cnblogs.com/weijin ...

  2. thttpd服务器修改时间后导致CPU占用率过高

    经过代码分析发现是thttpd服务的中timers.c文件中tmr_run函数的实现有些问题. 第一种情况当系统时间修改从小变大的过程中(例如:1971年变成2019年)且时间跨度够大则会导致该函数会 ...

  3. oracle 触发器(根据条件修改插入后的某个字段值)

    背景: 有一类轨迹数据来源于第三方接口,但接口推送的数据差一个轨迹描述字段(即对该条活动轨迹数据的各个字段拼接一下作为描述),叫双方研发重新改接口太浪费时间,所以想到利用触发器来解决,之前没写过触发器 ...

  4. Deepin系统卸载alsa-base后导致系统无法启动

    背景 笔记本上安装了Deepin 20 Beta系统,但是发现播放音乐视频都不出声.网上一搜说什么重新安装声卡驱动. 执行了这么一条命令: sudo apt-get --purge remove al ...

  5. 修改注册表导致系统进不去,安全模式也进不去

    一天一不小把注册表下面的SAM和security的两个项删除了,重启后系统进不去进不了桌面了,安全模式也进不去, 于是尝试了以下解决办法: 1.用win7 系统U盘来修复,结果仍然不行 2.使用注册表 ...

  6. linux修改密码最短生存时间,Linux基础命令---修改用户密码

    passwd 更改用户密码,超级用户可以修改所有用户密码,普通用户只能修改自己的密码.这个任务是通过调用LinuxPAM和LibuserAPI来完成的.本质上,它使用LinuxPAM将自己初始化为一个 ...

  7. 解决mysql不能修改密码_如何解决mysql修改密码后不能成功登录_数据库_mysql修改密码_课课家...

    今天给大家解决下MySQL修改密码后导致不能登录的问题,一般我们都知道mysql4.1.1版本后修改了用户密码的格式,一旦修改了密码,4.1.1以前的版本上是不能进行成功登录的,那么对于这些问题该如何 ...

  8. 警惕黑客使用Lion系统漏洞破解和修改用户登陆密码

    转载自:http://www.techolics.com/apple/20110922_72.html 9月19日,星期一,名为Patrick Dunstan的黑客公布了如何利用苹果最新Lion操作系 ...

  9. NVIDIA Jetson TK1学习与开发(十一):TK1新装ubuntu如何修改用户密码和root密码

    NVIDIA Jetson TK1学习与开发(十一):TK1新装ubuntu如何修改用户密码和root密码 1.修改用户密码 进入系统打开一个新终端 $passwd ubuntu $输入默认密码ubu ...

最新文章

  1. python3数据库框架_python3之pymysql
  2. 儿童手工制作日历_怎么做手工儿童卡通绵羊日程管理小日历
  3. sigaction 函数,sigemptyset()函数,fcntl()函数,isatty()函数
  4. 正则验证IP、掩码、端口
  5. 二手车没有车险能过户吗?
  6. IOS使用pods初次加载出现Pods-resources.sh: Permission denied错误的解决方案
  7. [bzoj4763]雪辉[bzoj4812][Ynoi2017]由乃打扑克
  8. 练习--LINUX进程间通信之有名管理FIFO
  9. 单目标决策---决策的分类
  10. 使用Gson解析json
  11. Js实现炫酷仿抖罗盘时钟------Sestid
  12. XTDRONE:ego_planner三维运动规划
  13. 斯皮尔 皮尔森 肯德尔_pearson(皮尔逊), kendall(肯德尔)和spearman(斯伯曼斯皮尔曼)三种相关分析方法...
  14. python验证身份证最后一位数字代表什么_身份证最后一位不是数字而是X,代表什么含义?涨知识了...
  15. 2021年安全员-C证(陕西省)考试总结及安全员-C证(陕西省)模拟考试系统
  16. MFC Ribbon模式下 菜单promt鼠标滑过时候的提示是需要在属性的promt前面加上\n
  17. 2018 CTCS第五届“智能出行”中国企业差旅合规高峰论坛即将开幕
  18. 一键生成Springboot Vue项目! 【私活神器】
  19. kd树实现搜索的过程
  20. 【泛函分析】Riemann-Stieltjes 积分

热门文章

  1. For in + 定时器
  2. BZOJ1729: [Usaco2005 dec]Cow Patterns 牛的模式匹配
  3. Nodejs系列课程,从入门到进阶帮你打通全栈
  4. memcached的缺点
  5. Nginx Parsing HTTP Package、header/post/files/args Sourcecode Analysis
  6. 微信第三方平台定时接收component_verify_ticket
  7. ViewSwitcher用法浅析
  8. 7.1.8860.142
  9. spring security3(转)
  10. Javascript 的函数式对象(三)利用闭包模拟类的静态变量和方法