powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / невыполняется imp-орт из cron-а
8 сообщений из 8, страница 1 из 1
невыполняется imp-орт из cron-а
    #37408607
ilua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток.
Есть две Оракловые базы находящиеся на разных машинах (одна рабочаяя, другая резервная)
Написан скриптец выполняющий ежедневный, ежемесячный , ежегодный (в зависимости от текущей даты) exp-орт таблици из одной базы, и imp-орт этих данных в другую базу, скрипт крутится на машине с резервной базой..
Алгоритм действий скрипта следующий:
1 ) в рабочей базе создаем таблицу содержащую данные за сутки использую sqlplus
2) экспортируем этот кусок по средством exp (использую для этого expect вызывая отдельный файл, коннектимся по ssh и т.д.)
3) копируем полученный файл экспорта с одной машины на другую
используя scp
4) импортируем переданый файл.

Ниже приведу сам скрипт.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
#!/usr/bin/sh
 PASS="oracle"
 USER="oracle"
 IPSERV="192.168.10.15"
 TMP_DIR="/home/oracle/111"
 LOCAL_DIR="/mnt/oradata/EXPORT/2011"
 ORA_USER="oracle"
 ORA_PASSW="oracle"
 FILENAME="";
 DAY=`date +%d`;
 #DAY= 24 ;
 MONTH=`date +%m`;
 YEAR=`date +%Y`;
 END_DATE="";
 START_DATE=""
 PATH_=`dirname $ 0 `;
 QWERY_FILE="createtable.sql"
 END_DATE="TO_DATE ('$DAY/$MONTH/$YEAR 00:00:00', 'dd/mm/yyyy hh24:mi:ss')";

 if `test $DAY -eq  1 ` 		
 then
 	 if `test $MONTH -eq  1 `
 	 then
 	    YEAR=`expr $YEAR -  1 `;
 	  	FILENAME="year$YEAR";
 	 else
 	 	MONTH=`expr $MONTH -  1 `;
 	    FILENAME="month$MONTH$YEAR_mias";
 	 fi
     
 else 
 	DAY=`expr $DAY -  1 `;
    FILENAME=`date +%b`$DAY;
 fi
 START_DATE="TO_DATE ('$DAY/$MONTH/$YEAR 00:00:00', 'dd/mm/yyyy hh24:mi:ss')"; 
 
 echo "create table $FILENAME as select  * from  data1 where timemoment between $START_DATE AND $END_DATE;" > $PATH_/$QWERY_FILE;
 echo "select count(*) from $FILENAME;" >> $PATH_/$QWERY_FILE;
 echo "disconnect;" >> $PATH_/$QWERY_FILE;
 echo "quit;" >> $PATH_/$QWERY_FILE;
 echo " " >> $LOCAL_DIR/$FILENAME.log;
 echo "************************************************" >> $LOCAL_DIR/$FILENAME.log;
 echo "************ CREATE TABLE $FILENAME ************" >> $LOCAL_DIR/$FILENAME.log;
 echo "************************************************" >> $LOCAL_DIR/$FILENAME.log;
 echo "$ORACLE_HOME/bin/sqlplus $ORA_PASSW/$ORA_USER@dev10 @$PATH_/$QWERY_FILE " >> $LOCAL_DIR/$FILENAME.log;
`$ORACLE_HOME/bin/sqlplus $ORA_PASSW/$ORA_USER@dev10 @$PATH_/$QWERY_FILE cat >> $LOCAL_DIR/$FILENAME.log`;
 
 echo " " >> $LOCAL_DIR/$FILENAME.log;
 echo "******************************************************************" >> $LOCAL_DIR/$FILENAME.log;
 echo "** EXPORT TABLE $FILENAME to $LOCAL_DIR/$FILENAME.dmp" >> $LOCAL_DIR/$FILENAME.log;
 echo "*****************************************************************" >> $LOCAL_DIR/$FILENAME.log;
