OracleDatabase11gRMAN备份与恢复
Oracle Database 11g RMAN备份与恢复oracle press的书.第Oracle Database11g备份与恢复体系结构概述欢迎阅读《 Oracle Database 1lg RMaN备份与恢复》一书。如果已经购买了前版的书籍《 Oracle Database10 g RMAN备份与恢复》,您已大概了解本书将要介绍的内容然而,本书不是简单的修订版。 Oracle rman1lg具有许多新特性,因此本书除了修订外还添加了许多新内容。希望您发现这些新的特征和修订非常有用。我们也倾听了读者的反馈并针对一些反馈进行了修改4第部分Orac! e RMAN11g基础知识如果已经使用过RMAN,您可能会关注 Oracle Database 11g中的改动对您已有的备份和恢复策略是否存在负面影响,请不要为此感到担心。RMAN是完全向后兼容的,因此在改为使用 Oracle Database 11g时,不需要改变已有的备份和恢复策略。如果您是刚开始使用RMAN,那么欢迎加入!RMAN是进行 Oracle数据库备份和恢复的极好选择。本书将提供成功使用RMAN所需的所有信息。本书的目的是帮助您尽快掌握RMAN的用法。然而,在开始深入学习RMAN之前,应当对基础的 Oracle备份和恢复有所了解,这在 Oracle Database11g中并没有多大的改动。真正的改动存在于RMAN,在 OraclDatabase 11g中这样的改动有很多。因此,对于熟悉 Oracle备份和恢复的人来说,可以阅读本章以加深印象,或者直接从第2章开始学习。对于 Oracle初学者来说,这部分内容会帮助您更好地学习RMAN,而在随后的章节中将更详细地介绍这些内容。现在,我们就开始学习 Oracle备份和恢复在本章对 Oracle数据库备份和恢复体系结构的概述中,会介绍下面这些知识:备份和恢复概要需要掌握的一些 Oracle术语Oracle数据库物理体系结构Oracle操作内核ARCHIVELOG模式操作与 NOARCHIVELOG模式操作Oracle恢复模式Oracle中的手动备份操作Oracle中的手动恢复操作在阅读本章的 Oracle概述的过程中,您会发现掌握 Oracle产品的工作原理是非常重要的,只有这样才能在恢复数据库时恰当地应用本书所介绍的各种技术。此外,您还会发现备份和恢复数据库并不只是输入一些命令和在磁带驱动器中插入磁带。错误应用某种技术或者不理解某种体系结构原则的直接后果可能会导致大范围的停机,甚至会丢失数据。实际上,我们在遇到一个恢复实例时花费十小时,但当我们对情况进行硏讨后,发现实际上该项工作可能仅需两小时就能完成。在此实例中的时间开销的差别就在于DBA缺乏对其需要恢复的数据库的一些基本理解,该问题导致其对恢复方式的选择存在巨大的错误。在备份与恢复时,切记“在学会跑之前必须先学会走”。最后将介绍您需要了解的有关RMAN和数据库恢复的基础知识。如果您想学习这方面的更多知识,可以参阅Oracle出版社出版的相关书籍。可以在www.oraclepressBooks.com中找到这些书籍。1.1备份和恢复概要首先概括介绍备份和恢复。在精心制订计划来应对数据库可能出现的故障时,通常需要处理两个不同的问题:一个有关体系结构方面的问题是高可用性,该问题与随之而来的另一个问题备份和恢复具有松耦合关系。现在将详细讨论高可用性与备份和恢复第1章 Oracle Database11g备份与恢复体系结构橛述问题。1.1.1高可用性高可用性( High Availability,HA)指的是一种防止用户发现部分或整个系统(如数据库、网络和硬件等)出现故障的体系结构。HA解决方案包括的要素可以是镜像驱动器RAD体系结构、数据库群集、数据库故障切换( failover)模式,当然还包括备份和恢复。HA增加了整个数据库体系结构解决方案的开销,且超过了所选的备份和恢复解决方案的花费。虽然RMAN不是一个HA解决方案,但它是整个数据库解决方案的一部分,而该解决方案可以包括HA。HA解决方案不能取代数据库备份与恢复,但是如何对数据库进行备份与恢复的策略构成了您制定高可用决策的基础。必须明确的是,如何备份和恢复数据库是HA决策的一部分。如果您对HA解决方案有兴趣,那么可以参阅下面的几个HA解决方案:Guard/Stand-by DatabaseReal Application ClustersOracle Replication/StreamsRAID和镜像驱动器其他供应商也提供了不同的HA解决方案。由于HA选项是一个独立于RMAN的主题,因此在本书中不讨论此主题。介绍HA解决方案的书籍有:清华大学出版社引进并出版的《 Oracle database 10g高可用性实现方案—运用RAC、 Flashback和 Data Guard技术》,该书也是由本书作者之一 Matthew Hart先生撰著的。1.12备份和恢复接下来将介绍备份和恢复这将进入本书的主题RMAN贯穿本章将详细介绍 Oracle中的各种备份,不过现在将介绍主要的备份类型:脱机备份(冷备份)和联机备份(热备份)脱机备份在数据库关闭时工作,此时用户不能使用数据库。而联机备份则在数据库运行时工作,此时用户仍然可以继续使用数据库来处理事务。RMAN支持这两种备份类型。事实上,正如您将在后面的章节中所看到的一样,RMAN的某些功能使其成为执行联机数据库备份的较好选择另外,备份数据库的时机不应随意选取。对于产品数据库来说尤其如此,因为用户对数据保护有较高的期望。在决定何时以何种方式备份数据库之前,应当收集用户的需求,并考虑公司的一般备份策略。只有在收集这些需求之后,才可以实施备份计划面将进一步讨论如何收集这些需求。1.收集备份与恢复策略需求在收集用户需求时,需要从这些需求中发现用户需要什么。并且需要向用户提出许多问题,作为一名数据库管理员( Database administrator,DBA),应当由您来提出这些问题。为了收集备份和恢复需求,DBA要向用户提出下面的一系列问题:在数据库发生故障时,丢失多少数据是可承受的?6第丨部分 racle RMAN11g基础知识恢复数据库时,能够忍受的最长时间是多少?为了确保您的数据能够被恢复,愿意投入多少成本?备份期间可以关闭系统吗?受损硬件设备的替换需要多长时间?现在,我们将详细讨论每一个问题。可以承受的数据丢失量这可能是上述问题中最重要的问题。所有的备份和恢复计划都有丢失数据的风险,当想采用零数据丢失解决方案时,备份和恢复计划的成本会非常昂贵。就像选用HA解决方案一样,机构需要量化数据丢失的成本,并且在此基础上实施成本效益最高的备份和恢复计划。客户必须知道所选择的备份和恢复计划会带来怎样的数据丢失风险。当然,每个数据库都有一个可接受的丢失量范围,有时,一个数据库所允许的数据丢失量可能比其他数据库大很多。恢复数据库时允许的最长时间不同的技术以不同的方式执行,所需的成本也是不同的。通常情况下,要求恢复速度越快,技术所需的成本就越高。例如,直接从磁盘上恢复数据库的成本比从磁带上恢复数据库的成本要高,但是它的恢复速度更快。对于客户来说,了解出现完全停机时恢复数据库所花费的时间是非常重要的。针对某些不能恢复数据库的例子,则可以考虑Oracle stand- by Database这样的技术恢复所花费的成本要知道,在可接受的数据丢失量、恢复数据库所用的时间和提供给定的保护等级所花费的成本之间存在直接的关系。在开始阶段,了解客户愿意在体系结构上投入多少成本来支持备份和恢复计划,这是相当重要的。如果您建议了一个高成本的复杂体系结构而客户只是看一眼预计的成本然后付之一笑,那将是多么让人难堪的事情。备份期间是否关闭系统另一个要了解的主要信息是备份期间数据库所需的状态备份时是否能够接受停机,或者备份时需要联机吗?这个问题的答案会影响总体成本和备份策略的选择替换受损硬件设备需要多长时间这是一个值得考虑的重要问题。通常不是由于数据库,而是由于硬件引起的故障。硬件故障将会严重影响数据库重新运行的时间。DBA应当使系统各利益相关方理解硬件故障的影响并考虑使用有助于防止产生硬件故障的结构,例如采用 Oracle RealApplication Clusters第1章 Oracle Database11g备份与恢复体系结构概述72.精心设计备份与恢复计划收集用户需求之后,就可以开始设计备份与恢复计划。需要解决下面这些问题:基于用户(和业务)需求,需要完成数据库的脱机备份还是联机备份?如果使用联机备份,那么需要多久备份一次归档的重做日志?如何在备份会话期间确保归档的重做日志不丢失?公司关于可恢复性的策略和标准是什么?在灾难事件中如何确保系统是可恢复的?是否需要制定体系结构方面的决策?上面的每个问题都非常重要。设计时要重点考虑到灾难事件,因为灾难事件确实会发生。公司策略有可能会代替用户的需求。这时,实现并执行备份策略和标准非常重要。因为管理一个数据库的备份和恢复策略往往比较容易,但管理多个具有不同备份和恢复方法的数据库则十分麻烦和危险。管理归档的重做日志非常重要,这是由于归档的重做日志对于恢复来说至关重要,并且能够最大限度地支持用户需求。毕竞,用户才是我们存在的理由!为了能够决定如何设计备份策略,需要了解 Oracle的工作原理以及 Oracle备份和恢复的工作原理。稍后将简单讨论这些内容,首先介绍一些基本的 Oracle术语。12需要掌握的 Oracle术语由于组件相互关联,因此在讨论 Oracle体系结构时通常不知如何着手。比如介绍个组件时,如果不引用其他组件就会相当困难。因此,本节先介绍了一些常用术语,并简要给出了这些术语的定义。这些术语将贯穿在本书的剩余章节中,因此必须完全理解这些术语的含义(在后面还将详细定义这些术语)。因此,如果您对 Oracle内部术语的认识比较模糊,请复习下面这些术语,直至清楚地理解它们的含义:警告日志( alert log):一个文本日志文件,记录数据库的错误和状态消息。警告日志是判断数据库故障种类的一个关键结构。通常情况下,警告日志位于后台转储日标目录中,该目录是由数据库参数 BACKGROUND DUMP DEST定义的,其中警告日志称为 alertJog归档的重做日志( archived redo log):数据库在 ARCHIVELOG模式下时,每次Oracle通过LGWR进程切换联机重做日志时都会生成归档的重做日志。数据库恢复期间也会使用归档的重做日志。归档的重做日志的副本可以写入10个不同的目录,这些目录是由数据库参数文件中的 Oracle参数 LOG ARCHIVE DESTn定义的。同样, Oracle Database 11g允许在称为闪回恢复区 flash recovery area)的新位置中存储归档的重做日志,在第3章中将详细讨论闪回恢复区备份控制文件 ackup control file)控制文件的备份是由命令 alter database backupcontroIfile to'file name域命令 alter database backup control file to trace生成的。8第!部分 Oracle RMAN11g基础知识·块(bock): Oracle中最小的存储单元。默认的块大小由数据库参数文件中的参数DB BLOCK SIZE决定,并且创建数据库后该设置不变。 Oracle Database11g允许表空间具有不同于默认值的块大小。检查点( checkpoint):一种数据库事件,使数据库将脏(已使用)数据块从内存移出并写入磁盘。数据库( database):由构成 Oracle数据库的不同组件(表空间、重做日志等)组成。数据库不同于实例。数据库用于存储数据,使用RMAN可以备份和恢复数据库。数据库一致性( database consistency):这是指数据库中的每个对象在某个相同的时间点是一致的。其含义是数据库数据文件中的数据在某个相同的时间点保持致,也意味着数据库控制文件与数据库数据文件头指针保持同步数据库控制文件( database coη ntrol file):数据库控制文件存储与数据库有关的元数据。包含关于数据库数据文件,归档重做日志,RMAN备份等有关的信息,以及其他数据库内部信息。数据库数据文件{ database datafile):与表空间相关的物理实体。一个数据库至少含有一个数据库数据文件(该文件属于 SYSTEM表空间)。大部分数据库是由多个不同的数据库数据件组成的尽管一个表空间可以有许多关联的数据库数据文件,但是一个给定的数据库数据文件只能有一个关联的表空间·数据库参数文件( database parameter file;含有实例和数据库配置信息,数据库参数文件分为两部分(各部分相互独立):一部分是文本文件 init. ora;另一部分是spfile. ora文件,该文件允许通过 alter system命令来维持数据库参数的设置闪回恢复区( Flash Recovery Area,FRA):磁盘的可选配置区域,用于存储各种与恢复相关的文件。RMAN备份文件、归档的重做日志、联机重做日志,以及控制文件都可以存储在这个区域中,可以在第2章中看到关于FRA的更多信息,第3章中则有它的相关的设置信息。在本书的大多数章节中都会看到关于FRA使用的示例。·区组( granule): Oracle连续内存单位。所有的系统全局区( System Global Area,SGA其内存分配都近似为最接近的区组单位。区组大小由预计的整个SGA内存决定,可能为4MB或16MB。当 Oracle使用较大的区组大小时,大于128MB的SGA就可能是断点。分配给数据库的区组数量在数据库启动时确定实例 (instance):一个实例是Ocle内存和进程的集合。若已分配SGA内存,且相应的 Oracle进程均启动和成功运行时,就可以说启动了 Oracle实例。需要注意的是, Oracle实例运行不表示数据库自身被打开。在给定时间,一个实例只能与一个数据库关联联机重做日志( online redo log):发生重做时,重做会被实际存储在数据库的联机重做日志中。 Oracle要求至少为一个数据库的操作创建两个联机重做日志。这些联机重做日志可以含有多个保护重做的镜像副本。这称为多路重做日志。当个联机重做日志写满重做内容时, Oracle会切换到下一个联机重做日志,这称为日志切换 log switch)操作。第1章 Oracle database11g备份与恢复体系结构概述9每个联机重做日志文件都有关联的唯一日志序列号。一个日志序列号唯一地标识一个联机重做日志文件,如果这个联机重做日志文件已归档,那么就标识相关联的归档的重做日志文件。通过ⅴLOG视图查询可以查找到联机重做日志的日志序列号,在V$ ARCHIVEDLOG视图或ⅴ SLOG HISTORY视图中可以查找给定的归档重做日志的日志序列号。此外,一个联机重做日志(以及一个归档的重做日志包含该日志文件独特的一组数据库系统更改号 System Change Number,scN。在恢复期间, Oracle按日志序列号的顺序来应用联机重做日志(归档的重做日志)中的撤消(undo)操作·进程( process:执行 Oracle数据库实际操作的程序。在 Oracle Database Ilg中有5种必需的进程,也有其他一些进程。·重做redo):记录对给定数据库的所有修改。对于数据库中的儿乎每一个修改来说,都会生成关联的重做记录·模式( schema):拥有 Oracle中的多种逻辑对象(如表和索引),实际上与用户的意义相同。·系统全局区( System G| oba area,SGA); Oracle启动时分配的共享内存区,所有 Oracle进程都共享这部分内存。系统更改号( System Change Number,SCN):一个表示某时间点上数据库当前状态的计数器。与VCR(录像机)的计数器相同,随着时间的推移,SCN会相应地增加。每个SCN代表一个数据库生命周期中的一点。因此,在上午11点,数据厍SCN可能是100(十进制数4351),而在中午12点,数据库SCN则可能是110x0(进制数4592)。表空间( (tablespace):一个物理逻辑实体。由于它存储 Oracle逻辑对象(如表和索引),所以是逻辑实体;由于它由一个或名个数据库数据文件组成,所以又是物理实体。一个数据库必须至少包含一个表空间(即 SYSTEM表空间),不过大部分数据库包含多个不同的表空间。跟踪文件( trace file):数据库会在许多不同的情况下生成跟踪文件,这些情况包括进程错误。每个数据库进程也会生成自己的跟踪文件。在试图解决数据库故障问题时,跟踪文件会起到重要的作用13数据库软件的控制在执行各种恢复操作期间,需要对 Oracle数据库和它的相关实例的状态进行控制。下面先简单回忆一下启动和关闭 Oracle数据库的方法。使用SQL* Plus oracle实用程序可以启动 Oracle Database 11g数据库。此时,可以使用 SYSDBA的登录I来登录用户系统,然后在SQL*Plus提示符下执行 startup命令,如下所示:翻器/usr/orac1e>sg1plus/ as sysdbaSQL*Plus: Release 10.2,0.1.0Production on Mon Jan 2610:55: 492010Copyright (c) 1982, 2009, oracle. All rights reserved10第丨部分 Oracle RMAN11g基础知识Connected to:oracle Database 11g Enterprise Edition Release 11.2.0.1.0roductionWith the Partitioning, Real Application clusters, Automatic StorageManagement, OLAP, Data Mining and Real Application Testing optionsConnected to an idle instanceSQL> startup用 startup命令启动 Oracle数据库时,执行的操作要经历3个不同的阶段:实例启动( nstance startup):启动 Oracle数据库实例数据库加载( database mount):加载 Oracle数据库。数据库打开( database open):打开 Oracle数据库以供用户活动注意:RMAN客户端(后面章节中将讨论)有能力自己关闭和启动 Oracle数据库。在大多数情况下,不需要在恢复操作期间从RMAN转移到SQL*Plus。冬$r命令有几种不同的变体(对于了解多个不同的RMAN操作非常重要,这些变包括● startup:使 Oracle经历3个启动阶段,并且打开到用户社区startup restrict:使 Oracle经历3个启动阶段,并且以限定模式打开数据库。只有具有限定权限的用户才可以访问数据库。startup nomount:在成功启动数据库实例后停止启动进程。通常在创建数据库之前使用该命令来启动数据库实例。如果需要重新创建控制文件,使用这条命令也会非常方便。需要注意的是,为了在给定数据库中使用RMAN,必须能够使用 startup nomount命令成功地启动实例· startup mount:在成功启动数据库实例并加载数据库后,停止启动起程。如果需要恢复 SYSTEM表空间,这个命令非常有用。startup read only:使 Oracle数据库(或备用数据库)以 READ ONLY模式打开。因此,不支持DML操作,但可以査询数据库。如果正在执行时间点恢复操作,并且希望确保在使用 resetlogs命令提交新数据库实例之前将数据库恢复到当前的时间点,这个命令非常有用。startup force:与 shutdown abort命令(接下来会讨论该命令)起关闭数据库。startup force命令后面可以再次加上数据库的打开模式。示例如下:startup force restrict· startup force mounttartup force nomount现在已经知道启动数据库的方法,但是,怎样关闭数据库呢?同样,可以在SQL*Plus提示符下执行 shutdown命令,该命令有下面几种形式。
暂无评论