Для резервного копирования применяется язык запросов maxl, похожий на SQL, но имеющий множество ограничений.
По-этому автоматизацию будем делать на Cygwin ;)
Подготовим конф-файл со списком приложений для резервного копирования backup_prepare.cfg, с его помощью будем готовить Maxl скрипт. Содержимое конф файла:
Код скрипта maxl prepare_max.sh, с его помощью подготавливаем Maxl скрипт, выполняющий бекап :
Основной скрипт резервного копирования:
Если статья была вам полезна - кликните на баннер или кнопку Donate :)
По-этому автоматизацию будем делать на Cygwin ;)
Подготовим конф-файл со списком приложений для резервного копирования backup_prepare.cfg, с его помощью будем готовить Maxl скрипт. Содержимое конф файла:
application1 application2 #application3 #откомментированое приложение не бекапится
Код скрипта maxl prepare_max.sh, с его помощью подготавливаем Maxl скрипт, выполняющий бекап :
#!/bin/bash if [ "$1" = "" ];then echo "You should provide config file!" exit 0 fi #сначала подготовим скрипт, для извлечения списка кубов echo "set message level all;" > $temp_dir/prepare_back_conf.tmp echo "spool on to '$temp_dir\\prepare_max.tmp';" >> $temp_dir/prepare_back_conf.tmp echo "login $hyperion_login $hyperion_passwd on $hyperion_server;" >> $temp_dir/prepare_back_conf.tmp grep -v "#" $1 |sed '/^$/d' |while read line ;do echo "display database on application $line;" >> $temp_dir/prepare_back_conf.tmp done echo "spool off;" >> $temp_dir/prepare_back_conf.tmp # # получаем имена кубов LF=$temp_dir/prepare_max.tmp $maxl $temp_dir/prepare_back_conf.tmp # создаем скрипт для резервного копирования echo "spool on to 'backup_maxsh_$date_pref.txt';" > backup_conf.cfg echo "set timestamp on;" >> backup_conf.cfg echo "login $hyperion_login $hyperion_passwd on $hyperion_server;" >> backup_conf.cfg grep -v "#" $1| while read line ;do # останавливаем все запросы на приложении echo "alter system kill request on application $line;" >> backup_conf.cfg # добавляем задержку в 3сек для остановки запросов echo 'shell "sleep 3";' >> backup_conf.cfg # останавливаем приложение echo "alter system unload application $line;" >> backup_conf.cfg cubes=`grep -wi "$line" $temp_dir/prepare_max.tmp | grep -v "MAXL" | awk {'print $2'}` for i in $cubes;do echo "alter database '$line'.'$i' force archive to file '"$backup_dir"\\"$line"_"$i".arc';" >> backup_conf.cfg echo "shell 'ls -la "$backup_dir"\\"$line"_"$i".arc || echo ERROR on "$backup_dir"\\"$line"_"$i".arc' ; " >> backup_conf.cfg done done echo "spool off;" >> backup_conf.cfg # End Prepare
Основной скрипт резервного копирования:
#/bin/bash date_pref=`date +%y%m%d` # подготавливаем maxl скрипт резервного копирования . prepare_max.sh backup_prepare.cfg 2> $temp_dir/backup_err.log # Запускаем скрипт для бекапа $maxl `cygpath -w backup_conf.cfg` # архивируем 7z.exe a -t7z -mx7 -mmt=64 -m0=lzma2 "$archive_dir\\essbase_"$date_pref".7z" -ssw $backup_dir\\*.arc
Если статья была вам полезна - кликните на баннер или кнопку Donate :)
Комментариев нет:
Отправить комментарий