Wednesday, July 4, 2012
RMAN script to spool log to a file and automate run using Solaris cron job
Create this script file
touch /u01/backup.ksh
add these lines in file
#!/bin/ksh
rman target=/ << EOF
SPOOL LOG to '/u01/dailybackup/rman.log' append;
RUN {
ALLOCATE CHANNEL ch00 TYPE DISK;
ALLOCATE CHANNEL ch01 TYPE DISK;
BACKUP
SKIP INACCESSIBLE
TAG hot_db_bk_level0
FILESPERSET 5
FORMAT '/u01/dailybackup/RMGC/df_%d_%s_%p_%t'
INCREMENTAL LEVEL 0 AS COMPRESSED BACKUPSET DATABASE;
sql 'alter system archive log current';
BACKUP
filesperset 20
FORMAT '/u01/dailybackup/RMGC/al_%s_%p_%t'
AS COMPRESSED BACKUPSET archivelog all delete input;
BACKUP
FORMAT '/u01/dailybackup/RMGC/cntrl_%s_%p_%t'
CURRENT CONTROLFILE;
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
DELETE NOPROMPT OBSOLETE;
DELETE NOPROMPT ARCHIVELOG ALL COMPLETED BEFORE 'sysdate-2′;
}
SPOOL LOG OFF;
EXIT;
EOF
Make this Script executable
chomod u+x /u01/backup.ksh
give ownership to oracle user on script
chown oracle:dba /u01/backup.ksh
create a cron job
crontab -e
append these lines in crontab
30 23 * * * /usr/bin/su – oracle -c "/u01/backup.ksh"
30 23 means this job will run at 23:30 every night
First column (30) means 30 Minutes
Second Column (23) shows hour 23 (11 at night)
First * means every Month
Second * means every week
Third * means everyday of the week (if you want to run it for specific days writh in this format first day- last day e.g. 1-5 (for first 5 days of week)
30 23 * * * /usr/bin/su – oracle /u01/backup.ksh
or
30 23 * * 1,2,3,4,5 /usr/bin/su – oracle /u01/backup.ksh
1 comment:
Post a Comment