Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

onstat -l ; ontape -a ; <Enter> ; Y ; <Enter>

23 views
Skip to first unread message

Dmitry Tast

unread,
Aug 30, 2000, 3:00:00 AM8/30/00
to

Имеется INFORMIX-OnLine Workgroup Server 7.22, Windows NT
Есть регулярная задачка, которую хотелось бы автоматизировать
Имеется примерно вот какой режим работы.
Раз в 5 дней логи забиваются onstat -l ; -> все без <B>
Делается руками ontape -a ; <Enter> ; Y ; <Enter>
Очень хочется, чтоб сей процесс виселл под шедуллером, но ontape требует
интерактива <Enter> ; Y ; <Enter>

Кто как решал подобную проблемму?


Yarchenko V.P.

unread,
Aug 30, 2000, 3:00:00 AM8/30/00
to

"Dmitry Tast" <koll...@westcall.ru> wrote in message
news:8oivt6$ps6$1...@ws.west-call.com...
> Решается так:
создается файл logfull.bat примерно такого содержания
set INFORMIXDIR=C:\INFORMIX
set INFORMIXSERVER=ol_nt_server
set ONCONFIG=ONCONFIG.ol_nt_server
set PATH=C:\INFORMIX\bin;%PATH%;
set INFORMIXSQLHOSTS=\\NT_SERVER
set DBTEMP=C:\INFORMIX\infxtmp
set CLIENT_LOCALE=RU_RU.1251
set DB_LOCALE=RU_RU.1251
set SERVER_LOCALE=
set DBLANG=
set DBDATE=DMY4.
mode con codepage select=1251
rem c:\informix\bin\onbar -l >>c:\informix\etc\log_full.out
c:\informix\bin\ontape -a <c:\informix\etc\ontape.rpl
>>c:\informix\etc\log_full.out
который в ONCONFIG указывается как alarmprogram
и файл ontape.rpl в который заносятся твои (<Enter>;Y;<Enter>) или
лучше(<Enter>;n ;<Enter>)
Правда в этом случае следующий журнал просто затирает предыдущий. Надо
бы их далее склеивать (copy <name_sum>+<name> <name_sum>) или
переименовывать....?


>

Petro Petin

unread,
Aug 30, 2000, 3:00:00 AM8/30/00
to
Может подойдет что-то подобное этому:

http://www.informix.com.ua/qa/help16.htm

--

// PPA

Vasyl Shulzhenko

unread,
Aug 30, 2000, 3:00:00 AM8/30/00
to ukr.comp.dbms.informix

"Dmitry Tast" <koll...@westcall.ru> wrote in message
news:8oivt6$ps6$1...@ws.west-call.com...
>
> Имеется INFORMIX-OnLine Workgroup Server 7.22, Windows NT
> Есть регулярная задачка, которую хотелось бы автоматизировать
> Имеется примерно вот какой режим работы.
> Раз в 5 дней логи забиваются onstat -l ; -> все без <B>
> Делается руками ontape -a ; <Enter> ; Y ; <Enter>
> Очень хочется, чтоб сей процесс виселл под шедуллером, но ontape требует
> интерактива <Enter> ; Y ; <Enter>
>
> Кто как решал подобную проблемму?

Создать ма-а-аленький файлик размером в 2 байта, в котором только символ
<Enter> (0D 0A) и направить его на вход утилите ontape. Например так:
%informixdir%\bin\ontape -s -L 0 < %DBA%\bat\Enter_yes
Но лучше не дожидаться заполнения всех логов (можно опоздать!) и
использовать способы архивирования логов по их заполнению (RTFM).

--

С уважением,
Василий Шульженко.


Dmitry Krivosheyenko

unread,
Aug 30, 2000, 3:00:00 AM8/30/00
to
Приветствую,

у меня уже достаточно давно работает такой скрипт - он ежедневно делает
бэкап нулевого уровня в файлик, пакует его, посылает админу квитанцию,
удаляет предыдущие бэкапфайлы, оставляя при этом последние три.
Ecли есть замечания и коментарии по поводу его улучшения (кроме
параметризации бэкап директории)- c удовольствием их приму.

