`
elstage
  • 浏览: 79836 次
  • 性别: Icon_minigender_1
  • 来自: 地球
社区版块
存档分类
最新评论

Oracle RMAN物理备份之RMAN增量备份

阅读更多

我们可以用RMAN进行数据库、表空间和数据文件的增量备份。

  如果数据库运行在归档模式,在数据库OPEN状态我们可以进行增量备份;如果数据库处于非归档方式,在数据库CLOSE状态我们也可以进行增量备份。增量备份只备份上次备份以来变化过的数据块。

  每个数据块都包含一个system change number (SCN),记录着该数据块的最后改变。在进行增量备份的时候,RMAN将没给数据块的SCN和父级增量备份的CHECKPOINT SCN进行比较,如果该数据块的SCN大于等于父级的CHECKPOINT SCN,RMAN将备份该数据块。

  为了提高数据库增量备份的性能,我们可以指定变化跟踪文件来监控数据块的改变:

 


SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING;
SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE 'd:/rman_change.f'
REUSE;
           SQL> ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;

  可以通过以下命令查询:

 


SQL> SELECT FILENAME,STATUS FROM V$BLOCK_CHANGE_TRACKING

  移动跟踪文件:

 


SQL>SELECT filename FROM V$BLOCK_CHANGE_TRACKING;
SQL>SHUTDOWN IMMEDIATE;
SQL>HOST COPY OLDFILE NEWFILE
SQL>STARTUP MOUNT;
SQL>ALTER DATABASE RENAME FILE ‘OLDFILE' TO ‘NEWFILE’;
SQL>ALTER DATABASE OPEN;

  如果不能关闭数据库,必须禁用跟踪文件然后移动跟踪文件:

 


ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE 'new_location';

  增量备份分为两种:差异增量备份和累积增量备份。缺省的增量备份是差异增量备份。

  差异增量备份:备份同级或者上级(如果有同级备份,先找同级)备份(差异或者累积)以来变化的数据块。如果找不到同级或者上级(知道LEVEL0),如果ORACLE版本>=10.0.0,RMAN将COPY从数据文件创建开始所有的数据块作为LEVEL1备份;如果ORACLE版本<10.0.0,RMAN将生成LEVEL0备份。

  如下图所示。

  周日:RMAN备份所有被使用过的数据块。周一至周六:RMAN备份自从上次LEVEL0或者LEVEL1备份以来变化的数据块。

  累积增量备份:备份上级备份以来变化的数据块。

 

 

  周日:RMAN备份所有被使用过的数据块。

  周一至周六:RMAN备份自从上次LEVEL0备份以来变化的数据块。     

 

  我们可以看出累积增量备份备份文件要比差异增量备份文件大,因为累积增量备份重复备份了同级别备份的数据块。

  制定一个恰当的备份策略是很重要的,通常我们在有50%的数据块改变的时候,进行一次LEVEL0级别的备份。可以通过以下查询来获得数据块增量备份已经备份50%以上的数据块。

 


SELECT FILE#, INCREMENTAL_LEVEL, COMPLETION_TIME, BLOCKS, DATAFILE_BLOCKS
 FROM V$BACKUP_DATAFILE
 WHERE INCREMENTAL_LEVEL > 0
 AND BLOCKS / DATAFILE_BLOCKS > .5
 ORDER BY COMPLETION_TIME;

  增量备份示例:

 


RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE;
RMAN> BACKUP INCREMENTAL LEVEL 1 TABLESPACE SYSTEM DATAFILE
                                'ora_home/oradata/ tools01.dbf';
RMAN> BACKUP INCREMENTAL LEVEL = 1 CUMULATIVE TABLESPACE users;

  增量追加备份:前滚镜像拷贝

  ORACLE文档原文:Incrementally Updated Backups: Rolling Forward Image Copy Backups.

  增量追加备份工作原理:首先创建一个文件镜像拷贝,然后定期把从上次镜像拷贝最大SCN以来变化的数据块追加到镜像拷贝文件中。增量追加备份可以达到快速恢复的目的,如果是每天进行增量追加的话,在进行恢复的时候,我们最多应用一天的REDO数据就可以完成恢复。

  创建增量追加备份,格式如下:

 


BACKUP... FOR RECOVER OF COPY WITH TAG

  一个基础的增量追加备份示例:简称basic脚本:

 


RUN ...{
  RECOVER COPY OF DATABASE WITH TAG 'incr_update';
  BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'incr_update'
      DATABASE;
  }

  为了理解上述脚本,我们先看一下如果没有数据文件拷贝和增量备份运行这两个脚本的情况。

  1、如果没有LEVEL0备份或者备份文件拷贝,执行BACKUP INCREMENTAL LEVEL 1…… FOR RECOVER OF COPY WITH TAG……不能产生LEVEL1增量备份文件,但是RMAN会按照指定的tag在DATAFILE对应的目录下创建一分镜像文件拷贝。

  2、如果没有LEVEL0备份或者备份文件拷贝,执行RECOVER COPY OF DATABASE WITH TAG……则生成一些信息但是不产生错误。

  我们看一下整个basic脚本的执行情况:

  第一次运行该脚本没有数据文件拷贝和增量备份所以执行RECOVER COPY OF DATABASE WITH TAG 'incr_update'没有任何结果;执行BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'incr_update' DATABASE将产生数据文件的镜像文件拷贝。

  第二次运行该脚本,由于第一次运行的时候BACKUP INCREMENTAL LEVEL 1…… FOR RECOVER OF COPY WITH TAG……命令产生一个镜像文件拷贝,但是没有LEVEL1的增量备份,所以执行RECOVER COPY OF DATABASE WITH TAG 'incr_update'还是没有任何结果;执行BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'incr_update' DATABASE将产生LEVEL1增量备份。

  第三次运行该脚本,执行RECOVER COPY OF DATABASE WITH TAG 'incr_update'命令将把第二次执行该脚本产生的LEVEL1增量备份追加到镜像文件拷贝,同时又产生一个新的LEVEL1增量备份文件。

  以后再执行该脚本都是把上次产生的LEVEL1的增量备份追加到镜像文件拷贝,然后再产生一个新的LEVEL1的增量备份文件。

  如果需要恢复,我们首先恢复镜像文件拷贝和最后一次LEVEL1增量备份,最后应用REDO.

分享到:
评论

相关推荐

    超经典的Oraclerman增量备份恢复策略.pdf

    在文档中提到的Oracle RMAN增量备份恢复策略包含了以下几个关键知识点: 1. 增量备份的级别:Oracle RMAN支持两种增量备份级别——基于级别0的增量备份和基于级别的增量备份。基于级别0的备份相当于一个完整的备份...

    window oracle rman 增量备份脚本

    window oracle rman 增量备份脚本

    oracle_rman增量备份脚本

    通过以上步骤,我们可以实现一个完整的Oracle RMAN增量备份方案,确保数据库的安全性和可靠性。此外,还可以进一步优化脚本,例如添加错误处理机制、邮件通知等功能,以提高整个备份过程的健壮性和可维护性。

    Oracle rman 增量备份

    理解并熟练掌握Oracle RMAN增量备份的概念和操作,对于数据库管理员来说至关重要,因为这不仅可以优化备份和恢复流程,还能在数据丢失时快速恢复服务,减少业务中断的时间。在实际应用中,还应注意备份策略的灵活性...

    Oracle RMAN 增量备份方案

    ### Oracle RMAN 增量备份方案 #### 一、Oracle RMAN 概述与增量备份简介 Oracle Recovery Manager(RMAN)是Oracle数据库提供的一个强大的工具,它可以帮助管理员进行数据库备份、恢复以及灾难恢复等工作。RMAN...

    windows下的oracle数据库rman自动备份和恢复.pdf

    Oracle数据库备份策略是指使用RMAN实现数据的增量备份。备份策略的目的时一旦发生故障需要快速恢复数据库。备份策略包括: 1. 每周进行两次Level0的数据全备份。 2. 其余时间进行Level1的增量备份。 3. 每天对...

    Oracle-RMAN增量备份恢复测试记录

    Oracle-RMAN增量备份恢复测试记录 Oracle-RMAN增量备份恢复测试记录是指使用Oracle Recovery Manager(RMAN)工具对Oracle数据库进行增量备份和恢复的测试记录。本记录涵盖了增量备份的基本概念、备份策略及恢复、...

    记一次oracle rman增量备份恢复计划

    注: 增量备份模式为cumulative(累积模式) 1. 周日:0级增量备份 1. 周一:1级增量备份 1. 周二:1级增量备份 1. 周三:1级增量备份 1. 周四:0级增量备份 1. 周五:1级增量备份 1. 周六:1级增量备份 ...

    Oracle RMAN增量备份恢复测试记录.docx

    Oracle RMAN 增量备份恢复测试记录 Oracle RMAN 是 Oracle 数据库管理系统中的一种备份和恢复工具,主要用于数据库的备份和恢复。下面是 Oracle RMAN 增量备份恢复测试记录的知识点总结: 一、增量备份的基本概念 ...

    Oracle 11g R2 Rman备份与恢复_刘耀龙的博客-CSDN博客_rman备份.pdf

    Oracle 11g R2 的 RMAN (Recovery Manager) 是 Oracle 数据库管理系统中的一个关键工具,主要用于数据库的备份和恢复。RMAN 提供了一种高效且灵活的方式来管理和保护数据库,确保在数据丢失或系统故障时能够快速恢复...

    windows上oracle数据库rman自动备份策略

    RMAN是Oracle数据库的内置组件,它提供了全面的数据保护功能,包括完整备份、增量备份、差异备份、表空间备份等。RMAN可以与媒体管理软件配合,实现跨磁盘、网络和磁带的灵活备份策略。 二、RMAN备份类型 1. 完全...

    rman增量备份图解

    Oracle的RMAN(Recovery Manager)是Oracle数据库管理系统中用于数据保护的重要工具,它提供了多种备份类型,包括全量备份和增量备份。增量备份进一步分为差异增量和累积增量,这两种方式各有特点,适用于不同的备份...

    Oracle19c rac备份数据通过rman恢复到单实例

    本文将以一个具体案例为基础,详细介绍如何通过RMAN将Oracle 19c RAC的备份数据恢复到单实例环境。 #### 准备阶段 1. **环境配置**: - 在目标服务器上配置环境变量,确保与源RAC环境一致。 - 安装相同版本的...

    Rman增量备份Level012脚本

    Oracle Rman增量备份Level012脚本,公司用的oracle rac,asm的备份恢复都是通过RMAN,已实践!!

    OracleRMAN增量备份恢复测试记录.docx

    ### Oracle RMAN 增量备份恢复测试记录 ...通过对上述文档的详细记录和分析,我们可以清楚地了解到Oracle RMAN增量备份恢复的具体流程和技术要点,这对于维护和管理Oracle数据库的安全性和稳定性具有重要的参考价值。

    Oracle rman catalog备份

    Oracle RMAN(Recovery Manager)是Oracle数据库管理系统中一个强大的工具,主要用于数据库的备份、恢复以及维护。在“Oracle RMAN catalog备份”这个主题中,我们将深入探讨RMAN如何使用catalog进行备份操作,并...

    Oracle-RMAN增量备份恢复测试记录.docx

    Oracle-RMAN增量备份恢复测试记录 Oracle-RMAN增量备份恢复测试记录是对Oracle数据库进行增量备份和恢复的测试记录,旨在记录增量备份和恢复的过程、命令和结果。下面是该测试记录的详细说明和知识点: 1. 概述: ...

    oracle RMAN 备份恢复总结

    总的来说,Oracle RMAN 是数据库管理员的强大工具,它的块级别备份、增量备份、自动化特性和与其他备份软件的兼容性,使得数据库的保护和恢复更加高效和可靠。理解和熟练使用RMAN对于保障Oracle数据库的安全运行至关...

Global site tag (gtag.js) - Google Analytics