Home >Database >Mysql Tutorial >Oracle JOB异常ORA-06512

Oracle JOB异常ORA-06512

WBOY
WBOYOriginal
2016-06-07 17:08:121868browse

题记:今天在监控系统上收到一套数据库的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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn