#!/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
#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文件
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28698327/viewspace-1067909/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/28698327/viewspace-1067909/