rman增量備份指令碼

season0891發表於2014-01-08
#!/bin/bash
#edit: daniel
#date:2012-03-08
#auto backup database
#load Environment variables
myweek=`date +%a`
mydate=`date +%Y%m%d`

su - oracle -c 'cat >> /home/oracle/.bash_profile' << EOF
export mydir=/home/oracle/log
EOF
#Sunday
if [ "$myweek" == "Sun" ]; then
su - oracle -c 'rman target / log=${mydir}/backup.log append' <
run
{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup incremental level 0 database
include current controlfile format '/home/oracle/backup/backup_%T_%s_%p.lv0' plus archivelog delete all input format '/home/oracle/backup/backup_%T_%s_%p.arc';
release channel c1;
release channel c2;
}
EOF
#Monday
elif [ "$myweek" == "Mon" ]; then
su - oracle -c 'rman target / log=${mydir}/backup.log append' <
run
{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup incremental level 2 database include current controlfile format '/home/oracle/backup/backup_%T_%s_%p.lv2';
release channel c1;
release channel c2;
}
EOF
#Tuesday
elif [ "$myweek" == "Tue" ]; then
su - oracle -c 'rman target / log=${mydir}/backup.log append' <
run
{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup incremental level 2 database include current controlfile format '/home/oracle/backup/backup_%T_%s_%p.lv2';
release channel c1;
release channel c2;
}
EOF
#Wednesday
elif [ "$myweek" == "Wed" ]; then
su - oracle -c 'rman target / log=${mydir}/backup.log append' <
run
{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup incremental level 1 database include current controlfile format '/home/oracle/backup/backup_%T_%s_%p.lv1';
release channel c1;
release channel c2;
}
EOF
#Thursday
elif [ "$myweek" == "Thu" ]; then
su - oracle -c 'rman target / log=${mydir}/backup.log append' <
run
{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup incremental level 2 database include current controlfile format '/home/oracle/backup/backup_%T_%s_%p.lv2';
release channel c1;
release channel c2;
}
EOF
#Friday
elif [ "$myweek" == "Fri" ]; then
su - oracle -c 'rman target / log=${mydir}/backup.log append' <
run
{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup incremental level 2 database include current controlfile format '/home/oracle/backup/backup_%T_%s_%p.lv2';
release channel c1;
release channel c2;
}
EOF
#Saturday
elif [ "$myweek" == "Sat" ]; then
su - oracle -c 'rman target / log=${mydir}/backup.log append' <
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup incremental level 0 database include current controlfile format '/home/oracle/backup/backup_%T_%s_%p.lv0' plus archivelog delete all input format '/home/oracle/backup/backup_%T_%s_%p.arc';
release channel c1;
release channel c2;
}
EOF
fi

注意:backup.log內容是累計增加的,所以要在執行指令碼之前建立一個backup.log檔案

http://blog.itpub.net/28698327/viewspace-1067909/

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/90618/viewspace-1068331/,如需轉載,請註明出處,否則將追究法律責任。

相關文章