powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / dbms_scheduler и внешний скрипт
15 сообщений из 15, страница 1 из 1
dbms_scheduler и внешний скрипт
    #39346999
omorozov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь выполнить через сабж простой внешний скрипт, вывод в лог.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Declare 
  l_job_name varchar2(50);

Begin

l_job_name:='script_os_1';

dbms_scheduler.create_job
      (  job_name => l_job_name,
           job_type => 'EXECUTABLE',
         job_action =>'/opt/home/oracle/test.sh',
      number_of_arguments => 0,
               credential_name => 'TEST_CREDENTIAL',
         start_date => sysdate,
         enabled    => true,
        auto_drop  => true
      );
  
End;



- из bash скрипт работает.
- credential_name oracle задан (владелец скрипта)
- процедура выполняется без сообщений
- папка $ORACLE_HOME/scheduler пуста
- job локальный, агент вроде не нужен

но скрипт не выполняется, т.к результата записи в лог нет,
как понять какого еще рожна не хватает?
...
Рейтинг: 0 / 0
dbms_scheduler и внешний скрипт
    #39347066
omorozov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовал процедуру запустить в консоли ssh sqlplus
Получаю

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> @sjob2;
 18  /
Declare
*
ERROR at line 1:
ORA-27476: "TEST.TEST_CREDENTIAL" does not exist
ORA-06512: at "SYS.DBMS_ISCHED", line 124
ORA-06512: at "SYS.DBMS_SCHEDULER", line 271
ORA-06512: at line 8



но на запрос
Код: sql
1.
2.
3.
4.
SELECT credential_name,
       username 
FROM   user_scheduler_credentials
ORDER BY credential_name;




показывает
Код: plsql
1.
2.
3.
CREDENTIAL_NAME        USERNAME
------------------    ---------------
TEST_CREDENTIAL        oracle
...
Рейтинг: 0 / 0
dbms_scheduler и внешний скрипт
    #39347139
omorozovПопробовал процедуру запустить в консоли ssh sqlplus
Получаю

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> @sjob2;
 18  /
Declare
*
ERROR at line 1:
ORA-27476: "TEST.TEST_CREDENTIAL" does not exist
ORA-06512: at "SYS.DBMS_ISCHED", line 124
ORA-06512: at "SYS.DBMS_SCHEDULER", line 271
ORA-06512: at line 8



но на запрос
Код: sql
1.
2.
3.
4.
SELECT credential_name,
       username 
FROM   user_scheduler_credentials
ORDER BY credential_name;




показывает
Код: plsql
1.
2.
3.
С       USERNAME
------------------    ---------------
TEST_CREDENTIAL        oracle


какую "процедуру"?
при чём здесь внешний скрипт?
какого "результата записи" в какой "лог" нет?
сообщение об ошибке явно указывает на винегрет:
TEST_CREDENTIAL - это credential_name с использованием логина oracle
и в то же время
TEST_CREDENTIAL - это таблица, с которой пытается работать что-то из файла sjob2 в схеме пользователя TEST, хотя её там нет, а в джоб запихивается запуск файла /opt/home/oracle/test.sh

и это, если, "auto_drop" true не способствует отслеживанию происходящего
...
Рейтинг: 0 / 0
dbms_scheduler и внешний скрипт
    #39347194
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А отдельно назначать через DBMS_SCHEDULER.SET_ATTRIBUTE не пробовал?
...
Рейтинг: 0 / 0
dbms_scheduler и внешний скрипт
    #39347387
omorozov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав ЛюбомудровА отдельно назначать через DBMS_SCHEDULER.SET_ATTRIBUTE не пробовал?
Да, сначала credential_name и пробовал через DBMS_SCHEDULER.SET_ATTRIBUTE задавать,
но тоже без результата.
...
Рейтинг: 0 / 0
dbms_scheduler и внешний скрипт
    #39347423
omorozov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кто на ком стоял?какую "процедуру"?
при чём здесь внешний скрипт?
какого "результата записи" в какой "лог" нет?
Процедура в первом посте, просто записал ее в файл и попробовал из sqlplus
до этого запускал в ТОАД

Внешний скрипт test.sh запускается этой процедурой,
в нем просто строка, через echo пишет в файл лог
Попробовал с auto_drop => false , сообщений нет, что теперь поможет отслеживанию ?
...
Рейтинг: 0 / 0
dbms_scheduler и внешний скрипт
    #39347432
omorozov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кто на ком стоял?TEST_CREDENTIAL - это таблица,
с которой пытается работать что-то из файла sjob2 в схеме пользователя TEST,
хотя её там нет, а в джоб запихивается запуск файла /opt/home/oracle/test.sh
В скрипте test.sh нет обращений к таблицам, там содержится:

Код: html
1.
2.
3.
#!/bin/bash
LOG='/opt/home/oracle/testlog'  
echo $(/usr/bin/date +"%y-%m-%d %T") Start  >> $LOG



TESTTR_CREDENTIAL создавался стандартно

Код: plsql
1.
2.
3.
4.
 DBMS_SCHEDULER.create_credential(
    credential_name => 'TEST_CREDENTIAL',
    username        => 'oracle',
    password        => 'pass');
...
Рейтинг: 0 / 0
dbms_scheduler и внешний скрипт
    #39347437
omorozov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
omorozov,
да, Oracle 11.2.0.3.0 - 64bit
...
Рейтинг: 0 / 0
dbms_scheduler и внешний скрипт
    #39347452
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
omorozovTESTTR_CREDENTIAL создавался стандартно

Код: plsql
1.
2.
3.
4.
 DBMS_SCHEDULER.create_credential(
    credential_name => 'TEST_CREDENTIAL',
    username        => 'oracle',
    password        => 'pass');


username строчными буквами - не совсем "стандартно"...
...
Рейтинг: 0 / 0
dbms_scheduler и внешний скрипт
    #39347461
omorozov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey_anonymoususername строчными буквами - не совсем "стандартно"...

так это пользователь ОС Solaris, он там такой и есть
...
Рейтинг: 0 / 0
dbms_scheduler и внешний скрипт
    #39347580
omorozov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Процедура через sqlplus в консоли ssh тоже работает без ошибок, (поправил).
но скрипт не отрабатывает

Код: sql
1.
SELECT * FROM USER_SCHEDULER_JOB_DESTS;


Возвращает STATUS - FAILED

Пробовал ставить с отсрочкой в минуту, STATUS - SCHEDULED потом FAILED

Что еще смотреть, наверняка дело в каких то правах, но вроде все дал что можно,
кроме SYSDBA
...
Рейтинг: 0 / 0
dbms_scheduler и внешний скрипт
    #39347624
omorozov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В dba_scheduler_job_run_details
в результах работы additional_info:

Код: html
1.
2.
ORA-27369: job of type EXECUTABLE failed with exit code: I/O error
STANDARD_ERROR="Launching external job failed: Login executable not setuid-root"


Так понимаю, не может записать в файл.
Права на файл у oracle, а под каким шедулер пытается писать, как узнать.

The default user for non-SYS jobs on UNIX platforms is specified by the run-user and run-group attributes in the "$ORACLE_HOME/rdbms/admin/externaljob.ora" file.

Это в любом случае, или DBMS_SCHEDULER.create_credential переопределяет принудительно?
...
Рейтинг: 0 / 0
dbms_scheduler и внешний скрипт
    #39347663
Maxim Demenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
omorozov,

Коллеги-индусы утверждают, что такое может быть если oracle (binary) имеет неправильные атрибуты. Советуют сделать следующее:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
cd $ORACLE_HOME/bin
chmod 6750 oracle

# chown root $ORACLE_HOME/bin/extjob
# chmod 4750 $ORACLE_HOME/bin/extjob

# chown root $ORACLE_HOME/rdbms/admin/externaljob.ora
# chmod 640 $ORACLE_HOME/rdbms/admin/externaljob.ora

# chown root $ORACLE_HOME/bin/jssu
# chmod 4750 $ORACLE_HOME/bin/jssu



Если че - за что купил, за то продал (Doc Id. 961019.1), ногами прошу не бить.

Best regards

Maxim
...
Рейтинг: 0 / 0
dbms_scheduler и внешний скрипт
    #39347682
omorozov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Demenkoomorozov,

Коллеги-индусы утверждают, что такое может быть если oracle (binary) имеет неправильные атрибуты. Советуют сделать следующее:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
cd $ORACLE_HOME/bin
chmod 6750 oracle

# chown root $ORACLE_HOME/bin/extjob
# chmod 4750 $ORACLE_HOME/bin/extjob

# chown root $ORACLE_HOME/rdbms/admin/externaljob.ora
# chmod 640 $ORACLE_HOME/rdbms/admin/externaljob.ora

# chown root $ORACLE_HOME/bin/jssu
# chmod 4750 $ORACLE_HOME/bin/jssu



Если че - за что купил, за то продал (Doc Id. 961019.1), ногами прошу не бить.

Best regards

Maxim
Спасибо за наводку, проверю.. уже голову сломал.
...
Рейтинг: 0 / 0
dbms_scheduler и внешний скрипт
    #39347806
omorozov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Demenko,
Уф.. помогло, скрипт теперь отрабатывает, спасибо большое!
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / dbms_scheduler и внешний скрипт
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]