【RMAN】RMAN增量备份

一、增量备份

  增量备份主要作用是仅复制上次备份以来已更改的数据块。可以使用RMAN创建数据文件,表空间或整个数据库的增量备份。

  将增量备份作为策略的一部分的主要原因是:

  • 用于基于增量更新备份的策略,其中这些增量备份用于定期前滚数据库的映像副本;
  • 减少每日备份所需的时间;
  • 通过网络备份时节省网络宽带;
  • 恢复时能够使用NOLOGGING选项创建对象的更改。例如,直接插入不会创建重做日志,并且无法使用介质恢复重现其更改的数据条目。但是,这样会更改数据块,因此会通过增量备份进行还原;
  • 能够将物理备用数据库与主数据库同步。可以使用RMAN BACKUP INCREMENTAL FROM SCN命令在主数据库上创建备份,该备份从备用数据库的当前SCN开始,备库可用该备份前滚备用数据库;
  • 减少非归档数据库的备份大小,可以进行增量备份,而不是每次都进行完整的数据库备份。与完全备份一样,如果处于ARCHIVELOG模式,则可以在数据库打开时进行增量备份;如果数据库处于NOARCHIVELOG模式,则只能在一致关闭后进行增量备份。

  Note:完整备份(full backup)不能成为增量备份策略的一部分;它不能成为后续增量备份的父级。

 

二、增量备份算法

  数据文件中的每个数据块都包含一个系统更改号(SCN),它是最近对块进行更改的SCN。在增量备份期间,RMAN读取输入文件中每个数据块的SCN,并将其与父增量备份的检查点SCN进行比较。如果输入数据块中的SCN大于或等于父级的检查点,则RMAN复制该块。

  如果启用块更改跟踪功能,RMAN可以引用更改跟踪文件以识别数据文件中已更改的块,而无需扫描数据文件的完整内容,启用后提高增量备份的效率,但由于要时刻维护块跟踪,系统在平时会增加额外的一点负担。

#开启块跟踪
SQL> alter database enable block change tracking using file '/u01/app/backup/track_block'; Database altered.
#查看块跟踪文件 SQL
> select filename from v$block_change_tracking; FILENAME -------------------------------------------------------------------------------- /u01/app/backup/track_block
#关闭块跟踪 SQL
> alter database disable block change tracking; Database altered.

 

 

三、多级增量备份

  RMAN可以创建多级增量备份。每个增量级别由0或1表示。

  0级增量备份(level 0 incremental backup):相当于全备,可以作为其他增量的父级。

  使用方法:

RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE;

 

 

  1级增量备份(level 1 incremental backup)可分两种:

  • 差异增量备份(A differential incremental backup):备份上一次备份(0级或1级备份)后发生变化的数据;

  默认1级备份是差异备份,级别0的增量备份可以是备份集或映像副本,但级别1的增量备份只能是备份集。

  说明:

  星期天:0级备份将备份此数据库中曾使用过所有的数据块。

  周一至周六:在星期一到星期六的每一天,1级差异增量备份将备份自级别1或0的最新增量备份以来已更改的所有块。星期一备份复制自星期日0级备份以来更改的块,星期二备份复制快自星期一1级备份以来发生的变化,等等。

RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;

 

  • 累计增量备份(A cumulative incremental backup):用于备份上一次0级备份以后所有发生变化的数据;

  说明:

  星期天:0级备份将备份此数据库中曾使用过的所有块

  周一到周六:累计增量级别1级备份会复制自最近0级备份以来更改的所有块。由于最新的0级比分事在星期日创建的,因此星期一到星期六的1级备份会备份自星期日备份以来更改的所有块。

RMAN> BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;

  Note当恢复时间比磁盘空间更重要时,累积备份优于差异备份,因为备份的数量越少恢复时间越快

 

四、使用增量备份恢复数据

  • 在介质回复期间,RMAN会检查还原的文件,以确定是否可以使用增量备份来恢复它们,如果可以使用,那么RMAN总是选择增量备份而不是归档重做日志,因为在块级别恢复比重做日志做要快。

    例如:可以通过0级备份还原(restore)数据文件,然后通过1级增量备份恢复(recover)它们。

  • 使用增量备份策略,只需要创建一个初始级别为0的完整备份和随后的1级增量备份。初始备份和后续增量必须是RMAN备份集,而不是数据副本(copy)。

Note:使用增量备份完整恢复数据库,至少需要一个0级备份、少量增量备份和一些归档重做日志。

 

五、查询RMAN备份进度的SQL

SELECT SID,
        SERIAL#,
        CONTEXT,
        SOFAR,
        TOTALWORK,
        ROUND(SOFAR / TOTALWORK * 100, 2) "%_COMPLETE"
   FROM gV$SESSION_LONGOPS
 WHERE OPNAME LIKE 'RMAN%' AND OPNAME NOT LIKE '%aggregate%' AND
        TOTALWORK != 0 AND SOFAR <> TOTALWORK;

 

posted @ 2021-07-26 10:57  蟹Bro  阅读(806)  评论(0编辑  收藏  举报