Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 10g, DBMS_SCHEDULE , job_type=EXECUTEBLE  [new]
Aliona
Member

Откуда: Питер
Сообщений: 4023
Не понимаю вот что.
Job запускается в БД и выполняет OS-утилиту, допустим, удаляющую архлоги, то в каком месте передаются права на папки и файлы OS? не получу ли я в ответ ошибку "отказано в доступе" или "файл не найден"?
14 авг 07, 13:46    [4522577]     Ответить | Цитировать Сообщить модератору
 Re: 10g, DBMS_SCHEDULE , job_type=EXECUTEBLE  [new]
GL
Member

Откуда: Харьков
Сообщений: 1513
Aliona
не получу ли я в ответ ошибку "отказано в доступе" или "файл не найден"?

Не совсем понятно, о чём речь, но job будет запущен с правами пользователя oracle. Если у запускаемой утилиты не стоит флаг суидности, то права и останутся оракловыми, если стоит - права изменятся в соответствии с флагами и uid/gid утилиты.
Всё вышеописанное актуально для *nix, если Windows - права такие же, как у пользователя oracle.
14 авг 07, 13:55    [4522656]     Ответить | Цитировать Сообщить модератору
 Re: 10g, DBMS_SCHEDULE , job_type=EXECUTEBLE  [new]
Aliona
Member

Откуда: Питер
Сообщений: 4023
Вот такой джоб:
автор
SYS.DBMS_SCHEDULER.CREATE_JOB
(
job_name => 'VVV_JOB1'
,start_date => TO_TIMESTAMP_TZ('2007/08/13 17:25:00.000000 +04:00','yyyy/mm/dd hh24:mi:ss.ff tzh:tzm')
,repeat_interval => 'FREQ=MINUTELY; INTERVAL=1'
,end_date => TO_TIMESTAMP_TZ('2007/08/20 17:29:00.000000 +04:00','yyyy/mm/dd hh24:mi:ss.ff tzh:tzm')
,job_class => 'DEFAULT_JOB_CLASS'
,job_type => 'EXECUTABLE'
,job_action => '/usr/local/bin/echo vvvvvvvvvvvvvv >> /home/oracle/vvv'
,comments => NULL
);
выдает такую ошибку:

автор
ORA-27369: job of type EXECUTABLE failed with exit code: No such file or directory
14 авг 07, 13:58    [4522681]     Ответить | Цитировать Сообщить модератору
 Re: 10g, DBMS_SCHEDULE , job_type=EXECUTEBLE  [new]
GL
Member

Откуда: Харьков
Сообщений: 1513
автор
SYS.DBMS_SCHEDULER.CREATE_JOB
(
...
,job_action => '/usr/local/bin/echo vvvvvvvvvvvvvv >> /home/oracle/vvv'
...
);


/usr/local/bin/echo - такой файл есть, полный путь к файлу читабелен для пользователя oracle, а сам файл исполним для него, да?
Вообще несколько странное место для echo ;)
Да, ещё - попробуйте отказаться от переназначения stdout'а прямо в строке вызова job'a. Перенаправление - функция шела, поэтому в такой ситуации лучше явно вызывать шелл, давая ему команду...
14 авг 07, 14:08    [4522780]     Ответить | Цитировать Сообщить модератору
 Re: 10g, DBMS_SCHEDULE , job_type=EXECUTEBLE  [new]
Aliona
Member

Откуда: Питер
Сообщений: 4023
Вот такой джоб сегодня работает без ошибок:
автор
SYS.DBMS_SCHEDULER.CREATE_JOB
(
job_name => 'VVV_JOB1'
,start_date => TO_TIMESTAMP_TZ('2007/08/13 17:25:00.000000 +04:00','yyyy/mm/dd hh24:mi:ss.ff tzh:tzm')
,repeat_interval => 'FREQ=MINUTELY; INTERVAL=1'
,end_date => TO_TIMESTAMP_TZ('2007/08/20 17:29:00.000000 +04:00','yyyy/mm/dd hh24:mi:ss.ff tzh:tzm')
,job_class => 'DEFAULT_JOB_CLASS'
,job_type => 'EXECUTABLE'
,job_action => '/home/oracle/vvv.sh'
,comments => NULL
);

Сама не понимаю, почему. вот скрипт сам исполняемый файл
автор
cat vvv.sh
#!/bin/sh
echo vvvvvvvvvvvvvv >> /home/oracle/vvv

Естественно файл /home/oracle/vvv существовал и имел права доступа 666

а вчера этот же джоб выдавал такую ошибку:
ORA-27369: job of type EXECUTABLE failed with exit code: Not owner
STANDARD_ERROR="/home/oracle/vvv.sh: /home/oracle/vvv: cannot create"
14 авг 07, 14:12    [4522810]     Ответить | Цитировать Сообщить модератору
 Re: 10g, DBMS_SCHEDULE , job_type=EXECUTEBLE  [new]
GL
Member

Откуда: Харьков
Сообщений: 1513
Aliona

Вот такой джоб сегодня работает без ошибок:
...
Сама не понимаю, почему. вот скрипт сам исполняемый файл
автор
cat vvv.sh
#!/bin/sh
echo vvvvvvvvvvvvvv >> /home/oracle/vvv

Естественно файл /home/oracle/vvv существовал и имел права доступа 666

Совершенно справедливо - здесь шелл вызывается явно

а вчера этот же джоб выдавал такую ошибку:
ORA-27369: job of type EXECUTABLE failed with exit code: Not owner
STANDARD_ERROR="/home/oracle/vvv.sh: /home/oracle/vvv: cannot create"

А вчера этот файл принадлежал другому пользователю (предполагаю, что root'у, от которого и был создан сначала ;)
14 авг 07, 14:16    [4522843]     Ответить | Цитировать Сообщить модератору
 Re: 10g, DBMS_SCHEDULE , job_type=EXECUTEBLE  [new]
Aliona
Member

Откуда: Питер
Сообщений: 4023
неправда ваша, пока не знаю в чем.
Изменила права досттупа на файл /home/oracle/vvv 644:
автор
-rw-r--r-- 1 oracle dba 57 Aug 14 14:19 vvv
-rwxr-x--- 1 oracle dba 50 Apr 9 15:51 vvv.sh

и получила ошику:
автор
ORA-27369: job of type EXECUTABLE failed with exit code: Not owner
STANDARD_ERROR="/home/oracle/vvv.sh: /home/oracle/vvv: cannot create"

Получается, что все таки джоб работает в ОС не справами oracle, а с правами кого-то из группы dba.
Поменяла права на файл /home/oracle/vvv 664:
автор
-rw-rw-r-- 1 oracle dba 57 Aug 14 14:19 vvv
-rwxr-x--- 1 oracle dba 50 Apr 9 15:51 vvv.sh

Ошибка пропала, ждоб выполняется.

P.S. рутом не работаю, пароля его не знаю, а если бы и знала, то все равно никогда бы не работала, чего и всем желаю.
14 авг 07, 14:31    [4522984]     Ответить | Цитировать Сообщить модератору
 Re: 10g, DBMS_SCHEDULE , job_type=EXECUTEBLE  [new]
GL
Member

Откуда: Харьков
Сообщений: 1513
Aliona
Получается, что все таки джоб работает в ОС не справами oracle, а с правами кого-то из группы dba.

Нет, job ТОЧНО работает от пользователя oracle, другое дело, что этот пользователь может называться и иначе ;) Дайте команду ipcs, посмотрите, от какого пользователя выделен сегмент в памяти.
14 авг 07, 14:37    [4523042]     Ответить | Цитировать Сообщить модератору
 Re: 10g, DBMS_SCHEDULE , job_type=EXECUTEBLE  [new]
Aliona
Member

Откуда: Питер
Сообщений: 4023
продолжила эксперименты с правами.
Теперь поменяла права на исполняемый файл vvv.sh 700
автор
-rw-rw-r-- 1 oracle dba 192 Aug 14 14:34 vvv
-rwx------ 1 oracle dba 50 Apr 9 15:51 vvv.sh


И получила оншибку:
автор
ORA-27369: job of type EXECUTABLE failed with exit code: Permission denied


Значит все-таки не от имени оракл выполняются исполняемые джобы.
У кого по этому поводу есть светлые мысли или ссылки на документацию?
14 авг 07, 14:39    [4523073]     Ответить | Цитировать Сообщить модератору
 Re: 10g, DBMS_SCHEDULE , job_type=EXECUTEBLE  [new]
GL
Member

Откуда: Харьков
Сообщений: 1513
Собственно, даже проще - измените свой файл vvv.sh, чтобы он писал в /tmp - там вы точно увидите владельца этого файла, который и будет тем, от чьего имени работает oracle.
14 авг 07, 14:41    [4523086]     Ответить | Цитировать Сообщить модератору
 Re: 10g, DBMS_SCHEDULE , job_type=EXECUTEBLE  [new]
Aliona
Member

Откуда: Питер
Сообщений: 4023
GL
Нет, job ТОЧНО работает от пользователя oracle, другое дело, что этот пользователь может называться и иначе ;) Дайте команду ipcs, посмотрите, от какого пользователя выделен сегмент в памяти.

Про команду ipcs ничего не поняла..
Да и на сервере у меня не так много польователей , root и oracle.

id
uid=200(oracle) gid=200(dba)

ipcs
IPC status from <running system> as of Tue Aug 14 14:45:02 MSD 2007
T ID KEY MODE OWNER GROUP
Message Queues:
q 2 0x52455051 --rw------- root root
q 1 0x52455151 -Rrw------- root root
q 0 0x4c544952 --rw-rw-rw- root root
Shared Memory:
m 520093761 0x2b369904 --rw-r----- oracle dba
m 5 0x53494152 --rw-r--r-- root root
m 4 0x44525354 --rw-r--r-- root root
m 3 0x55315352 --rw-rw-rw- root root
m 2 0x4d4e5251 --rw-r--r-- root root
m 1 0x5654 --rw-rw-rw- root root
m 0 0x5643 --rw-rw-rw- root root
Semaphores:
s 16777334 0x6db09a98 --ra-r----- oracle dba
s 9 0x6312 --ra-ra-ra- root root
s 4 0x55535253 --ra-ra-ra- root root
s 3 0x4453314d --ra------- root root
s 2 0x5653 --ra-ra-ra- root root
s 1 0xc9e03647 --ra-r--r-- root root
14 авг 07, 14:45    [4523123]     Ответить | Цитировать Сообщить модератору
 Re: 10g, DBMS_SCHEDULE , job_type=EXECUTEBLE  [new]
Aliona
Member

Откуда: Питер
Сообщений: 4023
GL
Собственно, даже проще - измените свой файл vvv.sh, чтобы он писал в /tmp - там вы точно увидите владельца этого файла, который и будет тем, от чьего имени работает oracle.

так и сделала , изменила исполняемый файл vvv.sh:
автор
cat vvv.sh
#!/bin/sh
echo vvvvvvvvvvvvvv >> /tmp/vvv


джоб работает без оштбок, получила вот что:
автор
pwd
/tmp
ls -l
-rw-rw-rw- 1 nobody nobody 45 Aug 14 15:17 vvv
14 авг 07, 15:21    [4523434]     Ответить | Цитировать Сообщить модератору
 Re: 10g, DBMS_SCHEDULE , job_type=EXECUTEBLE  [new]
GL
Member

Откуда: Харьков
Сообщений: 1513
Aliona
pwd
/tmp
ls -l
-rw-rw-rw- 1 nobody nobody 45 Aug 14 15:17 vvv

Смешно.
А OS какая?
А /tmp - нативная локальная файловая система или vfat, nfs, ... ?
А сделать каталог, куда всем можно писать на локальной файловой системе и туда перенаправить вывод?

Т.е. от мысли, что oracle работает от пользователя nobody, я всё-таки далёк

Из вывода ipcs я не понял, кто держит сегмент памяти - это либо oracle.dba либо root.root либо кто-то, кого состояние сегментов памяти пользователь oracle не может даже прочитать (что вряд ли - root'а он таки читает), а объёмы сегментов в выводе ipcs не присутствуют. Т.е. лично мне этот вывод ничего не сказал ;)
14 авг 07, 15:47    [4523691]     Ответить | Цитировать Сообщить модератору
 Re: 10g, DBMS_SCHEDULE , job_type=EXECUTEBLE  [new]
Aliona
Member

Откуда: Питер
Сообщений: 4023
Если работать c dbconsole, например, делать бэкапы БД, то она спрашивает, от чьего имени работать в OS:
автор
Host Credentials
To perform a backup, supply operating system login credentials to access the target database.
* Username
* Password


А исполняемые джобы не этого не спрашивают, и работают не известно от имени какого пользователя. Может, есть способ этого пользователя где-то задать?
14 авг 07, 15:52    [4523746]     Ответить | Цитировать Сообщить модератору
 Re: 10g, DBMS_SCHEDULE , job_type=EXECUTEBLE  [new]
GL
Member

Откуда: Харьков
Сообщений: 1513
Aliona
Если работать c dbconsole, например, делать бэкапы БД, то она спрашивает, от чьего имени работать в OS

Правильно, поэтому он спрашивает ещё и пароль.
Aliona

А исполняемые джобы не этого не спрашивают, и работают не известно от имени какого пользователя. Может, есть способ этого пользователя где-то задать?

Известно - от пользователя, oracle (ещё раз - называться может и иначе). Переключение пользователя без пароля возможно только для root'а. Если это необходимо, делается через su или sudo или через suid'ные файлы, но я бы категорически не рекомендовал это делать - oracle'у незачем лезть к не своим файлам, а к своим он и так имеет полный доступ.
14 авг 07, 16:00    [4523858]     Ответить | Цитировать Сообщить модератору
 Re: 10g, DBMS_SCHEDULE , job_type=EXECUTEBLE  [new]
Aliona
Member

Откуда: Питер
Сообщений: 4023
uname -a
SunOS db-bak 5.10 Generic_118833-36 sun4u sparc SUNW,Sun-Fire-V210
14 авг 07, 16:07    [4523934]     Ответить | Цитировать Сообщить модератору
 Re: 10g, DBMS_SCHEDULE , job_type=EXECUTEBLE  [new]
Aliona
Member

Откуда: Питер
Сообщений: 4023
GL

Известно - от пользователя, oracle (ещё раз - называться может и иначе). Переключение пользователя без пароля возможно только для root'а. Если это необходимо, делается через su или sudo или через suid'ные файлы, но я бы категорически не рекомендовал это делать - oracle'у незачем лезть к не своим файлам, а к своим он и так имеет полный доступ.

Кому известно?
Лично мне это совсем не известно, поэтому я и задаю вопрос, кроме того на это указывают и мои опыты.
Во-вторых, просила ссылку на документацию, где это написано.
Откуда Бд и джобы могут знать какие пользователи у меня есть на сервере и какие у них установлены права. В этом форуме один деятель писал, что у него оракл установлен несколько раз от имени разных пользователей. Как ждоб может занть от какгого из этих пользователей ему работать?
14 авг 07, 16:13    [4524013]     Ответить | Цитировать Сообщить модератору
 Re: 10g, DBMS_SCHEDULE , job_type=EXECUTEBLE  [new]
GL
Member

Откуда: Харьков
Сообщений: 1513
Aliona
Во-вторых, просила ссылку на документацию, где это написано.

Это написано в документации на операционную систему. Процесс без специальных ухищрений не может породить другой процесс с отличным от родительского владельцем, если, конечно, этот владелец не root.
Aliona
Откуда Бд и джобы могут знать какие пользователи у меня есть на сервере и какие у них установлены права. В этом форуме один деятель писал, что у него оракл установлен несколько раз от имени разных пользователей. Как ждоб может занть от какгого из этих пользователей ему работать?

Они и не знают и знать им этого не нужно - как запустили экземпляр в стартовом скрипте - от такого пользователя он и все его дочерние процессы и работают.
14 авг 07, 16:19    [4524065]     Ответить | Цитировать Сообщить модератору
 Re: 10g, DBMS_SCHEDULE , job_type=EXECUTEBLE  [new]
Aliona
Member

Откуда: Питер
Сообщений: 4023
хорошо , тут почти убедили, хотя процесс dbconsole работает тоже от имени пользователя оракл, но OS Credential всё-таки спрашиваются.

Но почему же тогда образуется файл с владельцем NOBODY и почему есть я меня права на исполняемый файл он не выполняется?

Если бы всё так было просто, я бы и не задавала вопросов.
Я полезла разбираться, почему мои джобы не выполняются и зашла в такой тупик.
14 авг 07, 16:30    [4524169]     Ответить | Цитировать Сообщить модератору
 Re: 10g, DBMS_SCHEDULE , job_type=EXECUTEBLE  [new]
Aliona
Member

Откуда: Питер
Сообщений: 4023
опечатка.
Но почему же тогда образуется файл с владельцем NOBODY, и почему, если я меняю права на исполняемый файл, он не выполняется?
14 авг 07, 16:32    [4524192]     Ответить | Цитировать Сообщить модератору
 Re: 10g, DBMS_SCHEDULE , job_type=EXECUTEBLE  [new]
GL
Member

Откуда: Харьков
Сообщений: 1513
Aliona
Но почему же тогда образуется файл с владельцем NOBODY и почему есть я меня права на исполняемый файл он не выполняется?

Это хороший вопрос, ответ на который может различаться от того, локальная ли (и нативная ли) файловая система у папки /tmp, какой способ применяет OS для работы многих пользователей с директорией /tmp (сорри, сам с Соляркой никогда не работал).
14 авг 07, 16:34    [4524232]     Ответить | Цитировать Сообщить модератору
 Re: 10g, DBMS_SCHEDULE , job_type=EXECUTEBLE  [new]
Aliona
Member

Откуда: Питер
Сообщений: 4023
мне не совсем понятно, что такое локальная или нативная файловая система.

Знаю точно , что не сетевая.

если я запускаю имполняемый файл vvv.sh сервере, то он мне создает файл:
ls -l /tmp/vvv
-rw-r--r-- 1 oracle dba 15 Aug 14 16:39 /tmp/vvv
а джоб создает файл:
-rw-rw-rw- 1 nobody nobody 45 Aug 14 15:17 /tmp/vvv

Читала металинк , там не нашла таких проблем.
А мои скрипты,запускаемые через крон, не хотяят работать в джобах
14 авг 07, 16:44    [4524328]     Ответить | Цитировать Сообщить модератору
 Re: 10g, DBMS_SCHEDULE , job_type=EXECUTEBLE  [new]
GL
Member

Откуда: Харьков
Сообщений: 1513
Aliona

если я запускаю имполняемый файл vvv.sh сервере, то он мне создает файл:
ls -l /tmp/vvv
-rw-r--r-- 1 oracle dba 15 Aug 14 16:39 /tmp/vvv
а джоб создает файл:
-rw-rw-rw- 1 nobody nobody 45 Aug 14 15:17 /tmp/vvv

Судя по наблюдаемому, oracle таки работает от пользователя nobody, хотя в это и очень трудно поверить А когда вы скрипт вручную запускаете - он работает именно от oracle.dba (пользователя, которым вы залогинены) - вот и файл создаётся соответствующий...
Есть ещё один вариант - я НАСТОЛЬКО сильно не знаю SunOS - может быть кто более грамотный откликнется...
14 авг 07, 16:51    [4524372]     Ответить | Цитировать Сообщить модератору
 Re: 10g, DBMS_SCHEDULE , job_type=EXECUTEBLE  [new]
newr
Member

Откуда: Веллингтон, НЗ
Сообщений: 208
GL
Т.е. от мысли, что oracle работает от пользователя nobody, я всё-таки далёк


А зря, хотя я тоже был далек, пока не попробовал.
Почитайте, что пишут умные люди... (гугл рулит)

Кстати, как сейчас помню из installation guide по 10g - оракл даже не рекомендует, он требует, чтобы на сервере бул юзер nobody... Я еще тогда удивился, зачем он ему.
14 авг 07, 16:56    [4524411]     Ответить | Цитировать Сообщить модератору
 Re: 10g, DBMS_SCHEDULE , job_type=EXECUTEBLE  [new]
newr
Member

Откуда: Веллингтон, НЗ
Сообщений: 208
PS. Собственно из того же гугля: Нота 337005.1. Странно, что уважаемая Aliona его не нашла, ибо легко ищется по ошибке
ORA-27369: job of type EXECUTABLE failed with exit code: Not owner
14 авг 07, 17:03    [4524480]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить