从文件系统备份恢复 Oracle 数据

从文件系统备份恢复 Oracle 数据

如果我已经备份了机器硬盘上的完整文件系统,我是否可以使用它来恢复它并期望 Oracle 数据库保持一致?备份软件使用 VSS 备份了硬盘上的所有文件。

答案1

DB 状态将与你突然关闭服务器时的状态相同。因此,Oracle 将需要执行事务日志检查并回滚所有未提交的事务。因此,此状态可描述为“最终一致”或“修复后一致”。这可能不是你对备份的期望。执行备份的首选方法是使用 Oracle 备份工具,它们将提供 100% 一致的备份。

嗯,看起来 Oracle 有一个 VSS Writer 服务(更多详细信息这里)。备份工具指示 VSS Writer 服务在执行备份过程时将更改刷新到磁盘。因此,VSS Writer 有助于使用 VSS 备份工具获得一致的备份。您只需检查是否已安装并启用 Oracle VSS Writer 服务。

答案2

当时数据库实例是否已启动并正在运行?

如果是这样,那么数据库很可能处于不一致状态(即正在进行的事务需要回滚)。在这种情况下,Alex 的建议是正确的。您将能够恢复到备份点。

如果数据库正确关闭,那么您将获得一致的副本。这意味着您可以恢复它,并且如果您拥有 VSS 备份之后的所有存档日志文件,您将能够将数据库前滚到这些存档日志文件所涵盖的任何点。

如果您使用 Oracle RMAN 备份工具,则可以在不关闭数据库的情况下进行一致的备份,并且通过保留存档日志,您可以恢复到任何时间点。

答案3

任何工具都无法备份正在进行的事务,即使是 Oracle 也不行。想想看,备份部分事务是没有意义的。您希望数据库处于“良好”状态,即在备份开始之前所有事务都已完成。因此,使用 vss 备份是可以的,因为数据是作为快照拍摄的(文件在读取时无法更改)

答案4

我使用 NetApp 快照对数据库进行即时备份,然后可以在几分钟内克隆并在另一个系统上启动。以下是流程:

ALTER DATABASE BEGIN BACKUP;

快照数据目录

ALTER DATABASE END BACKUP;
ALTER SYSTEM ARCHIVE LOG CURRENT;

对存档日志目录进行快照。

这可确保快照具有使数据库恢复最新状态所需的存档日志。我已在非常活跃的数据库上使用过数百次,没有出现恢复问题。

相关内容