Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 И опять про cron  [new]
-=Gremlin=-
Member

Откуда: Питер
Сообщений: 62
Знаю, что повторяюсь, и перечитал все подобные темы. Но проблема не решается :(
Oracle 11.2, OC Oracle Linux Server 6.2

Есть скрипт на перле следующего содержания:
#!/usr/bin/perl -w
$ENV{ORACLE_HOME}="/oracle/app/product/11.2.0";
$ENV{ORACLE_SID}="db";
$ENV{LD_LIBRARY_PATH}="/oracle/app/product/11.2.0/lib";
use DBI;
my $dbh = DBI->connect('dbi:Oracle:db', 'scott', 'tiger', {RaiseError => 1, AutoCommit => 0}) || "Database connection not made: $DBI::errstr";
$sql ="begin";
$sql.=" for i in (select 'begin dbms_stats.gather_table_stats ('''||user||''', '''||table_name||'''); end;' cmd from user_tables) loop";
$sql.=" execute immediate i.cmd;";
$sql.=" end loop;";
$sql.="end;";
my $sth = $dbh->prepare($sql);
$sth->execute;
$dbh->disconnect;

Руками из шела от рута выполняется без ошибок. Из крона не пашет. Пишет следующее:
install_driver(Oracle) failed: Can't load '/usr/local/lib64/perl5/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: libclntsh.so.11.1: cannot open shared object file: No such file or directory at /usr/lib64/perl5/DynaLoader.pm line 200.
at (eval 3) line 3
Compilation failed in require at (eval 3) line 3.
Perhaps a required shared library or dll isn't installed where expected
at /root/script.pl line 12

Все необходимые переменные среды вроде прописал, пробывал в скрипт добавлять еще следующее:
$ENV{ORACLE_BASE}="/oracle/app";
$ENV{NLS_LANG}="AMERICAN_AMERICANA.CL8MSWIN1251";
$ENV{ORA_OWNER}="oracle";
не помогло.

Чего ему не хватает понять не могу. В поддержке оракла ответили, что перл они не поддерживают :(
В кроне только вот это:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
0 5 * * * root /usr/bin/perl /root/script.pl
15 май 12, 17:06    [12558538]     Ответить | Цитировать Сообщить модератору
 Re: И опять про cron  [new]
Camper
Member

Откуда:
Сообщений: 174
-=Gremlin=-,

Выстави PERL5LIB
15 май 12, 17:24    [12558676]     Ответить | Цитировать Сообщить модератору
 Re: И опять про cron  [new]
-=Gremlin=-
Member

Откуда: Питер
Сообщений: 62
Добавил в скрипт
$ENV{PERL5LIB}="/oracle/app/product/11.2.0/perl/lib:/oracle/app/product/11.2.0/ccr/engines/Linux/perl/lib:/usr/local/lib64:/usr/lib64/perl5:/usr/share/perl5";

Чего то не помогло. Может я чего не допонял?
16 май 12, 10:11    [12560713]     Ответить | Цитировать Сообщить модератору
 Re: И опять про cron  [new]
kinky cat
Member

Откуда: с дивана23
Сообщений: 1238
-=Gremlin=-,

попробуй предварительно прогонять .bash_profile
16 май 12, 10:34    [12560888]     Ответить | Цитировать Сообщить модератору
 Re: И опять про cron  [new]
contr
Member

Откуда:
Сообщений: 1909
-=Gremlin=-
Чего ему не хватает понять не могу.

LD_LIBRARY_PATH
16 май 12, 13:46    [12562914]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить