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:

Anonymous said...
This comment has been removed by a blog administrator.

Post a Comment