Привожу скрипт для автоматизации резервного копирования схем Oracle.
Для начала создадим файл oracle_backup.cfg. Этот файл будет содержать список схем для резервного копирования. Содержимое файла:
В дальнейшем можно включать нужные схемы и выключать ненужные с помощью "#"
Для начала создадим файл oracle_backup.cfg. Этот файл будет содержать список схем для резервного копирования. Содержимое файла:
user1 user2 #user3Первые две схемы подлежат копированию, третья игнорируется.
В дальнейшем можно включать нужные схемы и выключать ненужные с помощью "#"
#/bin/bash oracle_log=oracle_backup.log ora_date=`date +'%y%m%d'` grep -v "#" "oracle_backup.cfg" | sed '/^$/d' | while read line; do # выбираем все не закомментированные схемы из конф файла и удаляем пустые строки. LF="$line"_$ora_date".log" exp $ora_user/$ora_pass@$oracle_sid owner=$line recordlength=65535 buffer=3500000 file="$line"_$ora_date".dat" log=$LF # $ora_user/$ora_pass@$oracle_sid - параметры sysdba, можно изменить на текущего # пользователя при желании. # обработка ошибок: if [ ! -f "$LF" ] ;then # нет лог файла - считаем, что экспорт не удался echo "unknown error while trying to backup $line " >> $oracle_log elif [ `grep -i error $LF | wc -l` -ge "1" ] ; then # проверка лога на наличие сообщений Error # ожидаем: # Export terminated successfully with warnings. subj_error_flag="ERROR" echo -n "$line : " >>$oracle_log grep "terminated" $LF >>$oracle_log else # если скрипт еще не прервался, то считаем экспорт успешным. Выбираем из лога все # сообщения "terminated". Ожидается что сюда попадут сообщения: # Export terminated successfully without warnings. echo -n "$line : " >>$oracle_log grep "terminated" $LF >>$oracle_log fi done ls *.dat | 'xargs' -P 10 pigz -f -9 -n -5 # Архивируем дампы, запускается 10 экземпляров pigz с максимальной компрессией.Если статья была вам полезна - кликните на баннер или кнопку Donate :)
Комментариев нет:
Отправить комментарий