`$PATH_/ssh_backup.expect $IPSERV $PASS $USER $TMP_DIR $LOCAL_DIR $FILENAME $ORA_USER $ORA_PASSW >> $LOCAL_DIR/$FILENAME.log`;
 
 echo " " >> $LOCAL_DIR/$FILENAME.log;
 echo "******************************************************************" >> $LOCAL_DIR/$FILENAME.log;
 echo "** scp $IPSERV/$TMP_DIR/$FILENAME.dmp to $LOCAL_DIR/$FILENAME.dmp" >> $LOCAL_DIR/$FILENAME.log;
 echo "******************************************************************" >> $LOCAL_DIR/$FILENAME.log;
 #`$PATH_/sftp.expect $IPSERV $PASS $USER $TMP_DIR $LOCAL_DIR $FILENAME $ORA_USER $ORA_PASSW >> $LOCAL_DIR/$FILENAME.log`;
   
 echo " " >> $LOCAL_DIR/$FILENAME.log;
 echo "******************************************************************" >> $LOCAL_DIR/$FILENAME.log;
 echo "** IMPORT $LOCAL_DIR/$FILENAME.dmp to TABLE $FILENAME" >> $LOCAL_DIR/$FILENAME.log;
 echo "******************************************************************" >> $LOCAL_DIR/$FILENAME.log; 
 echo "$ORACLE_HOME/bin/imp $ORA_USER/$ORA_PASSW file=$LOCAL_DIR/$FILENAME.dmp grants=y constraints=y" >> $LOCAL_DIR/$FILENAME.log;
 $FILENAME.log`;
[color=red] `$ORACLE_HOME/bin/imp $ORA_USER/$ORA_PASSW file=$LOCAL_DIR/$FILENAME.dmp grants=y constraints=y`;[/color] # тут проблема
  
из консоли скрипт работает вполне себе прилично, а вот в cron-e шаг imp-орта игнорируется, пробовал expect-ом результат такойже. В чем может быть затык (в crontab устанавливаю ORACLE_HOME=/opt/oracle/product/11gR1/db)?
Также почемуто для imp-а не получается сливать в лог инфу выводимую ей на терминал, подозреваю что она не использует для этого стандартный вывод, это тоже проблема, подскажите как научить её сливать инфу выводимую на терминал в лог?
...
Рейтинг: 0 / 0
невыполняется imp-орт из cron-а
    #37408678
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
echo $LD_LIBRARY_PATH
...
Рейтинг: 0 / 0
невыполняется imp-орт из cron-а
    #37409013
SSukholet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
On Tue, 23 Aug 2011 23:13:32 +0700, ilua <nospam@sql.ru>; wrote:

> Автор: ilua
> Всем доброго времени суток.
> Есть две Оракловые базы находящиеся на разных машинах (одна рабочаяя,
> другая резервная)
А чего бы DBLINK не поднять и не ограничится одним sqlplus'ом?
Транзакционная целостность, бла-бла, всё хорошо?




--
Остаюсь искренне Ваш,
Станислав Сухолёт
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
невыполняется imp-орт из cron-а
    #37410142
ilua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SSukholet спасибо оч удобный вариант(кратко и аккуратно) так и буду делать скорее всего.
Но есть желание разобраться в сложившейся ситуации
Журавлев Денис
Код: plaintext
1.
su oracle; 
echo $LD_LIBRARY_PATH;

возвращает пустую строку. Cам скрипт из-под пользователя оракл работает.

Может кто еще подскажет ответ на вопрос авторТакже почемуто для imp-а не получается сливать в лог инфу выводимую ей на терминал, подозреваю что она не использует для этого стандартный вывод, это тоже проблема, подскажите как научить её сливать инфу выводимую на терминал в лог?
...
Рейтинг: 0 / 0
невыполняется imp-орт из cron-а
    #37410186
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
$ imp dddd 1>out 2>&1
много раз давим enter
$ cat out

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Import: Release 11.2.0.2.0 - Production on Wed Aug 24 16:57:05 2011

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

Password: 

IMP-00004: invalid username or password
Username: Password: 

IMP-00058: ORACLE error 1017 encountered
ORA-01017: invalid username/password; logon deniedUsername: Password: 


imp дурацкие вопросы задает, не вылетает с ошибкой, silent режима нет. Вы посмотрите может у вас imp все еще висит? ps -ef|grep imp
...
Рейтинг: 0 / 0
невыполняется imp-орт из cron-а
    #37410284
ilua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Денис спасибо, так работает. Осталось осознать, получается мы stderr направляем в stdout который в свою очередь назначаем в файл. Выходит imp использует stderr для вывода ? И что вы имели ввиду под silent режимом? imp запустил с параметрами вроде весь результата в фай слился нормально.
ps -ef|grep imp ничего ненаходит, что логично - imp работает не фоново, еслиб imp повис то я думаю и скрипт который его вызывает тоже бы висел
...
Рейтинг: 0 / 0
невыполняется imp-орт из cron-а
    #37410318
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iluaДенис спасибо, так работает. Осталось осознать, получается мы stderr направляем в stdout который в свою очередь назначаем в файл. Выходит imp использует stderr для вывода ?ну вот так, да. У вас наверно stderr попадал в cron а тот наверно у вас в dev/null завернут.


ilua И что вы имели ввиду под silent режимом?
sqlplus imp exp пытаются интерактивно общаться с пользователем, переспрашивают пароль, доппараметры, иногда sqlplus висит годами из джоба, ждет когда ему пароль скажут, хочется non-interactive режим.
...
Рейтинг: 0 / 0
невыполняется imp-орт из cron-а
    #37410322
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обычно все используют параметр log у imp/exp т.е.
imp ...... log=...../implog.log
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / невыполняется imp-орт из cron-а
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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