探索ORACLE之RMAN_06备份策略
作者:吴伟龙
在前几次的博文中已经谈完了备份的所有内容,但是为了更加适应企业的自动备份化需求在今天的课程中可以谈谈如何构建和规划一个可以实现自动对数据进行备份的策略,从而减轻DBA的压力以及提高数据恢复的概率。
1、如何制定备份策略
在制定备份策略一定要遵循可恢复性及高效性原则来制定。在制定备份策略的时候尽可能的降低磁盘开销和恢复所需的时间。
1.1 通过编辑备份脚本来实现按照规则的备份:
创建0级增量备份
run{
allocate channel c1 type disk; ----分配备份通道
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level 0 tag'leve0' format ----定义备份级别
'/volume/level0/leve0%u_%s_%p' database ----设定备份文件存储路径
include current controlfile; ----同时备份控制文件
sql 'alter system archive log current';
backup filesperset 3 format ----备份归档日志
'/volume/archiv/arch_leve0_%u_%s_%p'
archivelog all delete input; ---备份完成归档日志后删除
release channel c1; ---关闭通道,和上面的allocate对应。
release channel c2;
release channel c3;
}
创建一级增量备份
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level 1 tag 'leve1' format
'/volume/level1/leve1%u_%s_%p' database
include current controlfile;
sql 'alter system archive log current';
backup filesperset 3 format
'/volume/archiv/arch_leve1_%u_%s_%p'
archivelog all delete input;
release channel c1;
release channel c2;
release channel c3;
}
创建二级增量备份
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level 2 tag 'leve1' format
'/volume/level2/leve2%u_%s_%p' database
include current controlfile;
sql 'alter system archive log current';
backup filesperset 3 format
'/volume/archiv/arch_leve1_%u_%s_%p'
archivelog all delete input;
release channel c1;
release channel c2;
release channel c3;
}
1.2 制定有效的计划任务(参考上一篇博文中的方式):
星期 |
差异增量 |
星期天 |
0级 |
星期一 |
1级 |
星期二 |
1级 |
星期三 |
1级 |
星期四 |
1级 |
星期五 |
2级 |
星期六 |
2级 |
[oracle@ora01scripts]$ crontab -l
0 2 * * 0 oraclerman target / cmdfile='/opt/data/scripts/leve0.sh'
0 2 * * 1 oraclerman target / cmdfile='/opt/data/scripts/leve1.sh'
0 2 * * 2 oraclerman target / cmdfile='/opt/data/scripts/leve1.sh'
0 2 * * 3 oraclerman target / cmdfile='/opt/data/scripts/leve1.sh'
0 2 * * 4 oraclerman target / cmdfile='/opt/data/scripts/leve1.sh'
0 2 * * 5 oraclerman target / cmdfile='/opt/data/scripts/leve2.sh'
0 2 * * 6 oraclerman target / cmdfile='/opt/data/scripts/leve2.sh'