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

如果您备份了 Microsoft SQL Server,您将获得可以存储在任何安全位置并在需要时用于恢复数据库的 bak 文件。

在本文中,我将介绍 3 种从备份文件恢复 SQL Server 数据库的方法。选择一个你喜欢的。

在 SSMS GUI 中恢复数据库

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

☛ 使用 T-SQL 恢复 SQL 数据库

这种方式恢复SQL Server备份功能更强大,更灵活,但需要提前学习基本的T-SQL命令。粗心或不正确地使用 T-SQL 语句可能会导致失败甚至更严重的问题。

使用 Windows 命令行恢复 SQL 数据库

如果你不想每次备份或恢复SQL数据库时都登录SSMS,你可以在命令提示符中使用T-SQL命令,这需要支持 SQL指令.

通过集中管理工具恢复 SQL 数据库

如果您想执行灵活的操作,例如一次恢复多个 SQL 数据库,但又不想使用 T-SQL 脚本,您也可以使用专业工具来直观地完成。

数据库服务器

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

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

1. 启动 SSMS 并连接到您的实例。右键单击“数据库并在”“菜单中”选择“恢复数据库”...。

恢复数据库

2. 选择“设备”作为源,然后单击...“图标”“添加”“备份文件”如果找不到它,请尝试导航到它的存储路径,然后手动键入文件名 (with.bak)。 

添加备份文件

3. 确认备份信息,点击“确定”执行恢复。

恢复成功

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

方法二、使用T-SQL命令恢复数据库

1. 连接到要将数据库还原到的实例。单击“新建查询”打开一个新窗口,然后输入以下 T-SQL 命令:

RESTORE DATABASE DatabaseName = 'FilePath\ File Name.bak'

这是从备份中恢复 SQL 数据库的基本命令。填写自己的信息,点击“执行”,执行操作。

T-SQL 还原完整备份

注意:如果在还原过程中收到“数据库日志的尾部尚未备份”,如果日志包含您不想丢失的工作,您可以先备份日志:

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

或者使用 WITH REPLACE 或 WITH STOPAT 子句来执行恢复并覆盖日志的内容:

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

2. 如果要从差异备份文件恢复 SQL Server 数据库,则命令为:

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

基本上,在语句中添加 WITH NORECOVERY 是告诉 SQL Server 等待更多操作。您需要使用 WITH RECOVERY 来完成恢复,否则您可能会导致您的SQL 数据库卡在恢复中.

T-SQL 还原差异备份

3.如果你把多个数据库备份到多个bak文件中,想一次性恢复,需要用到稍微复杂一点的T-SQL脚本,请参考恢复多个 SQL 数据库.

方法 3. 使用命令行从备份文件恢复 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数据库名称='FilePath\FileName.bak' WITH NORECOVERY”
SqlCmd -E -S ServerName -Q “RESTORE DATABASE数据库名称='FilePath\FileName.bak' WITH RECOVERY”

CMD 恢复差异备份

3. 如果您需要经常执行相同的任务,您也可以在文本编辑器中键入命令并将其另存为扩展名为.bat 的批处理文件。因此,您可以双击批处理文件来执行操作,或使用 Windows 任务计划程序来自动执行任务。

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

方法 4. 轻松集中地从备份文件恢复 SQL Server 数据库

上述方法可以帮助您从备份中恢复 SQL 数据库,但它们都或多或少地存在一些不便。如果你想用最简单的操作灵活的备份和恢复SQL Server,可以试试专业的工具傲梅企业备份网络版.

它可以通过简单的点击一次备份多个数据库,并集中管理备份任务。这允许您从创建的任务中恢复一个或多个数据库,而无需从本地驱动器或网络路径中查找特定的 bak 文件。此外,它甚至可以让您 将 SQL 数据库从一台服务器备份和还原到另一台服务器.

下载180天免费试用版进行试用:

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

请求控制

如何创建 SQL Server 备份任务

1. 导航到“任务”>“新任务”> SQL Server 备份

新建 SQL Server 备份任务

2. 点击“+添加计算机”检测“步骤1”中带有SQL实例的客户端计算机。从弹出窗口中选择一个以继续。

添加电脑

3. 然后点击“+添加指定您在”第2步中要备份的实例或数据库。

选择数据库

3. 转到第 3 步,点击“添加存储”以指定目标共享或 NAS。然后你就可以“开始备份”了。

或者,您可以单击“计划”来设置一个 自动 SQL Server 备份.

选择共享或 NAS

“如何从备份任务中恢复数据库”

1.创建的备份任务将显示在“任务”选项卡中。单击其右上角的"高级"并选择“还原”

从备份任务恢复数据库

2. 选择要从中还原的计算机和数据库。如果您已经多次备份它们(完整或差异),您还可以在不同日期和模式的备份中进行选择。

选择数据库和日期

3. 然后您将看到“恢复到原始位置”“恢复到新位置”(另一台客户端计算机上的另一台服务器)的选项。然后点击"开始还原"执行。

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

还原到原始位置或新位置

结论

在本文中,我介绍了几种不同的从备份文件恢复 SQL Server 数据库的方法,例如 SSMS GUI、T-SQL 和傲梅企业备份网络版,它们结合了这些方法的优点。

使用此工具,您不仅可以备份和恢复 SQL 数据库,还可以管理其他类型的计算机数据。例如,您可以执行傲梅企业备份网络版网络上的所有计算机。