数据库备份与恢复技术

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle数据库备份与恢复技术

Oracle是一个适合于大中型企业的数据库管理系统,它主要应用于:银行、电信、移动通信、航空、保险、金融、跨国公司、和电子商务等。备份与恢复是数据库管理中最重要的方面之一。如果数据库崩溃却没有办法恢复它,那么对企业造成的毁灭性结果可能会是数据丢失、收入减少、客户不满等。不管公司是使用单个数据库还是多个数据库来存储数百GB 或TB 的数据,它们都有一个共同点,即需要制订一个备份与恢复方案来备份重要数据并使自身免于灾难,将损失尽量降低到最小。

备份与恢复概述

备份是数据的一个代表性副本。该副本会包含数据库的重要部分,如控制文件、重做日志和数据文件。备份通过提供一种还原原始数据的方法保护数据不受应用程序错误的影响并防止数据的意外丢失。备份分为物理备份和逻辑备份。物理备份是物理数据库文件的副本。“备份与恢复”通常指将复制的文件从一个位置转移到另一个位置,同时对这些文件执行各种操作。

相比而言,逻辑备份包含使用SQL 命令导出并存储在二进制文件中的数据。Oracle 在重做日志缓冲区中记录提交的和未提交的更改。逻辑备份用于补充物理备份。还原物理备份意味着重建它并将其提供给Oracle 服务器。要恢复还原的备份,需要使用事务日志中的重做记录来更新数据。事务日志记录在执行备份之后对数据库所做的更改。

Oracle 在例程故障之后自动执行崩溃恢复和实例恢复。在出现介质故障的情况下,数据库管理员(DBA) 必须启动恢复操作。恢复备份涉及两种不同的操作:通过应用重做数据将备份前滚至一个较近的时间;将在未提交的事务中所做的所有更改回滚至其原来状态。一般而言,恢复指在还原、前滚和回滚备份中涉及的各种操作。备份与恢复指在防止数据库丢失数据和在丢失数据时重建数据库的过程中涉及的各种策略和操作。

备份与恢复操作

备份是数据文件、表空间或某个时间点的数据库等的快照。如果对数据库进行了周期性备份,则在数据丢失时用户可以将存储的重做信息应用到他们最新的备份中,从而恢复数据库的当前状态。Oracle 使用户能够还原一个较早的备份和仅应用某些重做数据,从而将数据库恢复到一个较早的时间点。这种恢复称为不完全介质恢复。如果备份是一致的,那么根本不需要用户应用任何重做数据。

下面用介质恢复的一个简单例子来解释一下这个概念。假定用户在中午为数据库作了一个备份。从中午开始,每一分钟对数据库进行一次更改。在下午 1 点时,一个磁盘驱动器出现故障,导致那个磁盘上的所有数据丢失。幸运的是,Oracle 在重做日志中记录了所有更改。则用户可以将中午的备份还原到一个正常运转的磁盘驱动器上,使用重做数据将数据库恢复到下午1 点,从而重建丢失的更改。

备份与恢复策略要素

尽管备份与恢复操作非常复杂并随因企业而异,但基本原则均遵循这四个简单的步骤:

1.创建联机重做日志的多个副本

2.在ARCHIVELOG 模式下运行数据库,并将重做日志存档至多个位置

3.维护控制文件的多个并发备份

4.时常备份物理数据文件,并将它们存储在一个安全的地方;如果可能,创建多个

副本

只要用户在安全的存储器备份了数据库并存档了重做日志,就可以重建原始数据库。

备份与恢复的主要数据结构

在用户开始认真考虑备份与恢复策略之前,必须明确与备份和恢复操作相关的物理数据结构。本节讨论了以下物理数据结构:

∙数据文件

∙控制文件

∙联机重做日志文件

∙存档重做日志文件

∙自动管理的撤消

数据文件

每个Oracle 数据库都有属于称为表空间的逻辑结构的一个或多个物理数据文件。数据文件被分为更小的称为数据块的单元。逻辑数据库结构的数据(如表和索引)物理上位于为数据库分配的数据文件的块中。数据文件具有以下特性:

∙用户自定义的特性允许数据文件在数据库空间不足时自动扩展。

