1、逻辑备份用于补充物理备份。还原物理备份意味着重建它并将其提供给 Oracle 服务器。要恢复还原的备份,需要使用事务日志中的重做记录来更新数据。事务日志记录在执行备份之后对数据库所做的更改。Oracle 在例程故障之后自动执行崩溃恢复和实例恢复。在出现介质故障的情况下,数据库管理员 (DBA) 必须启动恢复操作。恢复备份涉及两种不同的操作:通过应用重做数据将备份前滚至一个较近的时间;将在未提交的事务中所做的所有更改回滚至其原来状态。一般 而言,恢复指在还原、前滚和回滚备份中涉及的各种操作。备份与恢复指在防止数据库丢失数据和在丢失数据时重建数据库的过程中涉及的各种策略和操作。备份与恢复操作备份是
2、数据文件、表空间或某个时间点的数据库等的快照。如 果对数据库进行了周期性备份,则在数据丢失时用户可以将存储的重做信息应用到他们最新的备份中,从而恢复数据库的当前状态。Oracle 使用户能够还原一个较早的备份和仅应用某些重做数据,从而将数据库恢复到一个较早的时间点。这种恢复称为不完全介质恢复。如果备份是一致的,那么根本不需 要用户应用任何重做数据。下面用介质恢复的一个简单例子来解释一下这个概念。假定用户在中午为数据库作了一个备份。从中午开始,每一分钟对数据库进行一次更改。在下午 1 点时,一个磁盘驱动器出现故障,导致那个磁盘上的所有数据丢失。幸运的是,Oracle 在重做日志中记录了所有更改。
3、则用户可以将中午的备份还原到一个正常运转的磁盘驱动器上,使用重做数据将数据库恢复到下午 1 点,从而重建丢失的更改。备份与恢复策略要素尽管备份与恢复操作非常复杂并随因企业而异,但基本原则均遵循这四个简单的步骤:1. 创建联机重做日志的多个副本2. 在 ARCHIVELOG 模式下运行数据库,并将重做日志存档至多个位置 3. 维护控制文件的多个并发备份4. 时常备份物理数据文件,并将它们存储在一个安全的地方;如果可能,创建多个副本只要用户在安全的存储器备份了数据库并存档了重做日志,就可以重建原始数据库。备份与恢复的主要数据结构在用户开始认真考虑备份与恢复策略之前,必须明确与备份和恢复操作相关的物
4、理数据结构。本节讨论了以下物理数据结构: 数据文件 控制文件 联机重做日志文件 存档重做日志文件 自动管理的撤消 数据文件每个 Oracle 数据库都有属于称为表空间的逻辑结构的一个或多个物理数据文件。数据文件被分为更小的称为数据块的单元。逻辑数据库结构的数据(如表和索引)物理上位于为数据库分配的数据文件的块中。数据文件具有以下特性: 用户自定义的特性允许数据文件在数据库空间不足时自动扩展。 一个或多个物理数据文件组成了一个称为表空间的逻辑数据库存储单元。每个数据文件的第一个块均为头 (header)。头包括诸如文件大小、块大小、表空间和创建时间戳记等重要信息。只要打开数据库,Oracle 就
5、检查数据文件头信息是否与存储在控制文件中的信息匹配。如果不匹配,则必须进行恢复。Oracle 在正常操作期间读取数据文件中的数据,并将其存储在缓冲区高速缓存中。例如,假定用户要访问表中的一些数据。如果请求的信息尚未出现缓冲区高速缓存中,则 Oracle 将从相应的数据文件中读取它并将其存储在内存中。控制文件每个 Oracle 数据库都有一个控制文件,该文件包含组成数据库的所有其它文件的操作系统文件名。这个重要的文件还包含在恢复期间使用的一致性信息,如: 数据库名称 数据库创建时间戳记 数据库的数据文件以及联机和存档重做日志文件的名称 检查点 在重做日志中指示在这个点之前的所有数据库更改都已保存
6、在数据文件中的一条记录。 恢复管理器 (RMAN) 备份元数据用户可以创建控制文件的多个副本,从而允许 Oracle 写控制文件的多个副本以防止灾难的发生。如果操作系统支持磁盘镜像,那么也可以创建控制文件的镜像,从而允许 O/S 将控制文件的一个副本写到多个磁盘上。每一次用户挂载 Oracle 数据库时,均使用它的控制文件来识别数据文件和联机重做日志文件(必须为数据库操作而打开)。如果更改了数据库的物理组成,如创建了一个新的数据文件或重 做日志文件,则 Oracle 将修改数据库的控制文件以反映该更改。只要更改了数据库的结构,就应备份控制文件。结构更改可能包括添加、删除或更改数据文件或表空间以
7、及添加或删除联机 重做日志。联机重做日志文件重做日志对于恢复 绝对至关重要。例如,假定一次电力中断使 Oracle 无法将修改的数据永久写入数据文件中。在这种情况下,可以把数据文件中较早版本的数据与记录在联机重做日志中的最近更改结合起来重建丢失的数据。每个 Oracle 数据库都包含一组两个或多个联机重做日志文件。Oracle 为每个重做日志文件分配一个日志序列号以唯一地标识它。该组数据库重做日志文件共同称为数据库的重做日志。Oracle 使用重做日志记录对数据库所做的所有更改。Oracle 在重做记录(重做缓冲区中一个描述更改的条目)中记录每一个更改。例如,假定用户更新了工资单表中的一个列值
8、(从 5 改为 7)。Oracle 将旧值记录在撤销记录中,将新值记录在重做记录中。因为重做日志存储了对数据库所做的每次更改,所以这个事务的重做记录实际上包含了三个部分: 对撤消事务表所做的更改 对撤消数据块所做的更改 对工资单表数据块所做的更改如果用户随后提交了对工资单表所做的更新 使得由 SQL 语句执行的更改变为永久性的 那么 Oracle 将生成另一条重做记录。通过这种方式,系统仔细地监视着在数据库中发生的一切。重做日志文件的循环使用日志写入器 (LGWR) 将重做日志条目写到磁盘上。重做日志数据是在系统全局区的重做日志缓冲区中生成的。随着事务的提交和日志缓冲区的充满,LGWR 将重做
9、日志条目写到一个联机重做日志文件中。LGWR 以循环方式书写联机重做日志文件:当它写满了当前联机重做日志文件(称为活动文件)时,LGWR 将写入下一个可用非活动重做日志文件。LGWR 循环使用数据库中的联机重做日志文件,覆盖旧的重做数据。根据是否启用了存档,写满的重做日志文件可按以下方式进行重用: 如果禁用了存档,则一旦将记录在日志中的更改保存到数据文件中,就可再次使用写满的联机重做日志了。 如果启用了存档,则一旦将更改保存到数据文件中并将文件存档后,就可再次使用写满的联机重做日志了。存档重做日志文件存档日志文件是 Oracle 已经在其中写满了重做条目、将其以非活动状态提供并拷贝到一个或多个
10、日志存档目标位置的重做日志。Oracle 可以在两种模式中的任意一种之下运行: ARCHIVELOG Oracle 在周期中重用写满的联机重做日志文件之前将其存档。 NOARCHIVELOG Oracle 在周期中重用写满的联机重做日志文件之前不将其存档。在 ARCHIVELOG 模式下运行数据库有以下好处: 数据库可以从实例故障和介质故障中完全恢复过来。 用户可以执行联机备份,即在数据库打开并且可供使用的同时备份表空间。 可将存档的重做日志传输并应用到备用数据库中 Oracle 支持多重存档日志,以避免存档日志上任何可能的单点故障。 用户拥有更多恢复选择,如能够执行表空间时间点恢复 (TSP
11、ITR)在 NOARCHIVELOG 模式下运行数据库有以下后果: 用户只能在正常停机后、数据库完全关闭时备份数据库。 一般而言,唯一的介质恢复选择就是还原整个数据库,这将导致丢最后一次备份后执行的所有事务。自动管理的撤消每个 Oracle 数据库都必须有一种方法来保留用于回滚或撤消对数据库所做更改的信息。这种信息包含了事务的操作的记录(主要在提交这些操作之前)。Oracle 将这些记录统称为撤消。过去,Oracle 曾使用回滚段存储撤消。事实证明,对这些回滚段的空间管理十分复杂。Oracle 现在提供了存储撤消的另一种方法,它消除了管理回滚段空间的复杂性,并为 DBA 提供对撤消被覆盖前所保
12、留时间的控制。这种方法使用一个撤消表空间。撤销记录用于: 在执行 ROLLBACK 语句时回滚事务 恢复数据库 提供读一致性当执行回滚语句时,撤销记录用于撤销由未提交的事务对数据库所做的更改。在数据库恢复期间,撤销记录用于撤销从重做日志应用到数据文件中的任何未提交的更改。在一个用户更改数据的同时,撤销记录将为访问数据的另一用户保留数据的前镜像,从而提供读一致性。了解基本备份备份策略为防止数据丢失提供了安全防护。回答以下问题可以帮助数据库管理员制订一个强大的备份策略: 可能出现何种类型的故障? 应当备份哪些信息? 应当使用哪种备份方法? 应当联机还是离线备份? 备份的频率? 如何避免危险的备份方
13、法?可能出现何种类型的故障?数据丢失的原因各种各样。下面是可能导致数据丢失的一些最常见的故障类型。语句故障 是 Oracle 程序在处理语句时的逻辑错误。例如,用户执行了无效 SQL 结构的语句。当发生语句故障时,Oracle 自动撤销语句的所有效果并将控制返回给用户。进程故障 是访问 Oracle 的用户进程中出现的故障(即异常断开或进程终止)。尽管 Oracle 和其他的用户进程可以继续工作,但出现故障的用户进程将不能继续工作。如果用户进程在更改数据库时出现故障,则 Oracle 后台进程将撤销未提交事务的效果。实例故障 是使 Oracle 实例(即 SGA 和后台进程)无法继续工作的问题
14、。实例故障可能源于硬件问题(如电力中断)或软件问题(如操作系统崩溃)。当实例出现故障时,Oracle 不会将 SGA 缓冲区中的数据写到数据文件中。用户或应用程序错误 是导致数据丢失的用户错误。例如,用户可能无意地从工资单表中删除数据。这种用户错误可能需要将数据库或对象恢复到该错误发生前的某个时间点上。为了允许从用户错误中恢复过来并满足其他独特的恢复要求,Oracle 提供了闪回技术。介质故障 是当 Oracle 试图写或读操作数据库所需要的文件时出现的物理问题。一个常见的例子是磁盘头损坏,它将导致磁盘驱动器上的所有数据丢失。磁盘故障可能影响各种文件(包括 数据文件、重做日志文件和控制文件)。因为数据库实例无法继续正常工作,所以它无法将 SGA 的数据库缓冲区中的数据写到数据文件中。应当备份哪些信息?一个数据库包含各种类型的数据。当制订备
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1