1、步骤一:公司验证环境的一台oracle数据库使用plsql developer突然连接不上了,登录后台服务器,通过sqlplus / as sysdba登录,数据库报错ORA-01034: ORACLE not available
2、步骤二:由于数据库马上要使用,首先恢复环境,后边根据日志再进行定位,startup启动数据库,数据库正常启动,中间没有报错,启动后数据库实例状态一直正常。
3、步骤三:此时我们可以根据日志来定位问题select value from v铮喘饿怊$diag_info where name='Diag Alert';查看al髫潋啜缅ert日志所在路径/u01/app/oracle/diag/rdbms/yzdb/yzdb/trace/alert_yzdb.log日志出现如下报错:System state dump requested by (instance=1, osid=18832 (DIAG)), summary=[abnormal instance termination].System State dumped to trace file /u01/app/oracle/diag/rdbms/yzdb/yzdb/trace/dlyzdb_diag_18832.trcDumping diagnostic data in directory=[cdmp_20190919220141], requested by (instance=1, osid=18832 (DIAG)), summary=[abnormal instance termination].Instance terminated by PMON, pid = 18821可以看出程序被系统意外杀死,日志文件并没有详细说出错误原因,trace可能与内存和资源使用有关,需要查询系统日志。
4、步骤四:查看/var/log/messages日志对应时间点日志,发现日志kernel: Out of me罪焐芡拂mory: Kill process 18840 (oracle) score 90 or sacrifice child从上面报错可以看出,是内存溢出导致数据库宕机,查看数据库,内存所剩无己,问题原因找到,内存增加后,问题没有再出现。