为什么我们需要备份 Oracle 归档日志和数据文件

non*_*umi 12 oracle backup rman

Oracle® 数据库备份和恢复基础知识 10g 第 2 版 (10.2) 说

归档重做日志是成功恢复媒体的关键。定期备份它们。

但是,我想知道为什么存档日志的备份如此重要。是否可以仅使用常规 RMAN 完整和增量数据文件备份进行时间点恢复。

Gai*_*ius 16

不,您仍然需要归档重做日志。RMAN 备份与冷备份不同;当您恢复它时,您需要应用从开始备份到备份完成期间生成的所有重做,以使所有数据文件和控制文件的 SCN 保持一致。

让我们考虑老式的热备份。在这种模式下,整个更改的数据库块都写入重做日志流,并在操作系统中复制文件。这会导致损坏的块,即在备份读取期间块已更改。因此,为了恢复数据库,我们恢复 DBF,然后恢复过程将来自存档重做日志的更改块覆盖到文件中的断裂块上,然后我们返回到一致的数据库。

在 RMAN 备份中,由于块是由 Oracle 通过 SGA 而不是像cp. 然而,DBF 在读取第一个块和最后一个块之间发生变化,所以这是同样的问题,只是规模更大。也就是说,SCN 在备份中的第一个和最后一个块之间发生变化。归档重做日志也涵盖了这一点。

RMAN 为您提供了目录的可管理性,以及一种无需以更高的速率生成重做(这会给磁盘、备份系统等带来自身压力)的情况下进行热备份的方法。但是BACKUP DATABASE不会给你一个一致的数据库本身; 在 Oracle 中做到这一点的唯一方法是冷备份。


Lei*_*fel 7

只有在归档日志模式下运行时才需要备份归档日志,所以问题又回到了数据库是否应该这样做的问题上。这在您参考的同一文档中的“决定在 ARCHIVELOG 和 NOARCHIVELOG 模式之间”标题下进行了介绍。这是摘录:

在 ARCHIVELOG 和 NOARCHIVELOG 模式之间做出决定

数据库的重做日志提供对数据库数据文件更改的完整记录(有一些例外,例如直接路径加载)。

您可以以两种模式之一运行数据库:ARCHIVELOG 模式或 NOARCHIVELOG 模式。在 ARCHIVELOG 模式下,必须将使用过的联机重做日志组复制到一个或多个归档目的地,然后才能重新使用。归档重做日志会保留存储在该日志中的所有事务,以便以后可以在恢复操作中使用它们。在 NOARCHIVELOG 模式下,当日志被重用时,联机重做日志组会被简单地覆盖。该重做日志组中记录的有关事务的所有信息都将丢失。

2.3.3.1 在 NOARCHIVELOG 模式下运行的含义

在 NOARCHIVELOG 模式下运行数据库会对您的备份和恢复策略施加严重限制。

  • 您无法对数据库执行联机备份。您必须彻底关闭数据库,然后才能在 NOARCHIVELOG 模式下进行备份。

  • 您不能使用任何需要存档重做日志的数据恢复技术。这些包括完整的时间点介质恢复,如“数据恢复的形式”中所述,以及更高级的恢复技术,例如单个表空间和闪回数据库的时间点恢复(在 Oracle 数据库备份和恢复高级中描述)用户指导。)。

如果您在 NOARCHIVELOG 模式下运行,并且必须从由于磁盘故障导致的数据文件损坏中恢复,则有两个主要的恢复选项:

  • 删除在受影响文件中具有任何扩展区的所有对象,然后删除这些文件。数据库的其余部分完好无损,但受影响文件中的所有数据都将丢失。

  • 从最近的备份恢复整个数据库,并丢失自备份以来对数据库所做的所有更改。(恢复备份后的更改需要执行使用存档重做日志的介质恢复。)

...

当性能要求极端或磁盘空间限制严重时,尽管此选择对您的恢复选项施加了限制,但最好在 NOARCHIVELOG 模式下运行。

您几乎总是希望在 ARCHIVELOG 模式下运行,因此您几乎总是希望备份存档日志。