oracle 数据库每周定时备份
备份需求:
周日 零级备份
周一 一级增量备份
周二 二级增量备份
周三 二级增量备份
周四 一级增量备份
周五 二级增量备份
周六 二级增量备份
设计如下:
假设备份目的地为 /rmanbak 目录
1、编写各级备份脚本
mkdir -p /rmanbak/scripts
chown -R oracle:oinstall /rmanbak
使用oracle用户新建脚本,脚本如下:
oracle --> cat /rmanbak/scripts/rmanlevel0
run {
allocate channel c1 type disk;
backup
incremental level 0
format "/rmanbak/inc0_%T_%u"
tag monday_inc0
database;
release channel c1;
}
oracle --> cat /rmanbak/scripts/rmanlevel1
run {
allocate channel c1 type disk;
backup
incremental level 1
format "/rmanbak/inc1_%T_%u"
tag monday_inc1
database;
release channel c1;
}
oracle --> cat /rmanbak/scripts/rmanlevel2
run {
allocate channel c1 type disk;
backup
incremental level 2
format "/rmanbak/inc2_%T_%u"
tag monday_inc2
database;
release channel c1;
}
2、编写crontab 脚本
以root用户登录
crontab -e -u oracle
输入如下内容:
45 23 * * 0 rman target / msglog=/rmanbak/baklevel0.log cmdfile=/rmanbak/script/rmanlevel0
45 23 * * 1 rman target / msglog=/rmanbak/baklevel1.log cmdfile=/rmanbak/script/rmanlevel1
45 23 * * 2 rman target / msglog=/rmanbak/baklevel2.log cmdfile=/rmanbak/script/rmanlevel2
45 23 * * 3 rman target / msglog=/rmanbak/baklevel2.log cmdfile=/rmanbak/script/rmanlevel2
45 23 * * 4 rman target / msglog=/rmanbak/baklevel1.log cmdfile=/rmanbak/script/rmanlevel1
45 23 * * 5 rman target / msglog=/rmanbak/baklevel2.log cmdfile=/rmanbak/script/rmanlevel2
45 23 * * 6 rman target / msglog=/rmanbak/baklevel2.log cmdfile=/rmanbak/script/rmanlevel2
rman的路径最好敲全,而且是oracle的rman,非Linux系统的rman,位于 $ORACLE_HOME/bin/ 下面
3、重启 crontab 服务
service crond restart
ok,搞定,你可以定时检查一下日志文件,查看是否备份成功。