oracle作为一款数据库软件,由于其可靠的性能,在企业中广泛使用,当oracle出现问题时,我们可以通过日志中的ora报错进行问题定位。今天我们来看看ORA-01034问题的处理过程。
工具/原料
Centos7
oracle
方法/步骤
1、步骤一:公司验证环境的一台oracle数据库使用plsqldeveloper突然连接不上了,登录后台服务器,通过sqlplus/assysdba登录,数据库报错ORA-01034:ORACLEnotavailable
2、步骤二:由于数据库马上要使用,首先恢复环境,后边根据日志再进行定位,startup启动数据库,数据库正常启动,中间没有报错,启动后数据库实例状态一直正常。
3、步骤三:此时我们可以根据日志来定位问题selectvaluefromv铮喘饿怊$diag_infowherename='DiagAlert';查看al髫潋啜缅ert日志所在路径/u01/app/oracle/diag/rdbms/yzdb/yzdb/trace/alert_yzdb.log日志出现如下报错:Systemstatedumprequestedby(instance=1,osid=18832(DIAG)),summary=[abnormalinstancetermination].SystemStatedumpedtotracefile/u01/app/oracle/diag/rdbms/yzdb/yzdb/trace/dlyzdb_diag_18832.trcDumpingdiagnosticdataindirectory=[cdmp_20190919220141],requestedby(instance=1,osid=18832(DIAG)),summary=[abnormalinstancetermination].InstanceterminatedbyPMON,pid=18821可以看出程序被系统意外杀死,日志文件并没有详细说出错误原因,trace可能与内存和资源使用有关,需要查询系统日志。
4、步骤四:查看/var/log/messages日志对应时间点日志,发现日志k娣定撰钠ernel:Outofme罪焐芡拂mory:Killprocess18840(oracle)score90orsacrificechild从上面报错可以看出,是内存溢出导致数据库宕机,查看数据库,内存所剩无己,问题原因找到,内存增加后,问题没有再出现。