前言 0.1 解答疑问 本书能够帮助您解答心中的一个疑问。可能正是这个疑问促使您翻开本书;这个疑问也可能是您在日常工作中每天都会遇到的问题。这个问题促使您利用更加复杂的软件和硬件配置来寻求解决问题的方法。这个问题就是:应当怎样平衡可用性和可恢复性呢? 这看起来是一个简单的问题。但是,如果执行过所有的RMAN操作,并且考虑到备份操作、写脚本、配置软件和硬件,以及使用所有类型的自动化磁带机配备服务器,您就会发现一个最基本的问题:怎样维持数据库的运转和可用性、避免性能的降低,同时还要防止数据库发生灾难呢? 正如您想象的那样,Oracle提供了解决这个问题的答案。实际上,Oracle具有能够处理所有事务的高可用性解决方案包。如果仍然遇到了难题,新的Oracle版本也一定能够解决。高可用性是每个数据库开发人员的梦想,而利用Oracle就能够实现这样的梦想! 很遗憾,本书不能介绍Oracle提供的所有高可用性软件,而是详细地讨论了可恢复性的内容。因此,本书能够帮助您生成安全的、不易破坏的、可靠的数据库备份,不需要干预产品的运作。您可能已经了解到,本书将主要介绍RMAN。 Oracle 每个主要的数据库软件版本都捆绑了Recovery Manager(简写为RMAN)。RMAN提供了一个备份和恢复数据库的接口。当然,如果仅仅是这样简单的话,您也不需要我们的帮助。复杂的要求对应着复杂的解决方案,对于RMAN来说也是如此。在没有熟悉RMAN甚至是还不理解其最基本原理的情况下,您都可以使用RMAN执行基本的备份与恢复操作。如果需要使用RMAN和掌握RMAN的基本原理,您可以参阅本书。 RMAN还可以提供许多非常有用的功能,您可以使用这些功能实现更高级的备份与恢复策略。您需要能够恢复单个数据块,并且避免中断单个表之外的其他操作;需要在另一个服务器上克隆数据库,以便用于新的应用测试;需要创建备用数据库以保护系统不会受到与灾难相关的损耗;需要直接在磁带上备份数据,以减轻磁盘存储系统的负荷;还需要管理许多企业级数据库的备份与恢复工作。针对所有这些工作和其他工作,我们介绍了您需要掌握的RMAN完备知识。从最简单的备份操作到最复杂的恢复情况,本书都为您作了详尽的介绍。 0.2 为DBA和系统管理员提供帮助 为Oracle数据库选择稳定可靠的备份策略时,可能出现的最棘手的问题是这个备份策略总是会使数据库管理员和系统管理员的任务出现重叠。选择RMAN作为备份策略也会出现同样的问题。RMAN与Oracle RDBMS的集成意味着必须具备Oracle数据库的实际使用知识。但是,对外部磁带存储设备和网络拓扑结构的依赖又使管理网络计算机系统的能力变得非常重要,这就引发了职责的分工,对两边来说都是个难题。 本书尽可能全面地介绍这些问题。如果您是数据库管理员,我们将为您详细介绍系统管理员在备份系统中应当起到的作用。如果您是系统管理员,我们将详细介绍在数据库中应当执行的步骤及其原因。本书将帮助您实现从数据库内部到磁带存储软件的备份系统。 0.3 更为优秀的RMAN 从Oracle 8.0.3版本(Oracle8的第一个产品版本)开始引入了RMAN。在这之前,Oracle提供的直接在磁带上生成备份的接口使用Export实用程序进行逻辑备份,或使用Enterprise Backup Utility(EBU)。 最初的RMAN版本难免有不尽人意之处,而且存在不少错误。但是,其后的版本添加了一些新的功能,修正了软件故障,并且改进了接口。形象化RMAN版本演化的最好方法是想象一下演示人类进化过程的传统海报。在海报的左边,是一只靠四肢行走的猴子。稍往右看,是一个逐渐直立行走的人,直到最右边,所看到的是一个完全直立行走的现代人。 在Oracle 9i版本中,RMAN的功能更加完备,并且已经成为用于高可用性数据库系统的各种重要策略的必要组件。 0.4 本书主要内容 本书介绍了Oracle 9i, Release 2(9.2.0.0版本)中的最新功能,帮助您充分了解RMAN接口的最新增强功能,并且说明了所增加的新特性。如果某些内容在Oracle9i Release 1中还未涉及到,我们会在文中说明这种情况,不过所有代码示例和体系结构说明都基于RMAN的Oracle9i版本。 如果您使用的仍然是Oracle8i,您应当了解Oracle8i和Oracle9i中用于操作RMAN的命令接口存在一些显著差异。本书的附录C讨论了Oracle8i与Oracle9i之间的主要区别。此外,我们还在书中明确地标注出了那些在Oracle8i中所没有的功能。 除了Oracle8i与Oracle9i之间的差异外,8.1.6版本和8.1.7版本之间也有显著的变化,附录C在简要讨论Oracle8局限性的同时也介绍了这些差异。 0.5 更有效地使用本书 像所有物有所值的技术指南书籍一样,您也能够通过阅读本书来熟悉RMAN及其在高可用性或灾难恢复解决方案中的作用。本书采用由简入繁,循序渐进的方式,一步一步地讨论了从基本原则到设置、备份的内容,最后介绍了高级功能与各种实习。 第Ⅰ部分介绍了Oracle RDBMS中备份与恢复的基本原理,您可以理解RMAN的概念和体系结构。本部分的两章内容是其他章节的基础,我们建议您认真阅读和理解这些概念。如果能够理解该部分中所描述的概念和内部运行机制,您就能轻而易举地理解本书的其余部分。 第Ⅱ部分讨论了RMAN的初始设置。首先介绍了所有可能的RMAN配置选项,然后讨论了RMAN与介质管理器的集成。介质管理器允许用户将备份直接写入磁带设备,它不是由Oracle提供的。目前市场上有多种介质管理器产品,本部分将讨论3种最常用的产品:Veritas Netbackup、Legato Networker和IBM的Tivoli Storage Manager。 第Ⅲ部分为您提供了使用RMAN的基础知识,其范围从最基本的备份操作到最高级的恢复选项。我们将讨论目录维护和查看目录的方法,以便更有效地管理不断存储的备份。最后,还将讨论为优化性能对RMAN备份与恢复进行的调整。 第Ⅳ部分介绍了更高级的功能,让您了解RMAN可以帮助您完成简单备份操作之外的其他任务。本部分的内容包括:如何使用RMAN备份生成数据库的克隆副本和创建备用数据库;根据特殊的需求和要求在Real Application Clusters(RAC)环境中使用RMAN;一系列RMAN案例分析,这些案例深入研究了需要使用RMAN的各种情况。 本书提供了4个附录。附录A是RMAN语法参考,您可以借助该附录成功地构建RMAN命令;附录B探讨了RMAN目录,以及数据库中的V$视图和恢复目录中的rc_*视图;前面提到过的附录C则介绍Oracle8i与Oracle9i之间的语法差异;附录D提供了一个设置测试环境的简要指南,在实现产品备份与恢复策略前,您可以使用这个测试环境来测试各种RMAN功能。 0.6 RMAN实习 我们知道,您可能不会细读书中的所有内容。一本优秀的技术书籍应该是摆放在您计算机旁边,供您随时查阅。 除了概念解释外,本书实际上是一本参考手册。我们在书中综合了各种有用的技术和省时的方法,即使您不熟悉RMAN的整个体系结构,也可以随时运用这些方法。有时候,尤其是在备份与恢复操作中,我们只需要知道该怎么做,而不需要知道为什么要这样做。大家都不希望在周末还让一大堆恢复工作弄得焦头烂额,冥思苦想恢复操作的语法,眼睁睁看着金钱哗哗地流失。 因此,为了突出重点,我们在本书中引入了一些RMAN实习。在这些RMAN实习中,我们提供了用于执行指定操作的代码或用于完成特定项目的一系列步骤,以帮助您快速完成各种工作。这些RMAN为快速方便地解决问题提供了迅捷的方法。 除了RMAN实习之外,本书最后一章的一系列案例分析讨论了多种备份与恢复情况,以及如何处理这些情况。在所介绍的备份与恢复情况中,既有在重新创建控制文件时保留备份元数据的简单情况,也有通过resetlogs命令恢复数据库的复杂情况。 我们再次建议您一章章地阅读本书。理解产品的概念是最重要的,特别是在产品要保护数据库的情况下更是如此。但如果您直接翻到您需要的章节,那也不要紧。 总之,RMAN是一个值得深入研究和充分利用的产品,它能够节省您的时间和精力,并帮助您解决各种问题。