RMAN备份概念_关于RMAN增量备份(RMAN INCREMENTAL BACKUP)

本文详细介绍了Oracle数据库的增量备份机制,包括级别0和级别1的差异及累积备份,以及块更改跟踪如何提升备份性能。在恢复过程中,RMAN优先选择增量备份以加快速度。此外,还讨论了RMAN的增量备份算法和恢复策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

增量备份只拷贝那些从上一次备份以来更改过的数据块。可以使用RMAN创建数据文件,表空间或整个数据库的增量备份。

缺省情况下,RMAN做完全备份。数据文件的完全备份包含被备份的文件中的每个分配的块。数据文件的完全备份可以是映像拷贝,在这种情况中每个数据块都会被拷贝。它也可以存储在备份集,在这种情况中没有使用的数据文件块可能会被跳过

完全备份对后来的增量备份没有影响。映像拷贝总是完全备份,因为它包含数据文件的所有数据块。备份集缺省是完全备份,因为它可以潜在地包含数据文件中的每个数据块,虽然未使用的块压缩意味着从未使用的块被排除在外,在某些情况下,当前未使用的块也被排除在外(详情请参考“备份集的RMAN块压缩”章节)。

完全备份不能是增量备份策略中的一部分,也就是说,它不能作为后来的增量备份的母体。


1.关于多级增量备份

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

级别0的增量备份,是后来的增量备份的基础,它拷贝所有包含数据的块级别0的增量备份和完全备份的唯一不同是完全备份从不包含增量策略。因此,级别0的增量备份是大于0的级别的增量备份的母体的完全备份。

级别1的增量备份可以是以下两者中的一个类型:
1) 差异增量备份,备份在最近的级别1或0的增量备份之后所有更改的块。
2) 累积增量备份,备份最近的级别0的增量备份之后的所有更改的块。

增量备份缺省是差异的增量备份。

级别0的增量备份可以是备份集或映像拷贝,但级别1的增量备份只能是备份集

注:当恢复时间比磁盘空间更重要的时候,累积的备份比差异的备份更适合,因此在恢复过程中更少的增量备份必须被应用。

备份文件的大小只取决于修改过的块的数量,增量备份的级别和增量备份的类型(差异或累积)。


1.1.关于差异增量备份

在级别1的差异备份中,RMAN备份自最近的级别1(累积或差异)或级别0的增量备份以来所有更改过的块。

例如,在级别1的差异备份中,RMAN确定最近发生了哪个级别1的备份,然后备份那个备份之后所有更改过的块。如果没有级别1可用,那么RMAN拷贝从基础级别0的备份以后所有更改过的块。

如果在当前或父转生(in either the current or parent incarnation)中没有级别0的备份可用,那么根据兼容模式的设置值不同行为也有所不一样。当兼容设置>=10.0.0时,RMAN拷贝从文件创建以来所有更改过的块,否则RMAN生成级别0的备份。

在这里插入图片描述
在上图Figure 8-2的示例中,每周发生以下备份活动:
1) 星期天,级别0的增量备份备份数据库中所有在使用的数据块。
2) 星期一到星期六,每天级别1的差异备份备份从最近的级别1或0的增量备份以后所有更改过的数据块。星期一的备份拷贝星期天级别0备份以后更改过的块,星期二的备份拷贝星期一级别1的备份以后更改过的块等等。


1.2.关于累积增量备份

在级别1的累积备份中,RMAN备份自当前或父转生(in either the current or parent incarnation)中最近的级别0的增量备份以来所有使用(注:应该是更改过)的块。

累积的增量备份通过确保从任何一个特定的级别只需要一个增量备份来减少需要还原操作的工作。累积的增量备份比差异备份要求更多的空间和时间,因为它们复制先前的相同级别的备份完成的工作。

在这里插入图片描述
在上图Figure 8-3的示例中,每周发生以下备份活动:
1) 星期天,级别0的增量备份备份数据库中所有在使用的数据块。
2)星期一到星期六,每天级别1的差异备份备份从最近的级别0的增量备份以后所有更改过的数据块。因为最近的级别0的备份在星期天创建,星期一到星期六的级别1的备份备份星期天备份以后所有更改过的块。


2.关于块更改跟踪

增量备份的块更改跟踪特性通过在块更改跟踪文件中记录每个数据文件的更改过的块来改善增量备份的性能。

块更改跟踪文件是存储在数据库区域中的小的二进制文件。当redo产生时,RMAN跟踪更改过的块。

如果启用块更改跟踪,那么RMAN使用更改跟踪文件为增量备份鉴别更改过的块,这样避免需要扫描数据文件中的每个块。只有当增量级别大于0时,RMAN使用块更改跟踪,因为级别0的增量备份包含所有块。


3.关于增量备份算法

以下是了解RMAN用来做增量备份的算法时必不可少的概念:
1)检查点SCN,每个数据文件有一个数据文件检查点SCN,可以在视图列V$DATAFILE.CHECKPOINT_CHANGE#中查看(V$DATAFILE_HEADER.CHECKPOINT_CHANGE#)。所有SCN低于这个SCN的更改保证会在文件中。当级别0的增量备份还原时,还原数据文件包含当级别0的备份创建时文件拥有的检查点SCN。当级别1的增量备份应用到文件时,文件的检查点SCN向前移动到当级别1的增量备份创建时文件拥有的SCN。

2) 增量开始SCN
这个SCN只应用到级别1的增量备份。所有SCN大于或等于增量开始SCN的块都会包含在备份中。SCN低于增量开始SCN的块不会包含在备份中。增量开始SCN通常是级别1的备份的母体(parent)的检查点SCN。

3)块SCN
数据文件中的每个数据块记录了最近对块做的更改的SCN。

当RMAN对文件做级别1的增量备份时,RMAN读取文件,检查每个块的SCN,然后为这个备份备份SCN大于或等于增量开始SCN的块。如果备份是差异的,那么增量开始SCN是最近的级别1的备份的检查点SCN。如果备份是累积的,那么增量开始SCN是最近的级别0的备份的检查点

当启动块更改跟踪时,RMAN使用位图来避免读取从增量开始SCN到检查点SC的范围之间没有更改过的块。RMAN仍然检查每个读取的块,使用块的SCN来决定哪个块包含在备份中。

增量备份算法的一个结果是RMAN在恢复过程中应用所有包含更改数据的块,即使是对使用NOLOGGING选项创建的对象做的更改。这样,如果还原一个在NOLOGGING更改之前做的备份,那么增量备份是恢复这些更改的唯一途径。


4.关于增量备份的恢复

在介质恢复过程中,RMAN检查还原文件来决定是否可以使用增量备份来恢复它们。如果有选择,RMAN总是选择增量备份而不是归档redo日志,因为应用块级别的更改比应用redo更快。

在恢复过程RMAN不一定需要还原一个数据文件的基础的增量备份来应用增量备份到数据文件。例如,可以还原数据文件的映像拷贝,然后使用增量备份来恢复。



来源:《Oracle Database Backup and Recovery User's Guide,19c》
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值