oracle10g RMAN增量备份策略

简介:

       最近为一个新库做备份策略,今天简单的写了下来,供大家参考。

      最开始的数据一般数据量在不大的情况下,最还每天做全备份是最好的,这样在做故障恢复的时候是方便的,也是最简单的,通常最简单的方法是我们每个人追求的,复杂了自己也会绕在里面容易出错。

      在随着业务的增长,随之带来的数据量的增长之后,我们在考虑做增量备份,减少备份数据量减少了每次备份时间,降低了系统的持续负载,但同时增加了数据恢复的时间,我们通常要选择折中的办法。

rman 备份::
累积增量0级备份
##   mgss_backup_level0.sh

run {
# Hot database level 0 whole backup

allocate channel t1 device type disk; 
backup
  incremental level 0
  skip inaccessible
  tag mgss_db_bk_level0
  filesperset 5
  format 'mgss_level0_%T_%t'
  (database);
#备份归档日志并删除以节省磁盘空间
# backup  archive logs
sql 'alter system archive log current';
backup
  filesperset 20
  format 'mgss_archivelog_%T_%t'
  (archivelog all delete input);
}

累积增量1级备份
##   mgss_backup_level1.sh

run {
# Hot database level 1 cumulative incremental backup

allocate channel t1 device type disk; 
backup
  incremental level 1
  cumulative
  skip offline
  skip readonly
  skip inaccessible
  tag mgss_db_bk_level1_cum
  filesperset 5
  format 'mgss_level1_%s_%p_%t'
    (database);
#备份归档日志并删除以节省磁盘空间
# backup all archive logs
sql 'alter system archive log current';
backup
  filesperset 20
  format 'mgss_archivelog_%s_%p_%t'
  (archivelog all delete input);
}

累积增量2级备份
##   mgss_backup_level2.sh

run {
# Hot database level 2 cumulative incremental backup
allocate channel t1 device type disk; 
backup
  incremental level 2
  cumulative
  skip offline
  skip readonly
  skip inaccessible
  tag mgss_db_bk_level2_cum
  filesperset 5
  format 'mgss_level2_%s_%p_%t'
    (database);
#备份归档日志并删除以节省磁盘空间
# backup  archive logs
sql 'alter system archive log current';
backup
  filesperset 20
  format 'mgss_archivelog_%s_%p_%t'
  (archivelog all delete input);
}

系统环境变量脚本:

 注意{0,1,2} 是三个文件名,这里为了简写,偷懒了嘿嘿。

mgss_backup_level{0,1,2}_cron 


#!/bin/bash

export ORACLE_SID=mgss
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/10g
export LD_LIBRARY_PATH=/u01/app/oracle/10g/lib:/lib:/usr/lib:/usr/local/lib:/usr/X11R6/lib
export TNS_ADMIN=/u01/app/oracle/10g/network/admin
export ORA_NLS33=/u01/app/oracle/10g/nls/data
export ORACLE_OWNER=oracle
export NLS_LANG='simplified chinese_china.zhs16gbk'
export PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/u01/
app/oracle/10g/bin


$ORACLE_HOME/bin/rman target / msglog=/backup/oracle/flash_recovery_area/MGSS/mgss_backup_level{0,1,2}.log                    

cmdfile=/home/oracle/mgss/mgss_backup_level{0,1,2}.sh; 


Cron 任务:


30 23 * *  0  sh /home/oracle/mgss/mgss_backup_level0_cron

30 23 * *  1,2,4,5,6 sh /home/oracle/mgss/mgss_backup_level2_cron

30 23 * *  3 sh /home/oracle/mgss/mgss_backup_level1_cron


逻辑备份::
mgss_backup_logical.sh

#!/bin/bash


EXP_PATH=/backup/oracle/logical
EXPFILE=$EXP_PATH/`date '+mgss_%Y%m%d%H.dmp'`
LOGFILE=$EXP_PATH/`date '+mgss_%Y%m%d%H.log'`

exp epns/gs consistent=y compress=n FULL=Y rows=y buffer=40960000 file=$EXPFILE log=$LOGFILE;
#删除前三天的备份文件
/usr/bin/find  $EXP_PATH -type f -mtime +3 -exec rm {} \;

Cron 任务:

30  3  * *  0 sh /home/oracle/mgss/mgss_backup_logical.sh

 




     本文转自andylhz 51CTO博客,原文链接:http://blog.51cto.com/andylhz2009/438808,如需转载请自行联系原作者



相关文章
|
2月前
|
SQL Oracle 关系型数据库
【Oracle】玩转Oracle数据库(七):RMAN恢复管理器
【Oracle】玩转Oracle数据库(七):RMAN恢复管理器
69 5
|
14天前
|
SQL DataWorks Oracle
DataWorks产品使用合集之datax解析oracle增量log日志该如何操作
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
15 0
|
Oracle 关系型数据库 5G
Oracle 12C rman备份占用大量临时表空间
Oracle 12C rman备份占用大量临时表空间
432 0
|
存储 SQL 监控
Oracle BCT(Block Change Tracking)与增量备份---发表在数据和云
BCT(Block Change Tracking)是Oracle从10g开始有的特性。BCT的原理是记录数据文件里每个数据块的变化,并把这些变化信息保存在BCT的跟踪文件中。
355 0
|
SQL 分布式计算 运维
【大数据开发运维解决方案】Sqoop增量同步mysql/oracle数据到hive(merge-key/append)测试文档
上一篇文章介绍了sqoop全量同步数据到hive, 本片文章将通过实验详细介绍如何增量同步数据到hive,以及sqoop job与crontab定时结合无密码登录的增量同步实现方法。
【大数据开发运维解决方案】Sqoop增量同步mysql/oracle数据到hive(merge-key/append)测试文档
|
SQL 分布式计算 运维
【大数据开发运维解决方案】sqoop增量导入oracle/mysql数据到hive时时间字段为null处理
前面几篇文章详细介绍了sqoop全量增量导入数据到hive,大家可以看到我导入的数据如果有时间字段的话我都是在hive指定成了string类型,虽然这样可以处理掉时间字段在hive为空的问题,但是在kylin创建增量cube时需要指定一个时间字段来做增量,所以上面那种方式不行,这里的处理方式为把string改成timestamp类型,看实验:
【大数据开发运维解决方案】sqoop增量导入oracle/mysql数据到hive时时间字段为null处理
|
SQL 运维 Oracle
【大数据开发运维解决方案】Sqoop增量同步Oracle数据到hive:merge-key再次详解
这篇文章是基于上面连接的文章继续做的拓展,上篇文章结尾说了如果一个表很大。我第一次初始化一部分最新的数据到hive表,如果没初始化进来的历史数据今天发生了变更,那merge-key的增量方式会不会报错呢?之所以会提出这个问题,是因为笔者真的有这个测试需求,接下来先对oracle端的库表数据做下修改,来模拟这种场景。
【大数据开发运维解决方案】Sqoop增量同步Oracle数据到hive:merge-key再次详解
|
Oracle 关系型数据库 数据库
Oracle中的差异增量备份和累积增量备份的区别、rman全备+增量备份常用脚本
Oracle中的差异增量备份和累积增量备份的区别、rman全备+增量备份常用脚本
1275 0
|
存储 网络协议 Oracle
Oracle 12c rman duplicate网卡offload引起文件坏块问题
Oracle 12c rman duplicate网卡offload引起文件坏块问题
199 0

推荐镜像

更多