∙一个或多个物理数据文件组成了一个称为表空间的逻辑数据库存储单元。

每个数据文件的第一个块均为头(header)。头包括诸如文件大小、块大小、表空间和创建时间戳记等重要信息。只要打开数据库,Oracle 就检查数据文件头信息是否与存储在控制文件中的信息匹配。如果不匹配,则必须进行恢复。Oracle 在正常操作期间读取数据文件中的数据,并将其存储在缓冲区高速缓存中。例如,假定用户要访问表中的一些数据。如果请求的信息尚未出现缓冲区高速缓存中,则Oracle 将从相应的数据文件中读取它并将其存储在内存中。

控制文件

每个Oracle 数据库都有一个控制文件,该文件包含组成数据库的所有其它文件的操作系统文件名。这个重要的文件还包含在恢复期间使用的一致性信息,如:

∙数据库名称

∙数据库创建时间戳记

∙数据库的数据文件以及联机和存档重做日志文件的名称

∙检查点—在重做日志中指示在这个点之前的所有数据库更改都已保存在数据文件中的一条记录。

∙恢复管理器(RMAN) 备份元数据

用户可以创建控制文件的多个副本,从而允许Oracle 写控制文件的多个副本以防止灾难的发生。如果操作系统支持磁盘镜像,那么也可以创建控制文件的镜像,从而允许O/S 将控制文件的一个副本写到多个磁盘上。每一次用户挂载Oracle 数据库时,均使用它的控制文件来识别数据文件和联机重做日志文件(必须为数据库操作而打开)。如果更改了数据库的物理组成,如创建了一个新的数据文件或重做日志文件,则Oracle 将修改数据库的控制文件以反映该更改。只要更改了数据库的结构,就应备份控制文件。结构更改可能包括添加、删除或更改数据文件或表空间以及添加或删除联机重做日志。

联机重做日志文件

重做日志对于恢复绝对至关重要。例如,假定一次电力中断使Oracle 无法将修改的数据永久写入数据文件中。在这种情况下,可以把数据文件中较早版本的数据与记录在联机重做日志中的最近更改结合起来重建丢失的数据。每个Oracle 数据库都包含一组两个或多个联机重做日志文件。Oracle 为每个重做日志文件分配一个日志序列号以唯一地标识它。该组数据库重做日志文件共同称为数据库的重做日志。

Oracle 使用重做日志记录对数据库所做的所有更改。Oracle 在重做记录(重做缓冲区中一个描述更改的条目)中记录每一个更改。例如,假定用户更新了工资单表中的一个列值(从5 改为7)。Oracle 将旧值记录在撤销记录中,将新值记录在重做记录中。因为重做日志存储了对数据库所做的每次更改,所以这个事务的重做记录实际上包含了三个部分:

∙对撤消事务表所做的更改

∙对撤消数据块所做的更改

∙对工资单表数据块所做的更改

如果用户随后提交了对工资单表所做的更新—使得由SQL 语句执行的更改变为永

久性的—那么Oracle 将生成另一条重做记录。通过这种方式,系统仔细地监视着在数据库中发生的一切。

重做日志文件的循环使用

日志写入器(LGWR) 将重做日志条目写到磁盘上。重做日志数据是在系统全局区的重做日志缓冲区中生成的。随着事务的提交和日志缓冲区的充满,LGWR 将重做日志条目写到一个联机重做日志文件中。LGWR 以循环方式书写联机重做日志文件:当它写满了当前联机重做日志文件(称为活动文件)时,LGWR 将写入下一个可用非活动重做日志文件。LGWR 循环使用数据库中的联机重做日志文件,覆盖旧的重做数据。根据是否启用了存档,写满的重做日志文件可按以下方式进行重用:

∙如果禁用了存档,则一旦将记录在日志中的更改保存到数据文件中,就可再次使用写满的联机重做日志了。

∙如果启用了存档,则一旦将更改保存到数据文件中并将文件存档后,就可再次使用写满的联机重做日志了。

存档重做日志文件

存档日志文件是Oracle 已经在其中写满了重做条目、将其以非活动状态提供并拷贝到

相关文档
最新文档