Иногда приходится восстанавливать базу данных на какое-то конкретное время, делать это вручную весьма рутинно и скучно, поэтому решил таки автоматизировать и написать скриптик. Сразу скажу что rman'ом не пользуюсь, т.к. ну не dba я, потому просто и не довелось его освоить (буду исправляться! :)), на все нет времени, много других задач. Ежедневно делаю холодные копии и пакую архивлоги, обычно хватает холодных копий, но иногда все же требуется восстанавливать на конкретное время, поэтому восстанавливаю требуемую холодную копию/архивлоги/контроллы и используя sqlplus накатываю архивлоги. Скрипт аналогично сам находит требуемые копии, распаковывает, накатывает архивлоги, теперь вместо хх часов, буду тратить порядка 2 минут на запуск скрипта с нужными параметрами, ну если все резервные копии есть и хранятся в необходимом порядке, иначе скрипт выдаст ошибку и придется продолжить вручную...
Скрипт написан на bash. Писался и отлаживался на онлайн платформе onlinegdb.com. Для проверки скрипта была создана структура папок и файлов как на рабочем сервере (см. комментарии в скрипте), так же написаны функции-заглушки для sqlplus и sendmail. Потом слегка доделал скрипт после пары запусков на живом сервере.
PS: скрипт все же немного сырой, он не сработает если нужно восстановить в течении текущего дня, надо будет это исправить и скорее всего как-то надо его декомпозировать и сделать возможность пропуска каких-то этапов.
Ссылка на скрипт на onlinegdb.com
Комментариев нет:
Отправить комментарий