一、增量与差异

关于Incremental增量备份级别:

Oracle 9i 共有五种级别 0 1 2 3 4,0级最高-4级最低,0级是1级的基础以此类推。

Oracle 10g官方文档明确指出增量备份只有0和1两种级别(太多增量级别其实没有太大的意义),不过实际执行增量操作时,仍然能够指定多个级别,最大能够支持4级增量备份。

Oracle 11g 增量备份只有0和1两种级别。

问题: RMAN differential Backups 是什么?它和 RMAN cumulative Backups 有啥区别?它们俩和 RMAN incremental backup 一样吗?

答案: Differential 和 cumulative 是 RMAN incremental backups 的两种类型。有时候、RMAN differential backups 被叫做 RMAN cumulative Backups
                然而、RMAN incremental backups 、有时、也会被叫做 RMAN differential Backups。以上这些情况、很容易让人迷惑不解
         
         ● Differential backup (for level 1 parents only)差异备份

differential backup 是默认备份类型 、其原理是寻找最近一次的 level 1 或 level 0、找到后把从这次开始有发生变化的数据块捕获
            Differential backups 速度较快、因为仅存储少量变化的块、但需要更长的时间来恢复
            
         ● Cumulative backup (for level 0 or level 1 parents)  累积备份          
            对于 Cumulative backup 、RMAN 备份了最近一次 level 0 之后所有发生变化的数据块
            比起 Differential backup、Cumulative backup 的主要优势是恢复时间较短、缺点是备份时间长和磁盘开销大
         
         二者的简单比较如下:
         
         ● 恢复速度
            
            Cumulative backups 能更快地把文件覆盖回去(restore)、因为只需在少量被覆盖的文件上应用日志(recover)
            
         ● 备份速度
            
            Differential backups 能花费更少的时间、因为不涉及到之前的备份、然而、代价是要更长的时间来恢复
            
         ● 磁盘空间
            
            Cumulative backups 需要更多的磁盘空间、因为它会进行重复劳动、把之前的备份也给备份
         
         从本质上讲、选 D 还是 C 归根于在磁盘开销和恢复速度上做权衡、在其他条件都相等的前提下、恢复速度所占的权重优先级最高
         因为这样做会最小化非计划的宕机时间、如果你有足够的磁盘和夜间备份的时间、你可以选择 C
         可是、倘若磁盘空间不够、而且、也没有足够的时间来备份、那么、你可以选择 Differential backups、记住了、这是需要长时恢复的
         
         
         ① Differential Incremental Backup (for level 1 parents only)
         
         当使用 Differential backups、RMAN 寻找最近一次 level 1 之后有变化的块、如果找不到 level 1、则会捕获从最近一次 level 0 之后所有变化的块

② Cumulative Incremental Backup (for level 0 or level 1 parent backups)
         
         对于 Cumulative backups、RMAN 备份了所有 level 0或 level 1 之后所有变化的块 
         和 Differential backups 一样、Cumulative backups 也仅备份变化的块、这些块是自从上次备份以来所有发生变化的块
         
         如果上次备份也是 Cumulative backups、那么当前的 Cumulative backups 只是记录 "变化的变化"、产生更小的数据变化集
         因此、比起 Differential backups 、恢复的时间变得更短

二、增量与差异备份语法

备份命令如下:
  零级备份
  backup incremental level 0 database;
  一级差异增量
  backup incremental level 1 database;
  一级累计增量
  backup incremental level 1 cumulative database;

增量备份原理每一个数据块上都包含一个SCN,SCN可以标示最近一次对于Block的变更。在增量备份的过程中,RMAN读取每一个数据块的SCN与之前备份的SCN相比较,从而判断出Block是否发生了变化,然后根据此进行备份。但是需要注意的是,在早期版本,即使是数据块只有小的变化,RMAN扫描的时间也可能会极其漫长。Oracle 10g引入了Block Change Tracking特性解决了这一问题。

Oracle的增量备份分为差异增量备份(Differential Incremental Backup)和积累增量备份(Cumulative Incremental Backup)两种 。

差异增量备份(Differential Incremental Backup)差异备份是RMAN生成的增量备份的默认类型。对于差异备份来说,RMAN会备份自上一次同级或低级差异增量备份以来所有发生变化的数据块。例如:我们在星期天执行0级差异增量备份操作,这个备份操作会备份整个数据库。根据这个0级备份,我们在星期一执行1级差异增量备份操作。该备份操作将备份自周日0级备份以来所有发生变化的数据块。在周二时1级增量备份将备份所有自周一1级备份以来发生变化的数据块。如果要执行恢复操作,就需要星期一、星期二生成的备份以及星期天生成的基本备份。下面是一个执行1级差异增量备份操作的示例:backup incremental level=1 database;

累计增量备份(Cumulative Incremental Backup)累计增量备份是指备份自最近的级别0备份以来所变化的数据块。累积增量备份能减少恢复时间。例如:我们在星期天执行0级差异增量备份操作,此时会备份整个数据库。随后,我们星期一执行1级备份操作,这种备份不同于差异备份,在星期二进行另一个1级差异备份操作。需要注意的是:星期二生成的备份不仅包含星期一的差异备份以后发生变化的数据块,而且还含有星期一生成的备份中所包含的数据块。因此,累积备份累积了任何同级或低级增量备份操作包含的所有发生变化的数据块。如果要执行恢复操作,就只需要星期二生成的备份以及星期天生成的基本备份。下面是一个执行1级累积增量备份操作的示例:backup incremental level=1 cumulative database;

