如何从 Bak 文件中恢复 SQL 数据库?(3种方法)
如何从 Bak 文件中恢复 SQL 数据库?以下是您可以尝试的 3 种方法,以及一种简单的替代方法,可帮助您灵活地从备份中恢复数据库。
成功备份SQL Server后,您将获得一个 bak 文件,可用于通过 SSMS、Transact-SQL、命令行等方式从备份恢复sql数据库。
在这篇文章中,我将介绍这些常用的方法,以及一种从 Bak 文件中恢复 SQL 数据库的简单替代方法。继续阅读并选择您喜欢的方式。
“注意”:以下所有方法仅支持将数据库从低版本还原到相同或更高版本,例如从SQL Server2012 到 2016。如果要将数据库迁移到更低版本,请参考这里指导.
与备份一样,SSMS 还包括一个还原向导,可直观地指导您完成整个过程。要使用它,请连接到您要将数据库恢复到的实例。
1. 右键单击数据库并在菜单中选择恢复数据库...。
2. 在弹出的窗口中,选择“Source”作为Device,然后点击...图标“添加”bak文件。如果找不到,请定位到它的保存路径并输入它的全名(包括.bak)来指定它。
3.如果没有问题,备份信息将显示在Restore Database窗口中,然后您可以单击“确定”从bak文件中恢复SQL数据库。
除了按照向导进行操作外,您还可以使用查询在SQL Server中恢复数据库。只要您了解 T-SQL 语句,这实际上是一种更简单的从bak文件命令行恢复sql数据库的方法。
1. 单击“新建查询”打开 SQLQuery 窗口。在其中输入恢复命令:
例如,如果我想从 D:\Backup 中的完整备份“example.bak”恢复 SQL数据库“example”,那么命令将是:
2. 点击“执行”按钮运行命令,您将在下面的“消息”中看到备份状态。
要从差异备份中恢复,您需要提前用 WITH NORECOVERY 恢复上一次完整备份,因此命令将如下所示:
“注意:”第一个bak文件应该是完整备份文件,第二个应该是差异备份文件。
在还原过程中,您可能会收到一条错误消息“数据库的日志尾部尚未备份。如果日志包含您不想丢失的工作,请使用 BACKUP LOG WITH NORECOVERY 备份日志。使用 RESTORE 语句的 WITH REPLACE 或 WITH STOPAT 子句来覆盖日志的内容”。
这是因为您尝试还原的备份文件比目标数据库旧。要解决它,您可以按照消息中提到的提示进行操作:
1. 事先用 WITH NORECOVERY 备份事务日志,然后再次尝试恢复 bak 文件。
2. 使用 WITH REPLACE 或 WITH STOPAT 子句恢复数据库。
或者,您可以使用命令行恢复 SQL 数据库,而无需启动 SSMS - 这需要 SQLCMD,它在 2014 年及更低版本中随SQL Server一起提供。如果您正在运行更高版本,请下载它这里.
在上一篇文章中,我已经解释了如何使用命令行备份SQL Server数据库,您可以点击链接以获取更多详细信息。这里我将重点介绍如何从 Bak 文件中恢复 SQL 数据库。
1、按Win+R,在输入框中输入“cmd”。单击“确定”以打开命令提示符。
2. 然后,将此命令与您自己的服务器名称和文件路径一起使用:
就我而言,它应该是:
如果要使用命令行恢复差异备份,可以先用 WITH NORECOVERY 恢复完整备份,再用 WITH RECOVERY 恢复差异备份:
“注意:”第一个bak文件应该是完整备份文件,第二个应该是差异备份文件。
与上一种方法类似,如果遇到“数据库的日志尾部没有备份”错误,可以提前 BACKUP LOG WITH NORECOVERY:
或者用 REPLACE 或 WITH STOPAT 恢复数据库:
从Bak 文件中恢复 SQL 数据库的优点主要是灵活性。例如,您可以备份 SQL数据库并恢复到另一台服务器. 但上述方法要么比较繁琐,要么需要一定的 SQL 知识。作为补充,我想介绍一下傲梅企业备份网络版,它可以在所有联网的Windows PC或服务器之间集中备份和恢复SQL Server数据库。
此软件适用于 Windows 10/8.1/8/7/Vista/XP、Windows Server/2003/2008 (R2)/2012 (R2)/2016、Windows SBS 2003/2008/2011、Windows Home Server 2011 (32/64 -少量)。
其SQL Server备份功能支持SQL Server2005 至 2019,使您能够一次备份或恢复多个数据库。整个操作通过简单的点击完成,无需专业知识。
这是一个180天的免费试用期:
☛ 如何备份SQL Server数据库:
1.正确安装软件并获得对您要管理的客户端计算机的控制权(当然,您可以控制自己的机器)。
然后在Home选项卡中选择SQL Server 备份。
2.在步骤1中,单击“+添加计算机”以检测您控制的计算机(带有SQL数据库),然后选择一台进行备份。
3.在步骤2中,点击“+添加”,检测计算机上的所有实例,并选择一个或多个数据库进行备份。您甚至可以选择整个实例。
4. 在步骤 3. 单击“添加存储”以指定共享或 NAS 设备作为存储端。然后“开始备份”。
☛ 如何从备份中恢复 SQL数据库:
1. 创建备份任务后,它将显示在“任务”选项卡中。找到你想要的,点击右上角的“高级”,然后选择“恢复”。
2. 选择您要恢复的计算机及其数据库。如果您已多次备份它们(完整或差异),您还可以在右上角选择要恢复的特定备份。
3. 您可以将这些数据库恢复到原始位置或新位置。使用第二个选项,您可以直接将数据库还原到另一个 SQL Server。然后,单击“开始还原”以执行它。
本文提供了 3 种从Bak 文件中恢复 SQL 数据库的方法。其实,您也可以使用有效的第三方软件——傲梅企业备份网络版版,更直观地管理SQL Server备份和恢复。
它适用于局域网内的所有 PC 和服务器。而且它支持的数据类型不仅是SQL数据库,还包括计算机文件、操作系统、分区和磁盘。