我试图恢复我的数据库的SQL Server备份文件,但它抛出一个错误如下:
备份集保存现有数据库以外的数据库的备份
我的数据库是SQL Server 2008,备份文件是2005年的。
会有什么问题呢?
我试图恢复我的数据库的SQL Server备份文件,但它抛出一个错误如下:
备份集保存现有数据库以外的数据库的备份
我的数据库是SQL Server 2008,备份文件是2005年的。
会有什么问题呢?
当前回答
这是因为原始Db中的.mdf和.ldf文件可能位于c:\programFile\....这个信息保存在备份!
如果您在安装在c:\program Files (x86)\ ....的不同SQL Server上创建了相同的DB您不能像往常一样恢复。您需要重新定位.mdf和.ldf文件的路径。
因此:
在新的Server上创建一个空DB 右键单击空Db >任务>恢复>数据库>单击设备选择您的。bak文件>选择Db恢复到 选择“重新定位所有文件到文件夹” 点击左边站点>的选项,点击覆盖
完成了! 希望能有所帮助!
其他回答
我试图将一个生产数据库恢复到同一台服务器上的一个登台数据库。
在我的案例中,唯一有效的是恢复到一个新的空白数据库。这工作得很好,没有尝试覆盖生产文件(如果您只是将生产备份文件恢复到现有的登台数据库,则会覆盖生产文件)。然后删除旧数据库并重命名-文件将保留新的临时名称,但在我的情况下,这是好的。
(或者先删除暂存数据库,然后恢复到与暂存数据库同名的新数据库)
我也遇到过这个问题。
解决方案:
不要创建一个空数据库并在其中恢复.bak文件。 使用“恢复数据库”选项,可通过右键单击SQL Server Management Studio的“数据库”分支,并提供数据库名称 提供要恢复的源。 如果另一个数据库仍然存在,也要在“Files”处更改文件名。否则你会得到“The file”…'不能被覆盖。它正在被数据库'yourFirstDb'使用”。
有些人把这个问题看得太复杂了。我发现这非常简单。
1)创建一个与你的.bak文件数据库名称相同的数据库
2)右键单击数据库| Tasks >恢复>数据库
3)在“还原源”下选择“从设备”
4)选择“。bak”文件
5)在下面的网格视图中选中数据库对应的复选框
6)在右侧的“选择页面”下选择“选项”
7)选中“保留复制设置(WITH KEEP_REPLICATION)”复选框
现在返回到General页面,单击OK恢复数据库…就是这样。
我确定这个问题与文件和文件夹权限有关。
在选项中,将“还原为”文件名称更改为新的数据库mdf和ldf。它引用源数据库的.mdf和.ldf文件。