==================================================
DATE=`date '+%m-%d-%y_%H_%M'`
HOSTNAME=`uname -n`
USER_LIST=x...@xxx.xxx
BACKUP_FILE=tape_l0_$DATE;

cd /export/home/informix/backdev
cat /dev/null > backup_tape
chmod 660 backup_tape

echo "\n" | /export/home/informix/bin/ontape -s -L 0
EXIT_STATUS=$?

mv backup_tape $BACKUP_FILE
nice -9 /usr/local/bin/bzip2 -z $BACKUP_FILE

find . -perm 660 -ctime +1 -exec rm {} \;
tail -10 $INFORMIXDIR/online.log | mailx -s "$INFORMIXSERVER. Full backup
(level 0) completed. Exit status: $EXIT_STATUS" $USER_LIST
==================================================

--
Regards,
Dmitry Krivosheyenko
E-mail: uli...@formweb.com
ICQ UIN:17396761

Welcome to: http://formweb.com

Vasyl Shulzhenko

unread,
Aug 30, 2000, 3:00:00 AM8/30/00
to ukr.comp.dbms.informix

"Dmitry Krivosheyenko" <uli...@formweb.com> wrote in message
news:39ad2...@news.ukrpack.net...

> Приветствую,
>
> у меня уже достаточно давно работает такой скрипт - он ежедневно делает
> бэкап нулевого уровня в файлик, пакует его, посылает админу квитанцию,
> удаляет предыдущие бэкапфайлы, оставляя при этом последние три.
> Ecли есть замечания и коментарии по поводу его улучшения (кроме
> параметризации бэкап директории)- c удовольствием их приму.

Вот бы еще написал, под какими оболочками Unix это работает и на каких
платформах проверялось.
Да, и еще, а как именно "оставляются последние три" ?
и что делает строка find . -perm 660 -ctime +1 -exec rm {} \;
К сожалению, я уже очень плохо помню (а может и не знал :) Unix-ы

Спасибо за то, что поделился опытом.
--

С уважением,
Василий Шульженко.

> ==================================================

Oleg Pronin

unread,
Aug 31, 2000, 3:00:00 AM8/31/00
to
Привет!
Я когда то сталкивался с такой задачей и проблем тут не много:
-) одного <Enter> не достаточно, так по мере приближения с размеру TAPESIZE
Informix может захотеть сделать вторую tape?
И тогда он будет настоятельно выводить запрос - как правило это просто
зацикливает такого рода скрипты
-) А почему никто не предложил делать один раз (for example from cron) 0
Level, а скриптом заливать Level 1? Он меньше и делаться будет выстрее
-) по поводу 3 последних копий - вариантов много. Один из них
$ls -atr file_regex* |tail -3 > ignore.grep
$ls -atr file_regex*|egrep -v -f ignore.grep выдаст тебе все файлы за
исключением последних трех по твоемй условию
А твоя команда find . -perm 660 -ctime +1 -exec rm {} \; просто удаляет все
созданное более чем день назад и имеющее mode 660 (что есть странно по сути)
"Vasyl Shulzhenko" <vas...@softline.kiev.ua> wrote in message
news:SFTL245...@softline.local...

>
> "Dmitry Krivosheyenko" <uli...@formweb.com> wrote in message
> news:39ad2...@news.ukrpack.net...
> > Приветствую,
> >
> > у меня уже достаточно давно работает такой скрипт - он ежедневно делает
> > бэкап нулевого уровня в файлик, пакует его, посылает админу квитанцию,
> > удаляет предыдущие бэкапфайлы, оставляя при этом последние три.
> > Ecли есть замечания и коментарии по поводу его улучшения (кроме
> > параметризации бэкап директории)- c удовольствием их приму.
>
> Вот бы еще написал, под какими оболочками Unix это работает и на каких
> платформах проверялось.
> Да, и еще, а как именно "оставляются последние три" ?
> и что делает строка find . -perm 660 -ctime +1 -exec rm {} \;
> К сожалению, я уже очень плохо помню (а может и не знал :) Unix-ы
Учиться - всегда пригодиться :-)))

>
> Спасибо за то, что поделился опытом.
> --
>
> С уважением,
> Василий Шульженко.
>
Олег


Dmitry Krivosheyenko

