当前位置:  数据库>oracle

Oracle 11gR2修改用户后导致系统HANG住

    来源: 互联网  发布时间:2017-06-16

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

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

【环境】

  • 操作系统 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中fdisk导致的ASM磁盘数据丢失的解决方法
  • AS3安装Oracle 9.2.0前,打补丁出错,导致系统无法引导.大侠们帮忙
  • Linux下Oracle RAC一个节点宕机导致共享存储无法挂载的故障排除
  • Oracle读一致性导致的问题
  • Oracle用户密码含有特殊字符导致无法登陆解决方法
  • Oracle 数据库针对表主键列并发导致行级锁简单演示
  • Oracle数据字典表Truncate掉导致数据库不可用及对策
  • 修改oracle用户主目录
  • 修改oracle用户的.bash_profile之后无法正常登陆
  • 修改Oracle默认用户密码有效期时间
  • Linux下修改Oracle用户密码
  • 查询与修改Oracle字符集
  • ORACLE 修改表结构 之ALTER CONSTAINTS的使用
  • 计算机名称修改后Oracle不能正常启动问题分析及解决
  • Oracle中在pl/sql developer修改表的2种方法
  • oracle修改scott密码与解锁的方法详解
  • oracle中修改表名的几种方式 iis7站长之家
  • Linux操作系统下Oracle数据库多实例启动方式及修改内存
  • Oracle如何修改系统默认时间格式
  • oracle中修改表名的几种方式
  • 查看修改Oracle10G归档日志空间的限制
  • 查看及修改Oracle编码格式方法
  • Oracle 11G密码180天过期后的修改方法
  • ORACLE 10G修改字符编码没有超字符集的限制
  • 查看和修改Oracle服务器端字符集
  • 有关结果数据集的修改-java和ORACLE数据库
  • Oracle字符集修改查看方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • oracle创建删除用户示例分享(oracle删除用户命令及授权)
  • linux6.0下安装oracle11g, 新建用户后,在用户目录下为什么没有.bash_profile文件生成? 求教高手。谢谢!
  • Oracle一个用户如何访问其它用户的表应用指南
  • oracle用户口令丢了
  • linux下如何查看是什么用户安装的oracle
  • oracle+jsp 多用户查询系统讨论:
  • ORACLE 中修改用户密码的方法
  • linux中定时任务 oracle用户该如何做?
  • 杀掉oracle在线用户脚本分享
  • linux能够通过执行脚本添加oracle数据库的用户吗
  • Oracle exp 导出用户对象
  • oracle怎么删除用户提供解决方案
  • Oracle初始参数与当前用户
  • Oracle发布Oracle SQL Developer 1.2数据库开发工具 帮助用户简化开发工作
  • Oracle中查看当前用户的表
  • 怎样知道一个用户的主目录,也就是.bash_profile所在的目录?如/home/oracle
  • Oracle创建用户权限的过程
  • 解决oracle用户连接失败的解决方法
  • Oracle 8x监控sysdba角色用户登陆情况
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3