您的位置:首页 > 数据库 > Oracle

Oracle rman备份计划任务设计

2020-06-04 08:10 295 查看

使用crontab计划任务,和rman备份脚本,做一个完整的rman自动备份。
1、计划任务设计:

#  crontab -e
00 03 01 * * /home/oracle/rman/dbfull.sh
00 01 * * 0 /home/oracle/rman/db0.sh
00 01 * * 1 /home/oracle/rman/db2.sh
00 01 * * 2 /home/oracle/rman/db2.sh
00 01 * * 3 /home/oracle/rman/db1.sh
00 01 * * 4 /home/oracle/rman/db2.sh
00 01 * * 5 /home/oracle/rman/db2.sh
00 01 * * 6 /home/oracle/rman/db2.sh

计划任务描述:

每个月的1号3点 进行一次完全备份
每个星期日1点 一次level 0=全量备份,并且delete obsolete删除旧的全备份和归档日志备份等冗余
每个星期一1点 一次level 2=累积增量:上次任意级别备份至今的增量(任意一次备份至今)
每个星期二1点 一次level 2=累积增量:上次任意级别备份至今的增量(任意一次备份至今)
每个星期三1点 一次level 1=差异增量:上次全备或lv1至今的增量:无论是否有LV2备份,一律从上次lv1或0至今
每个星期四1点 一次level 2=累积增量:上次任意级别备份至今的增量(任意一次备份至今)
每个星期五1点 一次level 2=累积增量:上次任意级别备份至今的增量(任意一次备份至今)
每个星期六1点 一次level 2=累积增量:上次任意级别备份至今的增量(任意一次备份至今)

2、将脚本放在/home/oracle/rman 并赋予可执行权限。

[oracle@RHEL rman]$ pwd
/home/oracle/rman
[oracle@RHEL rman]$ chmod +x *
[oracle@RHEL rman]$ ll -h
total 32K
-rwxr-xr-x 1 root root 230 Mar 11 15:19 db0.sh
-rwxr-xr-x 1 root root 230 Mar 11 15:19 db1.sh
-rwxr-xr-x 1 root root 230 Mar 11 15:19 db2.sh
-rwxr-xr-x 1 root root 414 Mar 11 15:19 dbfull.rcv
-rwxr-xr-x 1 root root 235 Mar 11 15:19 dbfull.sh
-rwxr-xr-x 1 root root 417 Mar 11 15:19 dbl0.rcv
-rwxr-xr-x 1 root root 402 Mar 11 15:19 dbl1.rcv
-rwxr-xr-x 1 root root 402 Mar 11 15:19 dbl2.rcv

3、脚本内容核对,检查文件夹路径、环境变量是否准确。
dbfull.sh

export ORACLE_HOME=/u01/app/oracle/product/11.2.0.4
export ORACLE_SID=zytk
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
$ORACLE_HOME/bin/rman cmdfile=/home/oracle/rman/dbfull.rcv log=/home/OracleBackup/rmanbak/dbfull_`date '+%Y%m%d'`.log

dbfull.rcv

connect target /
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup full tag 'dbfull' format '/home/OracleBackup/rmanbak/full%u_%s_%p' database include current controlfile;
sql 'alter system archive log current';
backup format '/home/OracleBackup/rmanbak/arch%u_%s_%p' archivelog all delete input;
release channel c1;
release channel c2;
release channel c3;
}

db0.sh

export ORACLE_HOME=/u01/app/oracle/product/11.2.0.4
export ORACLE_SID=zytk
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
$ORACLE_HOME/bin/rman cmdfile=/home/oracle/rman/dbl0.rcv log=/home/OracleBackup/rmanbak/db0_`date '+%Y%m%d'`.log

db1.sh

export ORACLE_HOME=/u01/app/oracle/product/11.2.0.4
export ORACLE_SID=zytk
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
$ORACLE_HOME/bin/rman cmdfile=/home/oracle/rman/dbl1.rcv log=/home/OracleBackup/rmanbak/db1_`date '+%Y%m%d'`.log

db2.sh

export ORACLE_HOME=/u01/app/oracle/product/11.2.0.4
export ORACLE_SID=zytk
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
$ORACLE_HOME/bin/rman cmdfile=/home/oracle/rman/dbl2.rcv log=/home/OracleBackup/rmanbak/db2_`date '+%Y%m%d'`.log

db0.rcv

connect target /
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level 0 format '/home/OracleBackup/rmanbak/db0%u_%s_%p' database skip readonly;
sql 'alter system archive log current';
backup format '/home/OracleBackup/rmanbak/arch%u_%s_%p' archivelog all delete input;
delete obsolete;
release channel c1;
release channel c2;
release channel c3;
}

db1.rcv

connect target /
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level 1  format '/home/OracleBackup/rmanbak/db1%u_%s_%p' database skip readonly;
sql 'alter system archive log current';
backup format '/home/OracleBackup/rmanbak/arch%u_%s_%p' archivelog all delete input;
release channel c1;
release channel c2;
release channel c3;
}

db2.rcv

connect target /
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level 2  format '/home/OracleBackup/rmanbak/db2%u_%s_%p' database skip readonly;
sql 'alter system archive log current';
backup format '/home/OracleBackup/rmanbak/arch%u_%s_%p' archivelog all delete input;
release channel c1;
release channel c2;
release channel c3;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: