如何从备份中恢复 SQL Server 数据库?

备份文件是 SQL Server 数据安全的重要保障。无论遇到数据损坏、误删除还是人为误操作,您都可以使用之前生成的 bak 备份文件,把数据库恢复到可用状态。

本文为您介绍 从备份文件恢复 SQL Server 数据库 的 4 种方法:SSMS 图形界面、T-SQL 命令、Windows 命令行以及傲梅企业备份网络版。您可以根据使用习惯与场景选择合适的方式。

在开始操作之前,建议先阅读微软官方关于 SQL Server 备份与恢复 的基本说明,了解备份和还原的相关概念与策略,这样能让后续操作更顺利。

如果数据库此前没有建立定期备份,建议先参考SQL Server 数据库自动备份一文,尽快配置自动备份任务,真正做到有备无患。

☛ 方法 1. 在 SSMS GUI 中恢复数据库

在图形界面中直观操作,适合新手,但一次只能从一个备份文件恢复一个数据库。

☛ 方法 2. 使用 T-SQL 恢复 SQL 数据库

功能更强、更灵活,但需要提前学习基本的 T-SQL 命令,使用不当可能导致恢复失败。

☛ 方法 3. 使用 Windows 命令行恢复 SQL 数据库

如果您不想每次都登录 SSMS,可以在命令提示符中借助 SQLCMD 工具输入 T-SQL 命令完成恢复。

☛ 方法 4. 通过集中管理工具恢复 SQL 数据库

当您需要一次恢复多个 SQL 数据库、又不想编写 T-SQL 脚本时,可以使用专业的集中管理工具直观地完成。

数据库服务器

方法 1. 在 SSMS GUI 中从备份文件恢复 SQL Server 数据库

在 Microsoft SQL Server 中,通过 SSMS(SQL Server Management Studio)从备份文件恢复 SQL Server 数据库是最直观的方式。

第 1 步:启动 SSMS 并连接到您的实例,在对象资源管理器中右键单击目标“数据库”,在弹出的菜单中选择“恢复数据库…”。

恢复数据库

第 2 步:选择“设备”作为恢复源,点击右侧的“…”按钮,在“选择备份设备”窗口中点击“添加”,找到并选中您的 bak 备份文件。

添加备份文件

第 3 步:确认备份信息与目标数据库无误后,点击“确定”执行恢复。

恢复成功

注意:如果恢复失败并提示“操作系统返回错误'5(访问被拒绝)'”,您可以切换到“文件”选项卡,勾选“将所有文件重新定位到文件夹”后重试。

方法 2. 使用 T-SQL 命令从备份恢复 SQL 数据库

第 1 步:连接到要将数据库还原到的实例,点击“新建查询”打开查询窗口,输入以下 T-SQL 命令:

RESTORE DATABASE DatabaseName FROM DISK = 'FilePath\FileName.bak'

将 DatabaseName 和 FilePath 替换为您自己的信息后,点击“执行”即可开始恢复。

T-SQL 还原完整备份

注意:如果恢复过程中提示“数据库日志的尾部尚未备份”,而日志中还包含您不想丢失的内容,可以先备份日志尾部:

BACKUP LOG DatabaseName TO DISK = 'FilePath\FileName.trn' WITH NORECOVERY

也可以使用 WITH REPLACE 或 WITH STOPAT 子句执行恢复并覆盖日志内容,例如:

RESTORE DATABASE DatabaseName FROM DISK = 'FilePath\FileName.bak' WITH REPLACE

第 2 步:如果要从差异备份文件恢复 SQL Server 数据库,需要先恢复完整备份,再恢复差异备份,命令如下:

RESTORE DATABASE DatabaseName FROM DISK = 'FilePath\FullBackup.bak' WITH NORECOVERY
GO
RESTORE DATABASE DatabaseName FROM DISK = 'FilePath\DiffBackup.bak' WITH RECOVERY
GO

在语句中加入 WITH NORECOVERY,是告诉 SQL Server 等待后续操作;最后必须使用 WITH RECOVERY 完成恢复,否则会导致SQL 数据库卡在恢复中。

T-SQL 还原差异备份

第 3 步:如果您把多个数据库分别备份到多个 bak 文件中并希望一次性恢复,可以使用稍微复杂的 T-SQL 脚本,请参考恢复多个 SQL 数据库一文。

方法 3. 使用 Windows 命令行从备份文件恢复 SQL Server 数据库

第 1 步:在 Windows 搜索栏中搜索“cmd”,在搜索结果中右键点击“命令提示符”,选择“以管理员身份运行”。

第 2 步:输入以下命令恢复完整备份,然后按“回车”执行:

SqlCmd -E -S ServerName -Q “RESTORE DATABASE DatabaseName FROM DISK='FilePath\FileName.bak'”

CMD 恢复完整备份

如果要从差异备份恢复数据库,命令如下:

SqlCmd -E -S ServerName -Q “RESTORE DATABASE DatabaseName FROM DISK='FilePath\FullBackup.bak' WITH NORECOVERY”
SqlCmd -E -S ServerName -Q “RESTORE DATABASE DatabaseName FROM DISK='FilePath\DiffBackup.bak' WITH RECOVERY”

CMD 恢复差异备份

第 3 步:如果您需要经常执行相同的恢复任务,可以把命令保存为扩展名为 .bat 的批处理文件,之后双击即可执行,也可以使用 Windows 任务计划程序定时自动执行。

更多相关信息,请参考备份 SQL Server 的批处理脚本。

方法 4. 使用傲梅企业备份网络版轻松恢复 SQL Server 数据库

上述 3 种方法都能帮助您从备份恢复 SQL 数据库,但操作上或多或少有些不便:要么依赖手动查找备份文件,要么需要编写命令。

如果您希望简单灵活地备份和恢复 SQL Server 数据库,同时还能集中管理多台计算机,可以试试专业的集中备份工具傲梅企业备份网络版。

它可以一次备份多个数据库并集中管理备份任务,让您从已创建的任务中直接恢复一个或多个数据库,无需在本地驱动器或网络路径中寻找 bak 文件。此外,您还可以把 SQL 数据库从一台服务器备份和还原到另一台服务器。

点击下方按钮,下载试用版进行体验:

微软WHQL认证

作为集中式备份工具,它可以统一管理局域网内所有的 Windows 台式机、笔记本电脑和服务器:在中央机器上安装傲梅企业备份网络版,并在客户端安装客户端包,然后就可以“请求控制”所有需要管理的计算机。

请求控制

◉ 如何创建 SQL Server 备份任务:

第 1 步:导航到“任务”>“新任务”>“SQL Server 备份”。

新建 SQL Server 备份任务

第 2 步:点击“+添加计算机”,检测带有 SQL Server 实例的客户端计算机,从弹出窗口中选择一台继续。

添加电脑

第 3 步:点击“+添加”,指定要备份的实例或数据库。

选择数据库

第 4 步:点击“添加存储”指定备份目标(共享路径或 NAS),然后点击“开始备份”执行任务。

如果需要定期自动备份,请点击“计划”设置计划任务,详情参考自动 SQL Server 备份一文。

选择共享或 NAS

◉ 如何从备份任务中恢复数据库:

第 1 步:创建的备份任务会显示在“任务”选项卡中,点击其右上角的“高级”并选择“还原”。

从备份任务恢复数据库

第 2 步:选择要还原的计算机和数据库;如果多次备份过(完整备份或差异备份),还可以在不同日期和模式的备份中进行选择。

选择数据库和日期

第 3 步:选择“恢复到原始位置”或“恢复到新位置”(另一台客户端计算机上的另一台服务器),然后点击“开始还原”执行。

如果您想用备份中的数据库覆盖现有的同名数据库,请勾选“覆盖现有数据库”,否则恢复过程会跳过这些数据库。

还原到原始位置或新位置

常见问题解答

问:如何从备份文件恢复 SQL Server 数据库?
答:您可以使用 SSMS 图形界面、T-SQL 命令或 Windows 命令行,也可以借助傲梅企业备份网络版这类集中管理工具。前三种方式适合单库恢复,集中管理工具更适合一次恢复多个数据库并统一管理备份任务。
问:恢复时提示“数据库日志的尾部尚未备份”怎么办?
答:如果日志中包含您不想丢失的内容,可以先执行 BACKUP LOG ... WITH NORECOVERY 备份日志尾部,再执行恢复;也可以使用 WITH REPLACE 或 WITH STOPAT 子句直接恢复并覆盖日志内容。
问:从差异备份文件恢复 SQL Server 数据库需要注意什么?
答:需要先用 WITH NORECOVERY 恢复完整备份,再用 WITH RECOVERY 恢复差异备份。如果恢复链没有正确完成,数据库会一直处于正在恢复状态。
问:如何一次恢复多个 SQL 数据库?
答:最简单的方式是使用傲梅企业备份网络版,从已创建的备份任务中选择多个数据库批量还原;如果您熟悉脚本,也可以编写较为复杂的 T-SQL 脚本一次性完成恢复。
问:可以在命令行中恢复 SQL Server 数据库吗?
答:可以。使用 SQLCMD 工具即可在命令提示符中输入 RESTORE DATABASE 语句完成恢复,适合不想每次登录 SSMS 的用户,还能通过批处理文件实现自动化。

结论

掌握从备份文件恢复 SQL Server 数据库的方法,是保障数据安全的关键。无论使用哪种工具,熟知备份恢复数据库的完整流程,遇到问题时才能从容应对。

以上 4 种方法中,如果您追求简单灵活、希望一次恢复多个数据库并集中管理备份任务,傲梅企业备份网络版是不错的选择——它综合了这些方法的优点,还能统一保护其他类型的计算机数据。

更新于2026年09月04日