Задача: автоматизировать создание бэкапов Oracle
- Создаем скрипт rman.
- Создаем шелл скрипт
- Создаем задание в cron’е
- Скрипт Rman
Скрипт абсолютно стандартный:
RUN { crosscheck archivelog all; delete expired archivelog all; BACKUP AS COMPRESSED BACKUPSET INCREMENTAL LEVEL 0 DATABASE PLUS ARCHIVELOG; DELETE NOPROMPT OBSOLETE; }
Особо нечего и комментировать.
Этот скрипт пишем с помощью vi и сохраняем в папку. Я сохранил как: /u01/app/oracle/backup-scripts/backup-incr-0.rms.
2. Создаем шелл-скрипт
#!/bin/bash export NLS_DATE_FORMAT="dd-month-yyyy hh24:mi:ss" export ORACLE_SID=eisgs001 export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/dbhome_1 /u01/app/oracle/product/12.1.0.2/dbhome_1/bin/rman target / cmdfile=/u01/app/oracle/backup-scripts/backup-incr-0.rms log=/u01/app/oracle/backup-scripts/backup-incr-0.log
В нем я поменял переменную окружения NLS_DATE_FORMAT поскольку, стандартный вывод дат rman’ом, т.е. только даты меня не совсем устраивает. Прикольно знать что начало бэкапа файла данных и конец его произошли в один день, но хотелось бы знать подробности
файл я сохраняю как: /u01/app/oracle/backup-scripts/backup-incr-0.sh
После этого для пользователя oracle даю права на выполнение этого файла chmod u+X /u01/app/oracle/backup-scripts/backup-incr-0.sh
3. Создание задания в cron’е
Для того чтобы войти в режим редактирования планировщика задач набираем
[oracle@odadb1 ~]$ crontab -e
в файле в каждой строке указаны задания. Формат следующий:
minute hour day month dayofweek command
- minute — любое целое число от 0 до 59
- hour — любое целое от 0 до 23
- day — любое целое от 1 до 31 (день должен быть корректным, если указан месяц)
- month — любое целое от 1 до 12 (или короткое название месяца, например: jan, feb и так далее)
- dayofweek — любое целое от 0 до 7, где 0 или 7 означает Воскресенье (или короткое название дня недели, например: sun, mon и так далее)
- command — команда, которая должны быть выполнена.
Соответственно, поскольку задание должно выполняться каждую ночь в два часа добавляем новую строку:
00 2 * * * /u01/app/oracle/backup-scripts/backup-incr-0.sh