4.2 执行完全和增量备份

很难找到不将RMAN用作主要备份管理工具的理由。下面列出了一些重要的RMAN功能,如果使用传统备份方法,将无法获得这些功能,或者在使用时会受到严重限制:

忽略不使用的块 如果备份内容是RMAN备份集,则RMAN不备份表中从未执行过写入操作的块,如超过高水位线(High Water Mark, HWM)的块,传统的备份方法无法了解已经使用了哪些块。

备份压缩 除了忽略从未使用的块之外,RMAN还能使用4种Oracle专用二进制压缩模型之一来节省备份设备上的空间。在使用传统备份方法时,虽然可以使用特定于操作系统的压缩技术,但RMAN使用的压缩算法可以尽量压缩Oracle数据块的典型数据类型。虽然在执行RMAN压缩备份或恢复操作期间会稍微增加一些CPU时间,但会明显减少备份需要的介质量;如果通过网络执行备份,还会减少网络带宽。可以为RMAN备份配置多个CPU,以便减少压缩开销。

开放数据库备份 在RMAN中,不必使用带有ALTER TABLESPACE的BEGIN/END BACKUP子句,就可以备份表空间。但是,无论使用RMAN还是传统备份方法,数据库都必须处于ARCHIVELOG模式。

真正的增量备份 对于任何RMAN增量备份,自上次备份以来未更改过的块将不写入备份文件。这将节省大量的磁盘空间、I/O时间和CPU时间。

增量更新备份 对于还原和恢复操作,RMAN支持增量更新备份。将增量备份的数据块应用于先前的备份可以减少执行恢复操作需要的时间和需要访问的文件数量。本章后面将介绍增量更新备份的示例。

块级恢复 为帮助避免恢复操作期间出现的停机时间,RMAN允许在恢复操作中使用块级恢复(只需要还原或修复备份操作期间标记为受损的少量块)。在RMAN修复受损块时,表空间的其余内容和表空间中的对象依然联机。RMAN当前未修复的表行甚至可供应用程序和用户使用。第5章介绍块级恢复。

I/O 通道 在备份或恢复期间,RMAN可以利用不同操作系统进程支持的多个I/O通道,即执行并发I/O。而传统的备份方法,如Unix cp命令,通常是单线程操作。

独立于平台 使用RMAN命令编写的备份的语法形式是完全一致的,与底层的硬件和软件平台无关(即RMAN脚本与平台无关)。不同之处仅在于介质管理通道配置。如果未使用RMAN,而将包含大量cp命令的Unix备份脚本迁移到Windows平台,那么脚本将无法运行。

磁带管理器支持 借助第三方介质管理驱动程序(由磁带备份供应商提供),RMAN 可以支持所有主要的企业备份系统。

编目 将所有RMAN备份信息记录在目标数据库控制文件和可选的存储于不同数据库的恢复目录中。这样一来,与使用“copy”命令手动跟踪操作系统级备份相比,还原和恢复操作较为简单。第3章讨论了目录配置的优势。

脚本功能 如第3章所述,可以将RMAN脚本保存在恢复目录中,以供在备份会话中检索。RMAN紧密集成了脚本语言、方便地维护脚本的功能以及Oracle调度功能,与使用操作系统的本地调度机制在操作系统目录中存储传统操作系统脚本的做法相比,RMAN是更好的选择。

加密的备份 RMAN使用与Oracle Database 12c集成在一起的备份加密功能来存储加密的备份内容。要在磁带上存储加密备份,需要使用“高级安全”选项。

传统备份方法也有超越RMAN的优势,但是这种情况极为罕见。例如,RMAN不支持备份密码文件和其他非数据库文件。如tnsnames.ora、listener.ora和sqlnet.ora。但是,这些文件很少发生变化,而且可以使用传统备份方法(如Unix cp命令)方便地备份和还原它们。

RMAN支持多种不同的备份方法。可以根据需要的可用性、期望的恢复窗口大小以及数据库(或数据库的一部分)参与恢复操作时可以承受的停机时间,选择使用何种方法。

RMAN备份可以是以下5种类型之一:

●完整数据库备份

●完全备份

●增量级别0备份

●差异增量级别1备份

●累积增量级别1备份

RMAN使用以下两种格式中的一种来存储备份内容:备份集或映像副本备份。本节将重点介绍并定义两者的区别,后面将列举每种备份类型的更多示例。