恢复数据库但不还原数据 (Transact-SQL)

适用范围:SQL Server

通常,在恢复数据库之前,将还原 SQL Server 数据库中的所有数据。 但是,还原操作可以恢复数据库而不实际还原备份;例如,恢复那些与数据库一致的只读文件时。 这称为仅恢复还原。 当脱机数据已与数据库一致且仅需使其可用时,仅恢复还原操作即可完成数据库的恢复并将数据联机。

仅恢复还原操作可对整个数据库或一个或多个文件或文件组执行。

仅恢复数据库还原

仅恢复数据库还原在以下情况下很有用:

  • 您在还原序列中还原最后一个备份时没有恢复数据库,现在希望恢复该数据库并使其联机。

  • 数据库处于备用模式,但您希望在不应用其他日志备份的情况下可以更新数据库。

仅恢复数据库还原 RESTORE 语法如下所示:

RESTORE DATABASE *database_name* WITH RECOVERY

注意

FROM =<backup_device> 子句不用于仅执行恢复的还原操作,因为不需要备份。

示例

以下示例在还原操作中恢复 AdventureWorks2025 示例数据库而不还原数据。

-- Restore database using WITH RECOVERY.  
RESTORE DATABASE AdventureWorks2022  
   WITH RECOVERY  

仅恢复文件还原

在以下情况下,仅恢复文件的还原操作会很有用:

数据库被分段还原。 完成主文件组的还原之后,一个或多个未还原的文件变为与新数据库的状态一致,这也许是因为这些文件最近始终是只读的。 只需恢复这些文件即可;无需复制数据。

仅恢复还原作使脱机文件组中的数据联机;不会发生数据复制、重做或撤消阶段。 有关还原阶段的信息,请参阅还原和恢复概述 (SQL Server)

仅恢复文件还原的 RESTORE 语法是:

RESTORE DATABASE *database_name* { FILE **=**_logical_file_name_ | FILEGROUP **=**_logical_filegroup_name_ }[ **,**...*n* ] WITH RECOVERY

示例

以下示例演示了 Sales 数据库中辅助文件组中 SalesGroup2 文件的仅恢复文件还原。 作为分段还原的初始步骤,主文件组已还原,并且 SalesGroup2 与已还原的主文件组保持一致。 只需一条语句即可恢复此文件组并使其变为联机状态。

RESTORE DATABASE Sales FILEGROUP=SalesGroup2 WITH RECOVERY;  

使用仅恢复还原完成碎片还原方案的示例

简单恢复模式

完整恢复模式

另请参阅

联机还原 (SQL Server)
碎片还原 (SQL Server)
文件还原(简单恢复模式)
文件还原(完整恢复模式)
RESTORE (Transact-SQL)
还原和恢复概述 (SQL Server)