вторник, 29 апреля 2014 г.

backup настроек obiee сервера

Наконец то нашел время написать резеврное копирование натроек BI сервера. Backup написан для UNIX платформы, для корректной работы планировщик надо настроить на ежедневный запуск скрипта.
Такое копирование, может быть крайне полезно при переносе сервера на другую платформу, оно содержит основные необходимые настройки. Так же, его можно использовать для отката отдельных настроек, репозитория или каталога при необходимости.
Чтобы подробно не описывать содержимое настроек и процедуру их переноса, дам  ссылку на удачное русскоязычное описание.
Нечто подобное я уже проделывал вручную несколько раз когда необходимо было срочно сменить сервер, на котором находился OBIEE. Теперь половина этой нехитрой, но очень кропотливой работы автоматизирована. Возможно когда нибудь автоматизирую и вторую половину, но это уже плюшечки, так как пока нет необходимости запуска в постоянную работу копии сервера.
Хочу добавить что копируемые настройки не позволяют "клонировать" сервер, они позволяют сохранить основные изменения (НЕ ВСЕ), внесенные в стандартную конфигурацию OBIEE, а так же сохранить каталог и репозиторий.

Скрипт сохраняет ежедневные копии за последнюю неделю и еженедельные копии за год. Все копии перезаписываются ежегодно, поэтому проблемы со свободным не возникнут. По моим подсчетам годовой backup у меня будет занимать не более 2 Гб.
Итак
#!/bin/bash
#инициализируем пути, для верности используем полные пути
HOME_DIR_PATH=/bi_home
BACKUP_DIR_PATH=/backup/config_backup
DIRN=$BACKUP_DIR_PATH/everyday/`date +%u`
LOG_FILE_NAME=$DIRN/reports_backup.log
CAT_PATH=/bi_home/obiee/instances/instance_prd/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1/catalog/SampleAppLite
REP_PATH=/bi_home/obiee/instances/instance_prd/bifoundation/OracleBIServerComponent/coreapplication_obis1/repository
RESOURCE_PATH=/bi_home/obiee/instances/instance_prd/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1/analyticsRes
POLICE_PATH=/bi_home/obiee/user_projects/domains/prd_domain/config/fmwconfig
INSTANCECONFIG_PATH=/bi_home/obiee/instances/instance_prd/config/OracleBIPresentationServicesComponent/coreapplication_obips1
NQSCONFIG_PATH=/bi_home/obiee/instances/instance_prd/config/OracleBIServerComponent/coreapplication_obis1
WLST_HOME_PATH=/bi_home/obiee/wlserver_10.3/common/bin
#удаляем каталог если он уже существует
rm -rf $DIRN
#создаем каталог заново
mkdir $DIRN
#пишем в лог, архивируем
echo `date` >> $LOG_FILE_NAME
#
#архивируем каталог
tar cfE - $CAT_PATH/* | gzip -9 >$DIRN/bi_catalog.tar.gz
#читаем код возврата
RCODE=$?
#пишем в лог
if [ $RCODE==0 ]; then
echo 'archive ' $DIRN/bi_catalog.tar.gz ' succesful created from ' $CAT_PATH >> $LOG_FILE_NAME
else
echo 'ERROR creating archive ' $DIRN/bi_catalog.tar.gz ' from ' $CAT_PATH 'with code' $RCODE >> $LOG_FILE_NAME
fi
#
#архивируем ресурсы
tar cfE - $RESOURCE_PATH/* | gzip -9 >$DIRN/bi_analytic_res.tar.gz
#читаем код возврата
RCODE=$?
#пишем в лог
if [ $RCODE==0 ]; then
echo 'archive ' $DIRN/bi_analytic_res.tar.gz ' succesful created from ' $RESOURCE_PATH >> $LOG_FILE_NAME
else
echo 'ERROR creating archive ' $DIRN/bi_analytic_res.tar.gz ' from ' $RESOURCE_PATH ' with code ' $RCODE >> $LOG_FILE_NAME
fi
#
#архивируем репозиторий
tar cfE - $REP_PATH/* | gzip -9 >$DIRN/bi_repository.tar.gz
#читаем код возврата
RCODE=$?
#пишем в лог
if [ $RCODE==0 ]; then
echo 'archive ' $DIRN/bi_repository.tar.gz ' succesful created from ' $REP_PATH >> $LOG_FILE_NAME
else
echo 'ERROR creating archive ' $DIRN/bi_repository.tar.gz' from ' $REP_PATH ' with code ' $RCODE >> $LOG_FILE_NAME
fi
#
#копируем политики приложения
cp $POLICE_PATH/system-jazn-data.xml $DIRN/system-jazn-data.xml
#читаем код возврата
RCODE=$?
#пишем в лог
if [ $RCODE==0 ]; then
echo  $DIRN/system-jazn-data.xml  ' succesful created from ' $POLICE_PATH/system-jazn-data.xml >> $LOG_FILE_NAME
else
echo 'ERROR creating a ' $DIRN/system-jazn-data.xml ' from ' $POLICE_PATH/system-jazn-data.xml ' with code ' $RCODE >> $LOG_FILE_NAME
fi
#
#копируем конфигурацию NSQ сервера
cp $NQSCONFIG_PATH/NQSConfig.INI $DIRN/NQSConfig.INI
#читаем код возврата
RCODE=$?
#пишем в лог
if [ $RCODE==0 ]; then
echo  $DIRN/NQSConfig.INI  ' succesful created from ' $NQSCONFIG_PATH/NQSConfig.INI >> $LOG_FILE_NAME
else
echo 'ERROR creating a ' $DIRN/NQSConfig.INI ' from ' $NQSCONFIG_PATH/NQSConfig.INI ' with code ' $RCODE >> $LOG_FILE_NAME
fi
#
#копируем конфигурацию NSQ сервера
cp $INSTANCECONFIG_PATH/instanceconfig.xml $DIRN/instanceconfig.xml
#читаем код возврата
RCODE=$?
#пишем в лог
if [ $RCODE==0 ]; then
echo  $DIRN/instanceconfig.xml  ' succesful created from ' $INSTANCECONFIG_PATH/instanceconfig.xml >> $LOG_FILE_NAME
else
echo 'ERROR creating a ' $DIRN/instanceconfig.xml ' from ' $INSTANCECONFIG_PATH/instanceconfig.xml ' with code ' $RCODE >> $LOG_FILE_NAME
fi
#
#пишем командный файл для сохранения weblogic identity store LDAP
echo "connect('weblogic','password', 'localhost:7001')" >> $HOME_DIR_PATH/policysave.py
echo "domainRuntime()" >> $HOME_DIR_PATH/policysave.py
echo "cd('/DomainServices/DomainRuntimeService/DomainConfiguration/prd_domain/SecurityConfiguration/prd_domain/DefaultRealm/myrealm/AuthenticationProviders/DefaultAuthenticator')" >> $HOME_DIR_PATH/policysave.py
echo "cmo.exportData('DefaultAtn','"$DIRN"/export.ldif', Properties())" >> $HOME_DIR_PATH/policysave.py
#выполняем командный файл для сохранения weblogic identity store LDAP
$WLST_HOME_PATH/wlst.sh $HOME_DIR_PATH/policysave.py  >> $DIRN/wlst.log
rm -rf $HOME_DIR_PATH/policysave.py
echo  $DIRN/export.ldif  ' succesful created from WLST' >> $LOG_FILE_NAME
#
#пишем еженедельный архив
#если номер дня единица
if [ $DIRN == $BACKUP_DIR_PATH/everyday/1 ]; then
    #проверяем что такой недели еще нет, если есть удаляем
    rm -rf $BACKUP_DIR_PATH/everyweek/`date +%U`
    mkdir $BACKUP_DIR_PATH/everyweek/`date +%U`
    #копируем первый день в неделю
    cp $BACKUP_DIR_PATH/everyday/1/* $BACKUP_DIR_PATH/everyweek/`date +%U`/
fi

Комментариев нет:

Отправить комментарий