Oracle JOB异常ORA-06512

原创
2016-06-07 17:08:12 1325浏览

题记:今天在监控系统上收到一套数据库的JOB异常报警,这里记录一下解决过程,分享出来! alert日志: Tue Dec 13 04:00:03 2011

题记:今天在监控系统上收到一套数据库的JOB异常报警,这里记录一下解决过程,,分享出来!

alert日志:

Tue Dec 13 04:00:03 2011
Errors in file /opt/Oracle/diag/rdbms/ndmcdb/NDMCDB/trace/NDMCDB_j000_11169.trc:
ORA-12012: error on auto execute of job 30
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 41
ORA-06512: at "SYS.UTL_FILE", line 512
ORA-29283: invalid file operation
ORA-06512: at "NDMC.PROC_TODO_TASK", line 74
ORA-06512: at line 1

于是到数据库中查询:

Job Schema User Last Date Next Date Total Time B Interval Failures What
---------- ----------------- -------------------- -------------------- ---------- - ------------------------------ ---------- -------------------------
30 NDMC 01-Jan-4000 00:00:00 0 Y TRUNC(sysdate + 1) + 4/24 16 PROC_TODO_TASK;
现在这个Job已经不可用了。

根据日志中的提示,用PL/SQL Developer找到该存储过程:
定位到74行:

这里是要打开一个目录,那么这个PATH是在哪里定义的呢?

于是查看数据库:
SQL> col DIRECTORY_PATH for a50
SQL> col OWNER for a20
SQL> select * from dba_directories;

OWNER DIRECTORY_NAME DIRECTORY_PATH
-------------------- ------------------------------ --------------------------------------------------
SYS NDMIGEXPDIR2 /home/oracle/ndmig_expdpdata
SYS NDMIGEXPDIR /home/oracle/archive/ndmig/expdpdata
SYS BACK_MSG_LOGS_PATH /home/oracle/msgBackup/work
SYS UNSUB_DATA_PATH /home/oracle/backup/unsub_data
SYS SHARELOG /home/oracle/share/
SYS DISKPKGFILECATALOG /home/oracle/backup/pkg_incon_data/diskpkgfile
SYS LOGCATALOG /home/oracle/backup/pkg_incon_data
SYS DATA_PUMP_DIR /opt/oracle/product/11g/db/rdbms/log/
SYS ORACLE_OCM_CONFIG_DIR /opt/oracle/product/11g/db/ccr/state

那么确认系统中是否存在这个目录或是这个目录权限是否正确:
oracle@NDMCDB05:~> cd /home/oracle/backup/unsub_data
-bash: cd: /home/oracle/backup/unsub_data: No such file or directory
发现这个目录不存在,于是手工创建:
oracle@NDMCDB05:~> mkdir -p /home/oracle/backup/unsub_data

接着需要将job的属性修改正确:

问题解决!

linux

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。