网站首页 > 技术文章 正文
需求:
oracle数据库密码过期了,需要修改密码,数据库是RAC环境,同时连接数据库的有多套环境。
事件过程:
停了其中一个环境后(其他环境忘记停了)直接修改某用户数据库密码,第一次修改成功,过了十几分钟后发现用新的用户密码通过PLSQL连接数据库时会卡住,用sqlplus连接也会卡住,用DBA用户二次修改某用户数据库密码,同样会卡住,一直提示excuting。下面是报错截图:
解决思路:
1、初步以为用户给锁定了,但是alter user XX account unlock也会锁住,对其他用户操作没有影响,用该用户连接数据库也会hang住,但是其他用户不受影响
2、从网上资料了解到很有可能是由于11g的密码错误延时验证,造成library cache lock。
一开始检查可以看到,处于library cache lock都是JDBC的应用,sql id是空(即还没有开始跑sql)。
检查ash,发现应用唯一的一个sql id是b84cknyvnyq25,是update user$ 表。这就很容易让人联系起来登陆时用户的验证。
11g有个密码错误延时验证,当应用以错误的密码连接上来时,会持续不断的循环CPU,同时伴随library cache lock。
所以我这里设置event 28401来禁用这个特性。
具体的修改过程:
SQL>show parameter event NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ event string xml_db_events string enable SQL>alter system set event='28401 trace name context forever,level 1' scope=spfile; System altered.
-----问题来了,需要重启才能生效,但是我们的数据库是集中式数据库,不能重启!
3、查看该用户的session,发现有48个会话数,通过里面一个字段(记录了服务器hostname)发现有其他环境连接了数据库服务器,后来才想起外网也有一套环境应用还是用老的密码在连这个数据库,将外网环境停止,释放连接后过段时间用正确的账号密码可以连接,会话数也是释放了。
此时再启动应用也可以正常访问。
总结:
虽然之前一直知道oracle有这个特性,但还是疏忽大意了,上面是今天在处理事故的一个过程,希望对大家有点帮助。
在修改数据库密码的时候提前查看是不是有其他会话正在用这个账号密码连接数据库,确定没有其他session再做修改密码的操作会更安全。
后面会分享更多关于DBA内容,感兴趣的朋友可以关注下~
猜你喜欢
- 2024-10-16 oracle 11g dba用户秘密修改其他用户密码
- 2024-10-16 见招拆招:破解Oracle数据库密码 oracle数据库破解码怎么用
- 2024-10-16 【Oracle】查看 dblink 密码方法 oracle查看dbname
- 2024-10-16 oracle 11g“密码延迟验证”特性 oracle11密码永不过期
- 2024-10-16 破解ORACLE19C RAC的SYS用户密码有效期180天
- 2024-10-16 Oracle密码过期如何取消密码180天限制及密码180天过期
- 2024-10-16 Oracle视图dba_users_with_defpwd查看哪些用户还在使用默认密码
- 2024-10-16 Oracle 数据库设置密码永不过期 oracle数据库密码过期时间
- 2024-10-16 ORACLE11G 用户密码过期了怎么办?
- 2024-10-16 在Oracle中,哪个视图可以查询用户的密码是不是原始默认密码?
你 发表评论:
欢迎- 最近发表
-
- Three.js vs Unity:工业可视化为何选择Web方案?
- 一款全新Redis UI可视化管理工具,支持WebUI和桌面——P3X Redis UI
- 时间线可视化实战:三款AI工具实测,手把手教你制作人生轨迹图
- 【推荐】一款可视化在线 Web 定时任务管理平台,支持秒级任务设置
- 重磅更新!FastDatasets 推出可视化 Web 界面
- 模具设计之UG钣金实例教程(3)_ug钣金基础教程
- 前端基于 RBAC 模型的权限管理实现
- 别再把JWT存在localStorage里了!2025年前端鉴权新思路
- 模具设计之曲面造型中不圆润的曲面如何处理技巧
- 9个专业级别的CSS技巧区分了解和精通的鸿沟
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)