Oracle数据库备份和恢复利器——RMAN

时间:2022-10-20 11:51:37

Oracle数据库备份和恢复利器——RMAN

摘要:RMAN (Recovery Manager) 是Oracle数据库的一种物理备份和恢复工具,具有占用资源少、备份效率高、恢复速度快、支持在线备份和恢复等特点,在Oracle数据库管理中得到了广泛应用。本文详细阐述了RMAN的运行机制、工作原理,并结合具体案例和笔者多年使用经验介绍了其环境配置和使用方法。

关键词:Oracle数据库;数据备份;数据恢复;RMAN

中图分类号:TP309.3 文献标识码:A 文章编号:1007-9599 (2012) 13-0000-02

一、引言

数据是各类计算机应用系统的基础,不论是普通的企业级应用系统,还是学校、银行等各类网上服务系统,以及政府部门的电子政务系统等,数据永远是应用系统中价值最高、最为核心的内容,因此保证数据的高安全性成为各应用系统持续、不间断运行的基础。然而,各种突发事件诸如网络威胁、硬件故障、火灾等,都使系统数据的安全性面临着巨大挑战。

为了应对突发事件引起的系统数据破坏,保证数据的安全性和完整性,需要对数据进行定期备份,从而在紧急情况下恢复备份数据使服务快速恢复。数据备份通常分为逻辑备份和物理备份两种方式。逻辑备份和物理备份两种方式的原理不同,因此需要不同的备份工具。目前作为常见数据库之一的Oracle数据库,在数据备份和恢复上提供了多种灵活、方便的备份工具和方法。逻辑备份工具主要有导入/导出(Import/Export)工具、数据泵等,物理备份工具就是Recover Manager(RMAN)。对于Oracle数据库来说,目前市场上第三方备份软件都是通过调用RMAN接口实现的。

本文从保障系统数据安全的角度出发,首先分析了Oracle备份和恢复工具——RMAN的特点,然后介绍利用RMAN的功能,并建立合理备份方案,及故障时如何快速恢复数据库系统。

二、RMAN简介及其特点

RMAN(Recovery Manager) 是Oracle数据库的一种物理备份和恢复工具,具有占用资源少、备份效率高、恢复速度快、支持在线备份和恢复等特点。

(一)RMAN采用数据块级备份,而不是数据文件级的备份。块级备份将备份和恢复的最小单位从数据文件降到数据块,这对数据的备份和恢复都会带来明显的好处。

1.对备份而言,块级备份可以带来两个优势以有效减少备份量,提高备份效率。首先是增量备份技术。默认情况下Oracle会启动数据块更改跟踪特性,数据变更时,后台进程Change Tracking Writer(CTWR)将发生变化的数据块记录到名为“change tracking file”的文件中[1],这样增量备份无需读取整个数据文件,直接备份变更数据。其次是空值压缩和无用块压缩技术。数据文件中的数据块可以分为三种:从来没被使用过的数据块、正在使用的数据块和曾经使用过但当前已经过期不用的数据块。在10.2.0.1及之前版本,RMAN备份时会忽略掉第一种数据块,即空值压缩,在10.2.0.2及以后版本RMAN会只备份第二种数据块,进一步提高备份效率。这就是无用数据块压缩[2]。

2.对数据恢复来说,其优势主要体现在对业务的影响降到最低。在只有少量数据块受损需要恢复的情况下,可以执行数据块恢复。数据块恢复时,不仅数据库是在线的,需要恢复的数据文件和表空间也是在线的,这样可以在不中断业务的情况下直接恢复受损数据。

(二)在合理配置、充分利用重做日志的前提下,RMAN能够支持联机备份,并支持指定时间点恢复。

重做日志(简称日志,包含联机重做日志和归档重做日志)是Oracle数据库的重要组成部分。联机重做日志(简称联机日志)文件中保存了对数据库的所有修改记录,包括DML或DDL语句对数据库的修改,而每个修改都被SCN (System Change Number)号唯一标识[3]。联机日志文件至少两组,循环使用。数据库的日志就像是数据库录像带,SCN就是录像带上的进度标识。归档日志模式和非归档日志模式是根据联机日志文件重用前是否归档而划分的数据库工作模式。默认情况下,数据库运行在非归档模式。可以在mount状态下通过命令切换数据库的运行模式:SQL> alter database archivelog/noarchivelog;

在数据库恢复时,日志对数据一致性的作用至关重要。联机备份时数据文件没有一致性检查,所以直接用联机备份恢复出来的数据库不具备一致性,必须通过日志重新执行一次数据库的变更历史,数据库才会达到一致。如果数据库运行在非归档日志模式下,由于联机日志重用时覆盖早先的记录,造成日志不完整,无法重现数据库的变更历史,所以不支持在线备份,不支持时间点恢复,只能恢复到上次离线备份时的数据库状态。在归档日志模式下运行,联机日志重用前被写入归档日志中,日志是完整的,数据库可以再现历史,所以支持联机备份,支持指定时间点的数据恢复(不完全恢复)。这对于发生人为错误,如误删除用户等非常重要。如果发生数据库崩溃,联机重做日志完整前提下,就可以保证数据的零丢失(完全恢复)。

三、环境配置

RMAN的备份设置可以在RMAN命令窗口通过命令“show all”查看所有当前的配置。通常客户仅需要根据实际情况配置备份保存策略(Retention policy)。Oracle支持两种策略:恢复窗口策略和冗余策略[3]。恢复窗口策略以备份有效时间为首要考虑,可以设置备份的有效时间。如设置备份保存时间为14天的保存策略:

RMAN> configure retention policy to recovery window of 14 days;

对于增量备份来说,如果有增量备份没有过期,其对应的全备则不会过期。冗余策略以冗余为首要考虑。下面的命令设置有效冗余为3

RMAN>configure retention policy to redundancy 3;

上一篇:新型医院智能呼叫系统 下一篇:灰色聚类在大学生综合素质评价中的应用