linux环境下oracle备份脚本

#!/bin/sh
source /home/oracle/.bash_profile
$ORACLE_HOME/bin/rman <<EOF
connect target /
run{
allocate channel 'd1' type disk;
allocate channel 'd2' type disk;
allocate channel 'd3' type disk;
allocate channel 'd4' type disk;
backup full tag 'dbfull' format '/archive/backup/full%u_%p_%c' database;
sql 'alter system archive log current';
backup format '/archive/backup/%T_arch_%s_%p' archivelog all delete input;
release channel d1;
release channel d2;
release channel d3;
release channel d4;
}
list backup;
exit;
EOF
echo "-------------------------end------------------------------";date


crontab的格式:
minutes|hours|day of month|month|day of week|
下面是在CRONTAB里面的语句
03 23 * * 0 /home/oracle/backupscript/b_fullbackup.sh
00 02 01 * *
上面是一个全备份。

下面是一个一零级备份的脚本:
source /home/oracle/.bash_profile
$ORACLE_HOME/bin/rman <<EOF
connect target /
run{
allocate channel 'd1' type disk;
allocate channel 'd2' type disk;
allocate channel 'd3' type disk;
allocate channel 'd4' type disk;
backup incremental level 0 cumulative tag 'db0' format '/home/oracle/backup/db0%u_%s_%p' database;
sql 'alter system archive log current';
backup filesperset 4 archivelog all delete input;
delete noprompt obsolete;
release channel d1;
release channel d2;
release channel d3;
release channel d4;
}
list backup;
crosscheck backup;
delete noprompt expired backup;
delete noprompt obsolete;
exit;
EOF
echo "-------------------------end------------------------------";date

下面是一个一级备份脚本:

source /home/oracle/.bash_profile
$ORACLE_HOME/bin/rman <<EOF
connect target /
run{
allocate channel 'd1' type disk;
allocate channel 'd2' type disk;
allocate channel 'd3' type disk;
allocate channel 'd4' type disk;
backup incremental level 1 cumulative tag 'db1' format '/home/oracle/backup/db1%u_%s_%p' database;
sql 'alter system archive log current';
backup filesperset 4 archivelog all delete input;
delete noprompt obsolete;
release channel d1;
release channel d2;
release channel d3;
release channel d4;
}
list backup;
crosscheck backup;
delete noprompt expired backup;
delete noprompt obsolete;
exit;
EOF
echo "-------------------------end------------------------------";date




ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1;
export ORACLE_HOME
ORACLE_SID=orcl1;
export ORACLE_SID
rq=" data+'%m%d' "
/u01/app/oracle/product/10.2.0/db_1/bin/exp system/oracle file=/bak/backup/exp$rq.dmp full=y

你可能感兴趣的:(oracle,sql,linux,脚本,bash)