Skip to main content
Enterprise applications
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

Oracle自动恢复,无需备份模式

当 Oracle 12c 发布时,基于 Snapshot 的备份和恢复变得更加简单,因为无需将数据库置于热备份模式。这样便可以直接在存储系统上计划基于 Snapshot 的备份。

尽管数据库管理器(操作步骤)对数据库管理器(数据库管理器)比较熟悉、但长期以来、可以使用数据库处于热备份模式时未创建的快照。在恢复期间、需要对Oracle 10g和11g执行额外的手动步骤、才能使数据库保持一致。采用Oracle 12c、 sqlplusrman 包含额外的逻辑、用于重放未处于热备份模式的数据文件备份上的归档日志。

如前文所述、恢复基于快照的热备份需要两组数据:

  • 在备份模式下创建的数据文件的快照

  • 数据文件处于热备份模式时生成的归档日志

在恢复期间、数据库会从数据文件读取元数据、以选择恢复所需的归档日志。

无备份模式的自动恢复需要略有不同的数据集才能实现相同的结果:

  • 数据文件快照。

  • 一组同步的归档日志、控制文件和重做日志。归档日志必须包括创建数据文件快照时的所有记录,因此请谨慎执行日志清理操作。

在恢复期间,数据库会从数据文件读取元数据,以确定所需的日志记录,并重播所有记录的事务。

注:

这种方法可以近似于时间点恢复,但粒度有限。例如,如果在备份模式下从数据文件开始,则可以将数据库前滚到任何任意事务。

如果使用自动恢复方法,而不使用备份模式,则必须将数据库恢复到日志快照点。在正常情况下,RPO 仍为零,因为原始归档日志、重做日志和控制文件仍在活动文件系统中可用。如果由于活动文件系统中的所有数据丢失而需要完全从快照中执行恢复,则 RPO 将为一小时。

== 数据布局 最简单的布局是在专用卷、LUN 或 NVMe 命名空间中隔离数据文件。存储资源不得受到任何其他文件类型的影响。这是为了确保可以通过 SnapRestore 操作快速恢复数据文件,而不会破坏重要的重做日志、控制文件或归档日志。

SAN 对专用资源内的数据文件隔离有类似的要求。对于使用 AFF 存储的 Microsoft Windows 等操作系统,单个卷可能包含多个数据文件 LUN,每个 LUN 都具有一个 NTFS 文件系统。对于其他操作系统,通常有一个逻辑卷管理器。例如,对于 Oracle ASM,最简单的选项是将 ASM 磁盘组的 LUN 限制在可以作为一个单元进行备份和恢复的单个卷上。如果出于性能或容量管理原因需要额外卷,则在新卷上创建一个额外的磁盘组可以简化管理。

ASA 不具有卷级抽象。相反,它使用一致性组。在许多情况下,单个 LUN 或 NVMe 命名空间可能满足数据库的管理和性能要求。如果需要多个 LUN 或命名空间,则可以添加其他资源并将其绑定在一起,作为成为数据文件容器的一致性组。

如果遵循这些准则,则可以直接在存储系统上计划快照。

*注意:*验证ASM spfilepasswd 文件不在托管数据文件的磁盘组中。这会影响有选择地还原数据文件和仅还原数据文件的能力。

== 本地恢复过程——NFS 基本过程如下所示:

  1. 关闭数据库。

  2. 将数据文件卷、LUN 或命名空间恢复到所需还原点之前的快照。

  3. 运行 alter database automatic;

此操作步骤假定所需的归档日志仍存在于活动文件系统中。否则、必须还原归档日志、或 rmansqlplus 可以定向到中的数据 .snapshot 目录。

此外、对于较小的数据库、最终用户可以直接从中恢复数据文件 .snapshot 目录、而无需借助自动化工具或存储管理员来执行SnapRestore命令。

== 本地恢复过程—SAN 基本过程如下所示:

  1. 关闭数据库。

  2. 将托管数据文件的磁盘组静置。操作步骤因所选的逻辑卷管理器而异。使用ASM时、此过程需要卸载磁盘组。对于Linux、必须卸载文件系统、并停用逻辑卷和卷组。目标是停止要还原的目标卷组上的所有更新。

  3. 将数据文件磁盘组还原到所需还原点之前的快照。

  4. 重新激活新还原的磁盘组。

  5. 运行 alter database automatic;

此过程假定所需的归档日志仍位于活动文件系统中。如果不是,则必须通过使归档日志 LUN 脱机并执行还原来还原归档日志。这也是一个将归档日志分成专用卷、LUN 或命名空间有用的示例。如果归档日志与重做日志共享一个卷组,则必须先将重做日志复制到其他位置,然后才能还原整个 LUN 集,以避免丢失最终记录的事务。

== 完全恢复示例 假设数据文件已损坏或销毁,需要完全恢复。执行此操作的过程如下所示:

[oracle@host1 ~]$ sqlplus / as sysdba
Connected to an idle instance.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 1610612736 bytes
Fixed Size                  2924928 bytes
Variable Size            1040191104 bytes
Database Buffers          553648128 bytes
Redo Buffers               13848576 bytes
Database mounted.
SQL> recover automatic;
Media recovery complete.
SQL> alter database open;
Database altered.
SQL>