unread,
Aug 31, 2000, 3:00:00 AM8/31/00
to

"Vasyl Shulzhenko" <vas...@softline.kiev.ua> wrote in message
news:SFTL245...@softline.local...
>
> "Dmitry Krivosheyenko" <uli...@formweb.com> wrote in message
> news:39ad2...@news.ukrpack.net...
> > Приветствую,
> >
> > у меня уже достаточно давно работает такой скрипт - он ежедневно делает
> > бэкап нулевого уровня в файлик, пакует его, посылает админу квитанцию,
> > удаляет предыдущие бэкапфайлы, оставляя при этом последние три.
> > Ecли есть замечания и коментарии по поводу его улучшения (кроме
> > параметризации бэкап директории)- c удовольствием их приму.
>
> Вот бы еще написал, под какими оболочками Unix это работает и на каких
> платформах проверялось.
> Да, и еще, а как именно "оставляются последние три" ?
> и что делает строка find . -perm 660 -ctime +1 -exec rm {} \;

когда я создаю файл 'backup_tape' (cat /dev/null > backup_tape), который
прописан в TAPEDEV onconfig-a,
я выставляю ему моды доступа 660.

find --искать файлы
. --начиная из текущей директории
-perm 660 --имеющие моды 660 (тут конечно правильнее было бы искать по
шаблону имени (-name), но исторически сложилось иначе :)
-ctime +1 --имеющие дату создания больше чем 1 день назад
-exec rm {} \; --применительно к найденным файлам выполнить команду
удаления

Все это работало под bash, sh на Solaris 7 SPARC, Solaris 7 Intel


Вообще-то в более полной версии скрипта, я еще делал проверку, на случай
того, что в бэкап не поместился в TAPESIZE,
и соответственно ontape залип, ожидая смены ленты, но делал я это страшно
тупо - проверяя просто перед стартом скрипта наличие в памяти
ontape и если уже хотя бы один экземпляр ontapе присутствовал - рассылал
страшные письма админу.

> К сожалению, я уже очень плохо помню (а может и не знал :) Unix-ы
>

> Спасибо за то, что поделился опытом.
> --
>
> С уважением,
> Василий Шульженко.

Leonids....@dati.lv

unread,
Aug 31, 2000, 3:00:00 AM8/31/00
to
Dmitry Tast wrote:

> Имеется INFORMIX-OnLine Workgroup Server 7.22, Windows NT
> Есть регулярная задачка, которую хотелось бы автоматизировать
> Имеется примерно вот какой режим работы.
> Раз в 5 дней логи забиваются onstat -l ; -> все без <B>
> Делается руками ontape -a ; <Enter> ; Y ; <Enter>
> Очень хочется, чтоб сей процесс виселл под шедуллером, но ontape требует
> интерактива <Enter> ; Y ; <Enter>
>
> Кто как решал подобную проблемму?

Привет, Дмитрий!

По-хорошему, делать резервные копии заполненных журналов надо
немедленно, а не раз в 5 дней, тем более, что с 5-ю днями можно
сильно ошибиться. Как это сделать:

1-й способ (если сервер стартуется автоматически).
Из командного окна с установленными переменными окружения
дать руками команду "ontape -c".

2-й способ (если сервер стартуется вручную).
Создать командный файл, который стартует сервер
"net start <servername>" и следом запускает
'continuous backup of logical logs' командой
"echo '\n' | ontape -c".

3-й способ (полностью автоматический, но без гарантий :-(
Запуск ontape оформить в виде сервиса. Вот описание,
полученное от "старшего брата".

********************************************************************
HOW TO START AN ontape -c AT BOOT TIME
********************************************************************

This procedure is intended only as a workaround for people
not having the possibility of using the ISM, or wanting it
as an example of how to start a .CMD file at boot time.

Note that this procedure allows you to be sure the engine
is online before launching the .CMD file.

This procedure is unsupported. Neither Informix nor Microsoft
will help you in case you use it.

Use at your own risk.

********************************************************************

Author : Dimitri Aguero
Date : May 13, 1997

1) SITUATION

For a big Informix customer developing OnLine on NT,
we need to start automatically an ontape -c at boot time.
No logon procedure must be necessary.
OnLine is configured to boot automatically.

2) MISSION