转载自:

https://blog.csdn.net/pan_tian/article/details/46780929

https://blog.csdn.net/dba_waterbin/article/details/8747732

原文地址:Incremental Differential vs. Incremental Cumulative Backups

Oracle Rman 增量备份与差异备份的更多相关文章

  1. 阿里云 如何减少备份使用量? mysql数据库的完整备份、差异备份、增量备份

    RDS for MySQL备份.SQL审计容量相关问题_MYSQL使用_技术运维问题_云数据库 RDS 版-阿里云 https://help.aliyun.com/knowledge_detail/4 ...

  2. sql server 数据库备份,完整备份,差异备份,自动备份说明

    Sql server 设置完整备份,差异备份说明 在数据库管理器中,选择要备份的数据库,右键找到“备份” 然后可以按照备份的方式进行备份. 关于文件的还原,作以下补充说明: 步骤为: 1.在需要还原的 ...

  3. 日志备份和差异备份还原中的常见问题示例(转自&邹建)

    --创建测试 CREATE DATABASE db GO    --正常备份 BACKUP DATABASE db TO DISK='c:\1.bak' WITH FORMAT BACKUP LOG  ...

  4. sqlserver2008r2还原完整备份和差异备份及自动删除过期备份

    本文主要内容: 还原完整和差异备份 删除超过1个月的备份 注:保证SQL Server代理服务启动,并把服务设置为自动启动 完整备份和差异备份还原原理: 差异备份是完整备份的补充,只备份上次完整备份后 ...

  5. SQL Server 2012完全备份、差异备份、事务日志备份和还原操作;

    SQL Server 2012完全备份.差异备份.事务日志备份和还原操作: 1.首先,建立一个测试数据库,TestA:添加一张表,录入二条数据:备份操作这里我就不详细截图和讲解了.相信大家都会备份,我 ...

  6. Sql server 2008 的完成备份和差异备份还原

    当数据库数据量不大的情况下用 Sqlserver 的完全备份就完全可以了 步骤为: 1.在需要还原的数据库上右键选择如图 2.在“常规”选项中点击“源设备”选取磁盘上备份好的.bak文件后,勾上“还原 ...

  7. SQL Server 2000中的完整备份、差异备份操作

    在SQL Server 2000中,假定我们拥有一个数据库为:Test, 现在需要它每天19:00自动进行一次备份,并且以后一旦发生数据库错误,我们都可以通过备份文件将数据库恢复到任何一个备份过的时刻 ...

  8. SQLSERVER20008 完整备份和差异备份

    --差异备份 DIFFERENTIAL ) ),)+'.bak' BACKUP DATABASE [testbackup] TO DISK=@name WITH DIFFERENTIAL, NOFOR ...

  9. 完整备份和差异备份数据库的SQL脚本

    工作中需要创建SQL Job对数据库进行定期备份,现把脚本记录如下. 1. 完整备份: -- FULL declare @filename varchar(1024), @file_dev varch ...

随机推荐

  1. ArchLinux For Arm 树莓派开机自启动脚本rc.local

    今天折腾了下树莓派的迅雷固件,迅雷的安装很顺利,解压直接运行portal 就搞定了, 但是自启动就有问题了,由于新版的ArchLinux切换到systemd,不但rc.conf省了,连rc.local ...

  2. QT学习资源

    http://www.qter.org/portal.php?mod=view&aid=26

  3. PHP获取当前页面的网址

    PHP获取当前页面的网址 function GetCurUrl() { $url = 'http://'; if(isset($_SERVER['HTTPS']) AND $_SERVER['HTTP ...

  4. SpringJDBC源码分析记录

    我们使用JdbcTemplate时,调用的query方法为: public <T> List<T> query(String sql, @Nullable Object[] a ...

  5. MOOC视频学习

    mooc地址 2018/2/6-2/7学习计划: 学习第一周(1.1-1.4)内容. 学习笔记 2018/2/8-2/9学习计划: 学习第二周(1.5.2.1-2.5)内容. 学习笔记 2018/2/ ...

  6. python工具

    目录 Python工具 1. argparse 2. tqdm 3. os, shutil 4. csv Python工具 1. argparse import argparse parser = a ...

  7. 环境安装问题:tensorflow 问题记录 python2.7 和 python3.6发生冲突

    似乎是pip在python2.7和python3.6中发生冲突 我想用pip但是python2里没有装pip 但是tensorflow是和python2相关联的 所以我在python2中装pip的过程 ...

  8. Linux(CentOS 6.5) 下安装MySql 5.7.18 二进制版本粗浅攻略

    鉴于Linux和mysql因不同版本,安装方式也不同,所以在阅读本攻略前,请确保各位同学的版本和我的Linux.MySql 版本一致. 如果不一致,只能参考. 我的版本: Linux CentOS 6 ...

  9. Codeforces Beta Round #94 div 1 D Numbers map+思路

    D. Numbers time limit per test 2 seconds memory limit per test 256 megabytes input standard input ou ...

  10. 安装cartographer

    # Build and install Cartographer. git clone https://github.com/hitcm/cartographer.git cd cartographe ...