延迟密码验证特性 特性简述
为了防止用户密码的暴力破解,从11G开始引入了一个新特性:密码延迟认证。
等待用户输入密码的时间,随着输入错误密码的次数而不断延长。以此缓解暴力破解Oracle用户密码。
特性潜在引发问题
一 问题说明
10日17点左右得知某数据库出现数据库用户锁定的情况,登上去后发现一节点数据库hang死,二节点数据库宕机,进行处理排查后,业务正常运行,以下为排查过程。
二 故障具体日志分析
报告分析
我们取一节点故障点16
点到17
点以及9
日相同时间点的AWR
报告进行对比发现:
发现故障点dbtime
相比高了24
倍,其中top10
的等待事件中,
library cache lock
达到了总dbtime
的75.5%
查看时间模型:connection management call elapsed time
该统计信息达到了dbtime
的77%
报告分析
同样我们取故障点的addm 报告:
|
Activity During the Analysis Period ----------------------------------- Total database time was 499730 seconds. The average number of active sessions was 138.12. Summary of Findings ------------------- Description Active Sessions Recommendations Percent of Activity -------------------------------- ------------------- --------------- 1 Session Connect and Disconnect 106.79 | 77.32 1 2 Shared Pool Latches 104.22 | 75.45 0 3 Unusual "Cluster" Wait Event 11.32 | 8.2 2 4 Unusual "Concurrency" Wait Event 4.42 | 3.2 4 5 Buffer Busy - Hot Objects 4.18 | 3.03 0 6 Unusual "Cluster" Wait Event 2.83 | 2.05 2 |
可以看到在同一时间,排名第一 的 Session Connect and Disconnect
|
Finding 1: Session Connect and DisconnectImpact is 106.76 active sessions, 77.32% of total activity.----------------------------------------------------------- Session connect and disconnect calls were consuming significant database time. Recommendation 1: Application Analysis Estimated benefit is 106.79 active sessions, 77.32% of total activity. ---------------------------------------------------------------------- Action Investigate application logic for possible reduction of connect and disconnect calls. For example, you might use a connection pool scheme in the middle tier. |
报告给出的分析为:会话连接和断开连接调用消耗了大量的数据库时间。
故障时间ash 报告分析
我们取故障时间点16 点至17 点的ash 报告:
同样的,我们可以获取到跟awr
报告相同的等待时间及时间模型。
我们可以看到16:35
开始数据出现大量的library cache lock
我们获取到该等待事件的p1,p2,p3
值,分别代表该等待事件的句柄地址,锁地址,锁模式及命名空间。
我们将p3
的值十进制转换为16
进制获取到它的命名空间值为79
,再在数据库中将其查出:
|
select distinct KGLHDNSP, KGLHDNSD from x$kglob where KGLHDNSP=79 ; KGLHDNSP KGLHDNSD ---------- ------ 79 ACCOUNT_STATUS |
可以看到,该锁指向了账户状态,综上所述,结合之前应用反馈的用户锁问题,我们有理由认定此次故障是由于错误密码的大规模登录数据库,导致出现大量的library cache lock ,最终拖垮了数据库,导致数据库的hang 死。
三 故障总结
故障结论分析
结合第二章节的故障分析,结合之前应用反馈的用户锁问题,我们有理由认定此次故障是由于错误密码的大规模登录数据库,导致出现大量的library cache lock ,最终拖垮了数据库,导致数据库的hang 死,至于哪些应用导致的大规模错误密码登录,还得结合应用去排查。
解决方案
从上述3.1 节的分析,给出如下建议:
1. 密码策略优化
|
密码过期时间,从11g 开始,oracle 对数据库所有密码默认过期时间180 天:SQL> alter profile default limit PASSWORD_LIFE_TIME unlimited; 密码登陆错误次数,对于输入错误密码导致数据库账号被锁定:SQL> alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited; 或 修改为100 次 alter profile default limit FAILED_LOGIN_ATTEMPTS 100; 密码大小写敏感,该参数默认值是TRUE ,因此,默认情况下密码大小写是敏感的SQL> alter system set SEC_CASE_SENSITIVE_LOGON=false; 密码错误延迟登录,11G 引入了延迟密码验证,在输入错误的密码后,后续如果还是采用错误的密码登陆,将会导致密码延迟验证,从第三次开始,后续的每次登陆导致密码延迟1 秒左右 而且会导致失败登陆延长,可以通过如下事件来屏蔽密码的延迟验证SQL> ALTER SYSTEM SET event='28401 TRACE NAME CONTEXT FOREVER, LEVEL 1' SCOPE=SPFILE SID='*'; 禁止OCI 程序登录风暴,初始化参数SEC_MAX_FAILED_LOGIN_ATTEMPTS 的默认设置为10 ,表示在连接尝试达到指定次数后会自动断开连接。即使未启用口令概要文件,也会强制实施此参数。 此参数可以防止程序连接到数据库,然后成百上千次地尝试口令以通过验证。如果认为该参数没有特别的必要性,可以考虑调大:alter system set sec_max_failed_login_attempts=2147483647 scope=spfile sid=’*’; |
3. Sql 优化
|
Awr 报告发现数据库存在比较大的解析及硬解析,查看后发现比较多的sql 没有使用绑定变量 建议: 1. 优化sql ,使用绑定变量 2. 尽量使用索引 |
四 附录
官方文档:
Doc ID 1309738.1

编辑推荐:
- 记一次 JVM OOM 实战优化03-03
- 趣店容器进化史03-03
- 延迟密码验证特性引起的数据库HANG死及宕机03-03
- 进阶:玩转 CSS 变量03-03
- “秒杀”问题的数据库和SQL设计03-03
- Vue3.0中引入地图(谷歌+高德+腾讯+百度)03-03
- 一种离谱到极致的页面侧边栏效果探究03-03
- Typora + GitHub = 效率03-03
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 延迟密码验证特性引起的数据库HANG死及宕机
延迟密码验证特性引起的数据库HANG死及宕机
26-03-03 - 空格导致的impdp时的ORA-07445错误
空格导致的impdp时的ORA-07445错误
26-03-03 - Oracle TX锁的处理
Oracle TX锁的处理
26-03-03 - oracle 更改分区表数据 ora-14402
oracle 更改分区表数据 ora-14402
26-03-03 - ORACLE rman与RMAN-00054&ORA-09945
ORACLE rman与RMAN-00054&ORA-09945
26-03-03 - Oracle 12.2之后补丁RU RUR概要
Oracle 12.2之后补丁RU RUR概要
26-03-03 - unable to extend table SYS.AUD$ by 1024 in tablespace SYSTEM
- 【BUILD_ORACLE】使用ASMLib包搭建ASM磁盘
【BUILD_ORACLE】使用ASMLib包搭建ASM磁盘
26-03-03 - 干货 | 设计师必备中国风配色卡,快来收藏
干货 | 设计师必备中国风配色卡,快来收藏
26-03-03 - Thread 1 cannot allocate new log
Thread 1 cannot allocate new log
26-03-03
