1、编写0级备份的rman脚本
vim /jobs/backup/back_0.sh
#!/bin/bash
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=orcl
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export LANG=en_US
rman target / log ‘/tmp/x.log‘ << EOF
run{
allocate channel c1 type disk;
backup incremental level 0 format "/home/oracle/inc0_%u_%T" database;
release channel c1;
}
EOF
2、编写1级备份的rman脚本
vim /jobs/backup/back_1.sh
#!/bin/bash
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=orcl
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export LANG=en_US
rman target / log ‘/tmp/y.log‘ << EOF
run{
allocate channel c1 type disk;
backup incremental level 1 format "/home/oracle/inc1_%u_%T" database;
release channel c1;
}
EOF
3、给予脚本相应的权限
chmod 755 /jobs/backup/back_0.sh
4、加入crontab
crontab -e
0 0 * * 0 /jobs/backup/back_0.sh
0 0 * * 1,2,3,4,5,6 /jobs/backup/back_1.sh
周日的0点0分做0级备份,周1~6进行1级备份
补充:
对于保存的日志,如果需要保留,可以考虑用天来命名取代固定命名。
可以将backup_0.sh改造成:
vim /jobs/backup/back_1.sh
#!/bin/bash
BKDIR=/backup/`date +%Y%m%d%H%M`
LOGFILE=/logs/`date +%Y%m%d%H%M`.log
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=orcl
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export LANG=en_US
rman target / log $LOGFILE << EOF
run{
allocate channel c1 type disk;
backup incremental level 1 format "$BKDIR" database;
release channel c1;
}
EOF
补充:
可以使用指令文件来进行控制命令。
vim backup.rmn
run {
backup database;
}
rman target / cmdfile=backup.rmn log=backup.log
利用这种方式也能进行方便的自动备份功能。