Имитация RMAN

Задача: создать скрипт позволяющий делать дампы, с накоплением копий в пять последних

Решение:

  1. В базе создаем директорию BACKUP_DIR, куда будут складываться дампы.

sqlplus / as sysdba
sql> CREATE OR REPLACE DIRECTORY  BACKUP_DIR AS  'D:\db_backup';
sql> exit

2. Создаем bat-файл

REM Запускаем полный оракловый export data pump с условиями:
REM FULL=Y - экспортим всю базу
REM consistent=Y - данные в дампе согласованы (берется состояние базы на время 
REM начала создания дампа)
REM directory=BACKUP_DIR -дамп ляжет в папку которую мы указали на предыдущем шаге
REM dumpfile=FUll_dmp%date%.dmp - определяем имя файла экспорта с указанием текущей
REM даты
REM logfile=full_log%date%.log записываем лог в файл

expdp.exe '/ as sysdba' FULL=Y consistent=Y directory=BACKUP_DIR dumpfile=FUll_dmp%date%.dmp logfile=full_log%date%.log
REM пакуем созданные  файлы экспорта и лога, опять таки с указанием даты
zip D:\db_backup\dump%date%.zip D:\db_backup\FUll_dmp%date%.dmp D:\db_backup\full_log%date%.log
REM удаляем исходные файлы
del D:\db_backup\full_log%date%.log
del D:\db_backup\FUll_dmp%date%.dmp
REM переходим в папку
cd /d D:\db_backup\
REM выбираем список файлов директории по маске отсортированные по дате за 
REM исключением первых пяти
REM и удаляем файлы из полученного списка
for /f "skip=5 eol=: delims=" %%F in ('dir /b /o-d D:\db_backup\*.*') do @del "%%F"

3. Осталось добавить bat’ник в планировщик задач, при этом помня, что весь скрипт должен выполнится в одни календарные сутки

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *