我有一个启用了文件流的SQL Server 2012数据库。但是,当我备份它并尝试在另一台SQL Server 2012实例(在另一台计算机上)上还原它时,我仅收到以下消息:
没有选择要还原的备份集。
甚至没有一行得到更多的解释。怎么了
没有文件流的所有其他数据库都可以,并且可以成功还原。它和文件流有关吗?我应该安装修补程序或类似的东西。
我有一个启用了文件流的SQL Server 2012数据库。但是,当我备份它并尝试在另一台SQL Server 2012实例(在另一台计算机上)上还原它时,我仅收到以下消息:
没有选择要还原的备份集。
甚至没有一行得到更多的解释。怎么了
没有文件流的所有其他数据库都可以,并且可以成功还原。它和文件流有关吗?我应该安装修补程序或类似的东西。
Answers:
我遇到了这个问题,事实证明我试图还原到错误的SQL版本。如果您想要更多有关正在发生的事情的信息,请尝试使用以下SQL还原数据库:
RESTORE DATABASE <YourDatabase>
FROM DISK='<the path to your backup file>\<YourDatabase>.bak'
那应该给您错误消息您需要调试此。
No backupset selected to be restored.
RESTORE DATABASE <YourDatabase> FROM DISK='<the path to your backup file>\<YourDatabase>.bak' WITH REPLACE
我的问题最终是权限。我在开发机上,并通过Homegroup复制。某种程度上,可能是基于我将文件复制到的位置,权限被弄乱了,Management Studio无法读取文件。由于这是开发人员,因此我仅向所有人授予了bak文件的权限,然后可以通过GUI成功还原。
.bak
文件还原数据库时遇到相同的问题,该文件是由在IIS下运行的文件上传Web服务创建的ApplicationPoolIdentity
运行时:
RESTORE DATABASE <YourDatabase>
FROM DISK='<the path to your backup file>\<YourDatabase>.bak'
它给了我以下错误:
设备'C:\ NorthwindDB.bak'上的媒体系列格式错误。SQL Server无法处理此媒体系列。RESTORE HEADERONLY正在异常终止。(Microsoft SQL Server,错误:3241)
事实证明,即使源数据库和目标数据库的兼容性级别相同,也无法将数据库从高级SQL版本升级到较低版本。要检查SQL版本,请运行:
Select @@Version
要了解差异,只需在源 SQL Server 上创建一个数据库,然后尝试从备份文件中进行还原,当您使用SSMS进行此操作时,一旦选择了备份文件,它将显示一些有关该文件的信息,与您选择时一样从较低版本的服务器打开它,它只会显示“未选择要还原的备份集”
因此,如果仍然需要将数据移至较低版本的SQL,请选中This。
我以为我不够愚蠢,无法混合使用各种版本-但是,我没有意识到在新服务器上已经安装了名为的SQL Server 2005实例SQLEXPRESS
。尝试将SSMS 2012中的SQL Server 2008 R2备份数据库还原到SQLEXPRESS
实例时,备份集列表为空。
最终,我意识到SQLEXPRESS
服务器上的实例不是2012年实例,而是2005年。我断开连接并连接到实际的 2012年实例(在我的情况下为SQLEXPRESS2012
),并且(显然)可以正常工作。
我的问题是我的用户位于“内置管理员”组中,而没有SQL Server上具有Sysadmin-role的用户。我刚刚以管理员身份启动Management Studio。这样就可以还原数据库。
我在SQL Server 2014中遇到了相同的问题(尝试为还原操作查找备份文件时,Management Studio无法看到备份文件所在的文件夹)。该线程提供了解决我问题的答案。引用:
可以通过“开始”->“控制面板”->“管理工具”->“服务”找到SQL Server服务帐户。双击“ SQL Server服务”->“登录”选项卡。您将使用“本地系统帐户”或“此帐户”来定义特定帐户。如果您使用的是本地系统帐户,则将无法引用非服务器本地的备份。相反,如果您已定义要使用的帐户,则该帐户需要访问备份文件位置。使用个人登录名访问备份的能力无关紧要;即使正在启动备份,也将使用SQL Server帐户。您的IT人员应该能够确定授予每个帐户哪些权利。
希望能对某人有所帮助。
如果要完全替换现有数据库,请使用WITH REPLACE选项:
RESTORE DATABASE <YourDatabase>
FROM DISK='<the path to your backup file>\<YourDatabase>.bak'
WITH REPLACE
使用SQL Server 2012 Express。
我的错误(来自“ SQL管理器-还原数据库”对话框):
No backupset selected to be restored
此外,列表中没有可供选择的备份集。
问题是我将5个备份文件中的1个移到了SQL Server服务登录用户没有权限的文件夹中-我试图添加该用户,但无法将NT Service \ MSSQL $ SQLEXPRESS用户添加到安全性中清单。
我将文件移到了服务用户的Documents文件夹下,这使其能够读取我选择的所有文件-当时是4个-并且错误更改为“缺少媒体集”-然后我四处寻找另一个备份文件,当我添加时,我能够还原。
这个问题的答案帮助我寻找正确的地方,并努力找到解决方案。
对我来说,这是一个许可问题。在加入公司域之前,我使用本地用户帐户安装了SQL Server。稍后,我尝试使用我的域帐户还原数据库,该域帐户没有还原SQL Server数据库所需的权限。您需要修复您的域帐户的权限,并为您拥有的SQL Server实例授予系统管理员权限。