7

还原 SQL Server 数据库时,我注意到有 3 种不同的恢复状态可供选择:

  • 使用恢复还原
  • 无恢复还原
  • 用待机恢复

我一直将其保留为默认值,但它们都是什么意思?

(最好用外行的话)

4

3 回答 3

9

门杀手,

简单来说(而不是从 SQLBOL 中复制粘贴),这样您就可以理解这些概念:

RESTORE WITH RECOVERY 使用备份媒体文件(例如 fulldata.bak)将数据库恢复到创建备份文件的时间。如果您想及时返回以将数据库恢复到较早的状态(例如在开发系统时),这非常有用。

如果您想将数据库恢复到最新的数据,(例如,如果您正在执行系统灾难恢复并且您不能丢失任何数据),那么您希望恢复该备份,然后恢复自该备份以来创建的所有事务日志。这是您使用 RESTORE NORECOVERY 的时候。它将允许您将以后的事务日志恢复到故障点(只要您拥有它们)。

RECOVERY WITH STANDBY 是能够将数据库恢复到部分日期(如上面的 NORECOVERY),但允许数据库仍以只读方式使用。新的事务日志仍然可以应用于数据库以使其保持最新(备用服务器)。当恢复完整数据库以使系统恢复运行需要很长时间时,请使用此选项。(即,如果您有一个需要 16 小时才能恢复的多 TB 数据库,但可以每 15 分钟接收一次事务日志更新)。

这有点像一个镜像服务器——但没有将“每一笔交易”实时发送到备份服务器。

于 2008-08-11T18:10:27.133 回答
4

您可以将 Microsoft SQL Server 数据库设置为 NORECOVERY、RECOVERY 或 STANDBY 模式。

RECOVERY 是数据库的正常和通常状态,用户可以在其中连接和访问数据库(假设他们设置了适当的权限)。

NORECOVERY 允许数据库管理员恢复其他备份文件,例如差异或事务备份。当数据库处于此状态时,用户无法连接或访问此数据库。

STANDBY 与 NORECOVERY 状态几乎相同,但是它允许用户以 READONLY 访问方式连接或访问数据库。所以用户只能对数据库运行 SELECT 命令。这在日志传送中经常用于报告目的。唯一的缺点是当数据库中有用户在运行查询时,SQL Server 或 DBA 无法恢复额外的备份文件。因此,如果您有很多用户一直在访问数据库,那么复制可能会落后。

于 2014-04-06T02:58:33.377 回答
1

来自在线书籍,我认为您阅读后很清楚

NORECOVERY

指示还原操作不回滚任何未提交的事务。如果必须应用另一个事务日志,则必须指定 NORECOVERY 或 STANDBY 选项。如果未指定 NORECOVERY、RECOVERY 或 STANDBY,则 RECOVERY 为默认值。

SQL Server 要求在还原数据库备份和多个事务日志或需要多个 RESTORE 语句(例如,完整数据库备份后跟差异数据库备份)时,除最后一个 RESTORE 语句之外的所有语句都使用 WITH NORECOVERY 选项。

注意 指定 NORECOVERY 选项时,数据库在此中间、未恢复状态下不可用。

当与文件或文件组恢复操作一起使用时,NORECOVERY 强制数据库在恢复操作后保持在恢复状态。这在以下任何一种情况下都很有用:

正在运行恢复脚本,并且始终应用日志。

使用了一系列文件恢复,并且数据库不打算在两个恢复操作之间可用。

恢复

指示还原操作回滚任何未提交的事务。在恢复过程之后,数据库就可以使用了。

如果计划了后续的 RESTORE 操作(RESTORE LOG 或 RESTORE DATABASE 从差异),则应指定 NORECOVERY 或 STANDBY。

如果未指定 NORECOVERY、RECOVERY 或 STANDBY,则 RECOVERY 为默认值。从早期版本的 SQL Server 还原备份集时,可能需要升级数据库。指定 WITH RECOVERY 时会自动执行此升级。有关详细信息,请参阅事务日志备份。

待机= undo_file_name

指定撤消文件名,以便可以撤消恢复效果。撤消文件所需的大小取决于未提交事务导致的撤消操作量。如果未指定 NORECOVERY、RECOVERY 或 STANDBY,则 RECOVERY 为默认值。

STANDBY 允许在事务日志恢复之间启动数据库以进行只读访问,并且可以与热备用服务器情况或特殊恢复情况一起使用,在这些情况下,在日志恢复之间检查数据库很有用。

如果指定的撤消文件名不存在,SQL Server 将创建它。如果文件确实存在,SQL Server 将覆盖它。

同一撤消文件可用于同一数据库的连续恢复。有关详细信息,请参阅使用备用服务器。

重要 如果包含指定撤消文件名的驱动器上的可用磁盘空间已用完,则还原操作将停止。

当需要升级数据库时,不允许使用 STANDBY。

于 2008-08-11T17:03:21.343 回答