查看应用系统Server端日志,有如下报错:
[2013/01/14 06:23:32.05 (10043,7)] ERRO Svc=ABNSrv
Msg=[IDL:CIMFW/ProductManagement/Product:1.0, ]
ORACLE Error MSG=(ORA-01013: user requested cancel of current operation) SQL=(……)括号内为一长串SQL语句。
因值班人员无法判断问题产生原因,故手动重启应用全部服务。启动时出现如下报错:
Error - ORA-00257: archiver error. Connect internal only, until freed.
很明显,此报错提示archive log已满。使用df -k命令进行查看,归档目录使用率100%。
<处理方法>
本公司24小时生产,为保证生产第一时间恢复,最快的方式就是直接rm,删除较早的归档日志,释放/archive目录空间。删除后还应进入RMAN执行以下操作:
crosscheck archivelog all;
delete archivelog all completed before 'sysdate-1' backed up 1 times to sbt;
delete expired archivelog all;
其实问题很简单,处理过程也很简单,但删除归档的脚本已加入crontab,如果计划任务正常执行,归档日志应被正常删除。
进一步分析,归档被删除的前提条件是“已备份”,而未被删掉的归档均未进行备份。RMAN备份使用了HP的Data Protector,同样安装在此设备上。
原来,因扩产检讨硬件需求,发现catalog库所在服务器CPU使用率达100%。进一步查看,发现root用户有如下计划任务:
# omnitrig entry was automatically added by
0,15,30,45 * * * * /opt/omni/sbin/omnitrig
该进程为HP Data Protector所有。相关描述如下:
This is a standard cron entry installed when OmniBack or Data protector is installed on the system. It fires off every 15 minutes to see if any DP tasks are scheduled.
简单看来,就是“每个15分钟执行一次,查看是否有DP任务被调度”。
查看官方文档:
Change Request: QXCR1000331896
When running the "omnitrig -run_checks" command, that checks for Data Protector notifications, it consumes 100% of the CPU.
因此,将该计划任务注释掉了。
查看DP命令行参考官方文档,有如下描述:
The omnitrig command checks and
triggers scheduled backups. (该命令检查并触发计划备份)。
由此可见,没有此进程,DP备份不会进行,计划任务虽正常执行,但发现归档未备份,因此未进行删除,最终导致数据库挂起,应用系统宕机。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28554493/viewspace-752867/ ,如需转载,请注明出处,否则将追究法律责任。