将.bak文件导入到SQL Server中的数据库


230

我有一个带有.bak扩展名的文件。

如何将此日期导入到SQL Server中的数据库?


我假设您正在使用MSSQL,这是一个线程,介绍了几种还原方法。
安德鲁·基思

您可以使用.bak创建一个空数据库,并将数据还原到空数据库中
Michel Ayres 2012年

最简单的方法是第三个答案,右键单击数据库,导入,设备,选择.bak文件,完成。
马菲

有人可以扩大自动化友好解决方案的答案吗?通过UI并单击几次并不是十分有效。
L. Holanda

Answers:


251

SQL Server Management Studio上

  1. 右键单击左窗格上的“ 数据库 ”(对象资源管理器)
  2. 单击还原数据库...
  3. 选择设备,单击...,然后添加您的.bak文件
  4. 单击确定,然后再次确定

做完了


4
这就像一个魅力。这些是出色的简化说明,它们基本上是此处投票最多的答案中提到的Microsoft官方链接中的相同说明。
莱昂纳多·洛佩兹

3
如果失败,则可能需要擦除现有数据库。
DigitalDesignDj

3
这对我不起作用。我指向正确的文件夹,它甚至看不到文件。我在对话框上粘贴了确切的文件名,并说该文件不存在。另外,该对话框还会看到我的服务器上不存在的驱动器。数据库是否记住上次备份的位置,并且仅从该点开始接受还原?我发现无法选择要还原的备份文件感到很奇怪。
詹姆斯

13
我的.BAK文件位于用户帐户下的“下载”目录中。我必须将.BAK文件移动到C:的根目录中,以便此工具可以看到它并允许我从其中恢复。由于某种原因,我的用户下面的文件没有被看到。
jeremysawesome

6
这是行不通的。我右键单击“数据库”,但是没有“还原数据库...”。
user34660 '17

53

.bak文件是数据库备份。您可以使用以下方法还原备份:

如何:还原数据库备份(SQL Server Management Studio)


8
这是行不通的。文章说:“ ... 2)展开数据库。根据数据库,选择一个用户数据库或展开“系统数据库”,然后选择一个系统数据库。3)右键单击该数据库,指向“任务”,然后单击“确定”。恢复。” 不!您无法右键单击不存在的数据库!毕竟,您正在尝试还原或导入给定的数据库。如何右键单击未加载的数据库?陈述了MSDN的怪异之处,并加剧了SSMS中的还原功能,但这种方法不起作用。为什么?幸运的是,其他人在这里执行的SQL命令。
尼古拉斯·彼得森

14
这里有另一篇文章介绍了如何还原到新数据库:msdn.microsoft.com/en-us/library/ms186390
v=sql.90).aspx

35
RESTORE FILELISTONLY 
FROM DISK = 'D:\3.0 Databases\DB.bak' 

RESTORE DATABASE YourDB
FROM DISK = 'D:\3.0 Databases\DB.bak' 

并且您必须使用以下命令移动适当的mdf,ndf和ldf文件

 With Move 'primarydatafilename' To 'D:\DB\data.mdf', 
 Move 'secondarydatafile'To 'D:\DB\data1.ndf', 
 Move 'logfilename' To 'D:\DB\log.ldf'

1
这对我非常有帮助,因为我想使用Azure Data Studio将.bak文件还原到具有macOS主机的sql Docker容器中。我要做的就是将.bak复制到容器中,调整路径并将其更改为/,这样我就能够成功还原。
安德鲁布(Andrewb)

很高兴它帮助了@andrewb :)
RameshVel19年


18

而不是选择“还原数据库...”,而是选择“ 还原文件和文件组...”。

然后输入数据库名称,选择您的.bak文件路径作为源,选中“还原”复选框,然后单击“确定”。如果.bak文件有效,它将起作用。

(对于很简单的任务,SQL Server还原选项名称并不直观。)


这是一个很好的建议,我这样做了,它报告说还原成功。但是仍然存在一些问题……对象浏览器中未列出数据库。我尝试“附加”,它甚至具有正确的.mdf文件可用(我认为是还原产品)。如果尝试连接,它将引发一个错误,表明它已被使用。您对此阶段有什么建议吗?
AlanSE

确保在最后进行刷新以查看新数据库。这可能是启动和运行的最快解决方案。
demongolem '16

当我要在本地导入同一数据库.bak作为新数据库时,这是对我
有用的选项

7
  1. 连接到您要存储数据库的服务器
  2. 右键单击数据库
  3. 单击还原
  4. 选择源部分下的设备单选按钮
  5. 单击添加。
  6. 导航到.bak文件的存储路径,选择它,然后单击“确定”。
  7. 输入数据库的目的地
  8. 输入您想用来存储数据库的名称
  9. 点击确定

完成了


4

只需使用

sp_restoredb“您的数据库名称”,“您要还原的位置”

示例:sp_restoredb'omDB','D:\ abc.bak'


这是什么之间的差异RESTORE DATABASE,如msdn.microsoft.com/en-us/library/ms178099(v=sql.105).aspx
不知所措'17

1
还原数据库仅在数据库的结构与备份文件相同时才执行还原操作,但sp_restoredb即使您的数据库具有不同的结构或完全为空(新),也要执行还原。
奥普克拉卡什tomar

3
  1. 将备份.bak文件复制到PC的以下位置:C:\ Program Files \ Microsoft SQL Server \ MSSQL11.SQLEXPRESS \ MSSQL \ DATA
  2. 连接到您要存储数据库的服务器
  3. 右键单击数据库
  4. 单击还原
  5. 选择源部分下的设备单选按钮
  6. 单击添加。
  7. 导航到.bak文件的存储路径,选择它,然后单击“确定”。
  8. 输入数据库的目的地
  9. 输入您想用来存储数据库的名称
  10. 点击确定

上述解决方案没有将备份(.bak)文件保存在哪里。这应该可以解决问题。它为我工作。


1

如果在开发过程中经常需要还原数据库,则可以使用节点包。

安装:

npm install -g sql-bak-restore

用法:

sql-bak-restore <bakPath> <dbName> <oldDbName> <owner>

参数:

  • bakpath,文件的相对或绝对路径
  • dbName,要还原到的数据库(如果存在,则将删除具有该名称的数据库!!)
  • oldDbName,数据库名称(如果不知道,请指定内容并运行,运行后将看到可用的数据库。)
  • 所有者,要赋予并授予db_owner特权的用户名(密码“ 1”)

!! sqlcmd命令行实用程序应位于PATH变量中。

https://github.com/vladimirbuskin/sql-bak-restore/


1

在Microsoft SQL Server Management Studio 2019上:

在此处输入图片说明

在“还原数据库”窗口上:

  1. 选择设备

  2. 选择添加并选择目标文件

  3. 确定确认

  4. 单击确定以确认还原

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.