故障现象:客户反应,因C、D盘空间爆满后,在线对两个盘进行扩容,扩容重启数据库后,应用无法连接数据库,重启主机问题依旧。(数据库软件和数据文件存放于D盘)
客户使用PLSQL登陆显示报错 ORA-01017,服务器本地使用SQLPLUS登陆也一样
ERROR:
ORA-01017: invalid username/password; logon denied
现场排查:
1)服务器中的实例状态显示已启动,监听也已启动
2)使用操作系统验证方式尝试登陆SQLPLUS / AS SYSDBA,耗时分钟后报错ORA-01017
改为SQLPLUS / NOLOG 再conn / AS SYSDBA 报错变为ORA-12154
3)检查监听发现,实例ORCL的状态为BLOCKED,确认实例非OPEN状态
4)进一步检查实例日志发现,最后一条日志显示为 alter database mount exclusive,但没有其他详细信息
5)即使数据库在受限模式,也不应该不能登录,猜测应该与监听有关,考虑故障起因是D盘被撑爆,下一步将排查文件
6)排查发现数据库监听日志达到了5.2G,已经超过了单个文件4G的上限,停库删除日志,终于SQLPLUS登陆使用
7)手工启动到mount,无异常,进一步OPEN时报错ORA-00205: error in identifying control file, check alert log for more info
8)生成PFILE后发现其控制文件设置了3个,2个存放于D盘,1个存放于E盘,其中E盘控制文件的时间戳与D盘的不一致
9)从pfile里将E盘的控制文件剔除后,数据库通过pfile启动正常
10)关库复制控制文件,用原SPFILE启动正常,并重启服务器再次验证,至此数据库恢复