应用程序链接不上数据库,密码过期?
描述
前两天排查一个客户问题,情况如下,客户应用没有做任何调整,突然一天就报链接失败,展现出的错误是一个对话框,提示链接不上数据库。如下图。需要紧急排查原因。
排查思路
在排查之前已经和客户沟通,并没有调整任何配置文件,没有任何变更,所以排查问题思路从日志、参数、网络等外在因素着手。
1、登陆数据库服务器,检查监听日志和数据库日志。
监听日志输出来看,外部应用可以正常连接进来,因为在错误时间段还有正常的链接信息输出,
同样,数据库alert日志也是正常输出。
2、检查参数设置,发现关于进程、会话的参数设置都比较大,不可能是参数原因
3、排查客户端与服务器端的网络连接,让客户通过telnet检查1521端口,客户验证完之后表示,端口是通的
4、考虑到客户客户端解析tns是Oracle客户端软件,可以使用sqlplus命令,通知用户使用sqlplus xxxx/xxxx@xxxxx:1521/xxx 进行远程登陆测试,发现了报错的原因。如下图。原来是密码过期,查看profile设置知,密码有效期是默认180天,重新设置密码,问题解决。
排查总结
从排查的结果看,这是一个很简单的错误,但是排查却用了15分钟左右,原因是应用把底层的数据库报错信息封装后,只给客户展现一个链接错误,这对于客户来说,可能更具友好性,但对于排查问题来说,却困难重重,不过好在是解决了,在此记录下,供各位运维人员参考。