Scheduled Job Running Shell Script Fails With ORA-27369

Scheduled Job Running Shell Script FailsWith ORA-27369

Applies to:

Oracle Server - Enterprise Edition -Version: 10.1.0.2 to 10.2.0.4

Oracle Server - Standard Edition -Version: 10.1.0.2 to 10.2.0.4

including Version:11.2.0.4

Sun Solaris SPARC (64-bit)

Linux x86

"ORA-27369: job of type EXECUTABLEFailed with exit code: UnkNown error" was still occurring for non oracle users running DBMS_SCHEDULER executed shellscripts. Problem was fixed when filesystem where ORACLE_HOME was mountedon was found to have been mounted w/ nosetuid. Changing mount option to setuidresolved problem

Symptoms

@Checked for relevance on 16-MAY-2008

A Scheduler job has been configuredusing the DBMS_SCHEDULER package. The job executes a shell script using theoption job_type=>’EXECUTABLE’. The script performs a write operation to anoutput file, for example a redirect operation or touch. The write operationfails with:

ORA-27369: job of type EXECUTABLE Failedwith exit code: Operation not permitted

 Or

ORA-27369: job of type EXECUTABLE Failedwith exit code: 274662

Or

ORA-27369: job of type EXECUTABLE Failedwith exit  code: UnkNownerror

Indba_scheduler_job_run_details.additional_info, the following details arerecorded:

ORA-27369: job of type EXECUTABLE Failedwith exit code: Operation not permitted

STANDARD_ERROR="touch: cannot touch`’: Permission denied"

Or

ORA-27369: job of type EXECUTABLE Failedwith exit code: 274662

STANDARD_ERROR="Oracle Schedulererror: Config file is not owned by root or is

writable by group or other or extjob isnot setuid and owned by root"

Cause

If$ORACLE_HOME/rdbms/admin/externaljob.ora exists then external jobs run as theuser and group specified in this file, which by defaultis a lowly privileged user (nobody).

The user ‘nobody’ andthe group ‘nobody’ do not have the proper privileges for write operations.

As a result, themessage ‘Permission denied’ is returned when attempting to write to files.

Solution

Root access is required for the steps below.

1. Ensure the configuration file$ORACLE_HOME/rdbms/admin/externaljob.ora is owned by root:

# cd$ORACLE_HOME/rdbms/admin/

# chown rootexternaljob.ora

2. Ensure the file permissions arecorrectly set for $ORACLE_HOME/rdbms/admin/externaljob.ora.

Remove write privileges from group andother.

# chmod 640externaljob.ora

# ls -la externaljob.ora

-rw-r—– 1 root oinstall 1537 Sep 1309:24 externaljob.ora

3. Edit$ORACLE_HOME/rdbms/admin/externaljob.ora and set run_user to the OS accountthat owns the Oracle installation and the database and run_group to the OSgroup that owns the Oracle_Home.

Example:

OS account: oracle

OS group: oinstall

run_user = oracle

run_group = oinstall

 4. Ensure the setuid bit is set on the$ORACLE_HOME/bin/extjob executable.  Alsomake sure the filesystem is mounted with setuid option.

# cd$ORACLE_HOME/bin

# chown rootextjob

# chmod 4750extjob

# ls -la extjob

-rwsr-x— 1 root oinstall 64988 Mar 2918:22 extjob

相关文章

这篇文章主要介绍“hive和mysql的区别是什么”,在日常操作中...
这篇“MySQL数据库如何改名”文章的知识点大部分人都不太理解...
这篇文章主要介绍“mysql版本查询命令是什么”的相关知识,小...
本篇内容介绍了“mysql怎么修改字段的内容”的有关知识,在实...
这篇文章主要讲解了“mysql怎么删除unique约束”,文中的讲解...
今天小编给大家分享一下mysql怎么查询不为空的字段的相关知识...