When I try to use oracle scheduler job to run a rman backup scripts. then I got a error:
1 2 3 4 5 6 7 8 9 10 11 12 | SQL> BEGIN 2 sys.dbms_scheduler.run_job(‘DAILY_BACKUP_LEVEL_0_JOB’); 3 end; 4 / BEGIN * ERROR at line 1: ORA-27369: job of type EXECUTABLE failed with exit code: 274662 ORA-06512: at “SYS.DBMS_ISCHED”, line 150 ORA-06512: at “SYS.DBMS_SCHEDULER”, line 441 ORA-06512: at line 2 |
after checking the dba_scheduler_job_run_details, I got the detail log
1 2 3 4 5 6 7 | SQL> select additional_info from DBA_SCHEDULER_JOB_RUN_DETAILS where job_name=’DAILY_BACKUP_LEVEL_0_JOB’ order by log_id desc; ADDITIONAL_INFO —————————————————————————————————————————————————— ORA-27369: job of type EXECUTABLE failed with exit code: 274662 STANDARD_ERROR=”Oracle Scheduler error: Config file is not owned by root or is writable by group or other or extjob is not setuid and owned by root” |
According the metalink documentation:ID 391820.1, I checked the ownership of file $ORACLE_HOME/rdbms/admin/externaljob.ora
1 2 3 | host 152 :ls -l $ORACLE_HOME/rdbms/admin/externaljob.ora -rw-r—– 1 root oinstall 1536 Aug 2 01:17 $ORACLE_HOME/rdbms/admin/externaljob.ora |
Its owner is root,and file permission is 640, they are all both right.
Then, I checked setuid bit of $ORACLE_HOME/bin/extjob, Yes, it’s the problem, it is not set the setuid bit.
1 2 3 4 5 6 7 8 9 10 11 | # cd $ORACLE_HOME/bin # ls -la extjob -rwxr-xr-x 1 oracle oinstall 1166544 Aug 5 08:05 extjob # chmod 4750 extjob # ls -la extjob -rwsr-x--- 1 oracle oinstall 1166544 Aug 5 08:05 extjob # chown root:oinstall extjob # ls -la extjob -rwsr-x--- 1 root oinstall 1166544 Aug 5 08:05 extjob |
Then, I tried reschedule the job, and it works.