“未select要恢复的备份集”SQL Server 2012
我有一个启用了文件stream的SQL Server 2012数据库。 但是,当我备份并尝试在其他SQL Server 2012实例(在另一台计算机上)上恢复它时,我只会收到以下消息:
没有select要恢复的备份集。
甚至没有更多的解释。 这里有什么问题?
没有文件stream的其他数据库都可以,并且可以成功恢复。 这与文件stream相关吗? 我应该安装一个修补程序或类似的东西。
我有这个问题,事实certificate,我试图恢复到错误的版本的SQL。 如果您想了解更多信息,请尝试使用以下SQL来恢复数据库:
RESTORE DATABASE <YourDatabase> FROM DISK='<the path to your backup file>\<YourDatabase>.bak'
这应该给你错误信息,你需要debugging这个。
我的问题最终成为权限 。 我在开发机器上,并通过家庭组复制。 不知何故,可能基于我将文件复制到的位置,权限被搞砸了,Management Studio无法读取文件。 由于这是dev,我只是给每个人权限的BK文件,然后可以通过GUI成功恢复。
运行时:
RESTORE DATABASE <YourDatabase> FROM DISK='<the path to your backup file>\<YourDatabase>.bak'
它给了我以下错误:
设备“C:\ NorthwindDB.bak”上的媒体家族成立不正确。 SQL Server不能处理这个媒体家族。 RESTORE HEADERONLY正在exception终止。 (Microsoft SQL Server,错误:3241)Blockquote
原来,即使源和目标数据库上的兼容级别相同,也无法将数据库从较高的SQL版本转移到较低的版本。 要检查SQL版本运行:
Select @@Version
要看到不同之处,只需在源 SQL服务器上创build一个数据库,然后尝试从备份文件中进行恢复,当你使用SSMS时,一旦你select了备份文件,它会显示一些关于它的信息,从较低版本的服务器打开它,只会说“没有select要恢复的备份集”
所以,如果您仍然需要将您的数据移动到较低版本的SQL,然后选中此项 。
我以为我不是愚蠢的混淆版本 – 但是,我没有意识到,在我的新服务器上,一个SQL Server 2005实例已经安装从出生名为SQLEXPRESS
。 在尝试将SSMS 2012中的SQL Server 2008 R2备份数据库还原到SQLEXPRESS
实例时,备份集列表为空。
最终我意识到服务器上的SQLEXPRESS
实例不是2012年的实例,而是2005年。我断开连接并连接到实际的 2012实例(在我的情况下命名为SQLEXPRESS2012
),并且它(显然)工作。
以pipe理员身份运行SQL Server Management Studio(右键单击>以pipe理员身份运行),然后尝试恢复。
对不起,我只是注册,不能添加到评论,所以只是复制泰勒福赛思的答案,这正是我的工作。
“我的问题最终成为了权限,我在一台开发机器上,通过Homegroup进行复制,不知何故,可能根据我复制文件的位置,权限被搞乱了,Management Studio无法读取文件。 dev我给每个人权限的BK文件,然后可以通过GUI成功恢复。“ 泰勒·福赛斯
并澄清,我正在从2008年实例恢复备份到2012年,不同的机器(生产vs本地开发)。 备份是一个自动备份,我不需要手动创build这个进程的工作。 只需更改权限(对于本地开发人员来说,每个人都是最简单的),SSMS现在可以正确读取备份文件并恢复到本地开发机器。
我的问题是,我的用户是在内buildpipe理员组,没有用户与SQL Server上的系统pipe理员angular色。 我刚刚以pipe理员身份启动了Management Studio。 这样可以恢复数据库。
在我的情况下,这是权限和事实,我使用“恢复文件和文件组…”,而不是简单地“恢复数据库…”。
这是有区别的。
仅供参考:我发现恢复时,我需要使用相同的(SQL用户)凭据login到SSMS。 我第一次尝试使用Windows身份validation帐户进行还原。
对我来说,问题是在.BAK文件位于服务器上的encryption文件夹中。 即使拥有完整的pipe理权限,我也永远无法让SSMS读取文件。 将.BAK移到未encryption的文件夹解决了我的问题。 请注意,在移动文件后,您可能还必须更改实际文件的属性以删除encryption(右键单击,属性,高级,取消选中“encryption内容以保护数据”。
我与SQL Server 2014有同样的问题(pipe理工作室试图find恢复操作时,无法看到备份文件所在的文件夹)。 这个线程的答案解决了我的问题。 引用:
SQL Server服务帐户可以通过开始 – >控制面板 – >pipe理工具 – >服务find。 双击SQL Server服务 – >login选项卡。 您将使用“本地系统帐户”或“此帐户”来定义特定帐户。 如果使用的是本地系统帐户,则将无法引用不在服务器本地的备份。 相反,如果您已定义要使用的帐户,则这是需要访问备份文件位置的帐户。 您使用个人login访问备份的能力无关紧要; 即使您正在启动备份,也是使用的SQL Server帐户。 您的IT人员应该能够确定授予每个帐户的权利。
希望能帮助别人。
对我而言,这是因为备份文件仍然被另一个进程打开。 这是事件日志:
BackupDiskFile :: OpenMedia:备份设备'X:\ Backups \ MyDatabase \ MyDatabase_backup_2014_08_22_132234_8270986.bak'无法打开。 操作系统错误32(进程无法访问该文件,因为正在被另一个进程使用)。
简单地closures并重新打开Sql Server Management Studio解决它(很明显这是ssms.exe有句柄..)
在我的情况下(新的SQL服务器安装,新创build的用户)我的用户根本没有必要的权限。 我以sa的身份login到Management Studio,然后进入Security / Logins,右键单击我的用户名Properties,然后在Server Roles部分查看sysadmin
。
这个小故障的另一个潜在原因似乎是Google Drive。 Google云端硬盘正在压缩bak文件或其他内容,因此如果您想通过Google云端硬盘传输数据库备份,则必须先将其压缩。
使用SQL Server 2012 Express。
我的错误(从SQLpipe理器 – 恢复数据库对话框):
No backupset selected to be restored
此外,列表中没有显示可供select的备份集。
问题是我已经将5个备份文件中的一个移动到SQL Server服务login用户没有权限的文件夹中 – 我尝试添加该用户,但无法将NT Service \ MSSQL $ SQLEXPRESS用户转移到安全名单。
我把这个文件移动到服务用户的Documents文件夹下,这使得它能够读取我select的所有文件 – 4 – 并且错误改变为“media set missing” – 然后我查找另一个备份文件,当我补充说,我能够恢复。
这个问题的答案帮助我find了正确的地方,并find了解决scheme。
对我来说,这是一个许可问题。 我使用本地用户帐户安装SQL服务器,然后join我的公司域。 之后,我尝试使用我的域帐户恢复数据库,该帐户没有恢复SQL Server数据库所需的权限。 您需要修复您的域帐户的权限,并为您拥有的SQL Server实例授予系统pipe理员权限。
对我来说,它是一个用户prevelege问题。 我用sa用户login,工作正常。
即使我在同一台计算机上进行备份和还原,也得到了相同的错误消息。
问题出在这里:备份时,我在目的地框中有2个项目。
所以解决方法是:确保“目标”框中只有1个项目。 如果有的话,删除所有其他人。