Develop a procedure to give a solution to the above problem.

3) EXECUTION

3.1) Explanation of the solution chosen

The ontape -c will be started as a service.
To succeed, we will need:
- informix account rights
- to avoid ANY interaction with the terminal
- to get information on how to start a command as
an NT service

3.2) Source of the information

- Go to the CD "NT Ressources Kit" from Microsoft.
- Search for the help explaining the SRVANY.EXE and
the INSTSRV.EXE files help

3.3) Actions taken

3.3.1) On the local hard disk

- Create a directory (I used: %INFORMIXDIR%\ontape_c)
- Copy the INSTSRV.EXE and SRVANY.EXE files from the CD
in the above directory. When you backup your Informix
binaries, you will backup them, too.
- Execute:

cd %INFORMIXDIR%\ontape_c
INSTSRV ontape_c SRVANY.EXE

where ontape_c is the name of the service I created.
You can choose another name.

3.3.2) On the %INFORMIXDIR% directory

Note: INFORMIXDIR=G:\INFORMIX in this example...

3.3.2.1) Create an ENTER.TXT file, containing only
a carriage return. Place it in the
%INFORMIXDIR% directory

3.3.2.2) Create an ONTAPE_C.CMD file containing:

G:
cd %INFORMIXDIR%
CALL SETENV.CMD
START /B ontape -c < ENTER.TXT >> ONTAPE_C.LOG

3.3.3) On the Registry

- Execute the REGEDT32.EXE program
- Go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
- Choose Services, and locate the ontape_c service
you created in step 3.3.1.
You can see now why I chose that name: it is just
after the OnLine service.
- Click in the ontape_c service.
* Add two values:
DependOnService:REG_MULTI_SZ:OnLine
DependOnGroup:REG_MULTI_SZ:

Note that this will avoid starting this service
if the engine is not up and running yet.

* Add a key:
Parameters
- Add three values to Parameters:
Application:REG_SZ:G:\INFORMIX\ONTAPE_C.CMD
AppParameters:REG_SZ:
AppDirectory:REG_SZ:G:\INFORMIX

Note that I explicitly put *my* value of
%INFORMIXDIR%
Yours may be different.
- Close the registry editor

3.3.4) On the Explorer:

- Start the explorer (EXPLORER.EXE)
- Go to Control Panel
- Click on SERVICES
- Locate the ontape_c service
- Configure it as:
* Starting automatically
* owned by informix user
* put the informix account password
* confirm the informix account password

3.3.5) Reboot the server to test

3.4) Test procedure

This procedure will let you know if you succeeded.

3.4.1) Reboot your server
3.4.2) Log on as user informix
3.4.3) Execute these commands

onmode -l
onmode -l
onmode -l
<wait here if your server backs up Logical logs on tape>
onstat -l

You are instructing OnLine to use the next logical log
three times before inspecting them. This simulates a heavy
use of logical logs. Then, you check if logical logs are
backed up or not.

3.4.4) If you see that all logical logs since the last
checkpoint are backed up, then the procedure is
correctly configurated

3.5) Potential problems

3.5.1) Procedure unsupported

This procedure is not supported, neither by Informix nor by Microsoft.

3.5.2) PDC down

If the Primary Domain Controller (PDC) is down, this procedure does
not work.

3.5.3) Bad informix password

Check if you put the right password for informix in step 3.3.4

3.5.4) Not informix when verifying

Check if you are user informix in step 3.4.3
********************************************************************

Так что, как видишь, всё не так просто. По-моему лучшим решением будет
переход на версию 7.31.TC5. Там есть On-Bar и ISM, правда они тоже не
без заморочек.

Leonids....@dati.lv

unread,
Aug 31, 2000, 3:00:00 AM8/31/00
to
"Yarchenko V.P." wrote:

> > Имеется INFORMIX-OnLine Workgroup Server 7.22, Windows NT

> создается файл logfull.bat примерно такого содержания

> который в ONCONFIG указывается как alarmprogram

В версиях ранее 7.31.TC2 параметр ALARMPROGRAM
не работает :-(

Leonids....@dati.lv

unread,
Aug 31, 2000, 3:00:00 AM8/31/00
to
0 new messages