备份集保存了现有数据库以外的备份

我正在尝试为我的数据库还原一个SQL Server备份文件,但它是抛出一个错误,如下所示:

备份集保存了现有数据库以外的备份

我在SQL Server 2008中的数据库和备份文件是在2005年。

可能是什么问题?

我也遇到过这个问题。

解答:

  • 不要创build一个空的数据库,并将.bak文件恢复到它。
  • 右键单击SQL Server Management Studio的“数据库”分支,使用“恢复数据库”选项,并提供数据库名称,同时提供恢复源。
  • 如果其他数据库仍然存在,请在“文件”中更改文件名。 否则,您将得到“文件'…'不能被覆盖,正在被数据库'yourFirstDb'”使用。

1)在使用RESTORE命令时使用WITH REPLACE

2) Delete冲突的旧数据库,使用RESTORE命令再次RESTORE

检查链接了解更多详情。

首先创build一个同名的空白数据库。 然后去恢复选项

在左侧窗格的选项下 ,不要忘记select

  • 覆盖现有的数据库
  • 保留复制设置

在这里输入图像说明

而已

面对同样的问题,通过使用SSMS 2014来find解决scheme

 - 只需select选项覆盖现有数据库(WITH REPLACE) 

现有的数据库>任务>恢复>数据库

 USE [master]; GO CREATE DATABASE db; GO CREATE DATABASE db2; GO BACKUP DATABASE db TO DISK = 'c:\temp\db.bak' WITH INIT, COMPRESSION; GO RESTORE DATABASE db2 FROM DISK = 'c:\temp\db.bak' WITH REPLACE, MOVE 'db' TO 'c:\temp\db2.mdf', MOVE 'db_log' TO 'c:\temp\db2.ldf'; 

今天我遇到了类似的问题。 试过以上所有的解决scheme,但没有奏效。 所以张贴我的解决scheme

不要忘记在还原之前取消选中“尾部备份”

不要忘记在还原之前取消选中“尾部备份”

希望它也能帮助别人!

因为原始Db中的.mdf和.ldf文件位于也许是c:\ programFile ….并且这个信息保存在备份!

如果您在安装位于c:\ program Files(x86)\ ….的其他SQL Server上创build相同的数据库,则通常无法恢复。 您需要重新定位.mdf和.ldf文件的path。

因此:

  • 在新的服务器上创build一个空的数据库

  • 右键点击空Db> Tasks> Restore> DataBase> cick Deviceselect你的.bak文件>selectDb恢复到

  • 点击左侧的文件>select“重定位所有文件到文件夹”
  • 单击左侧站点上的选项>单击覆盖

完成!
希望能帮助到你!

同样重要的是要确保您的数据库名称与正在尝试还原的备份中的数据库名称相匹配 。 如果不匹配,则会得到相同的错误。

在做其他事情之前,请确认您的备份是全备份还是差异备份。 如果您尝试使用差异备份创build新数据库,则无论您做什么,都会遇到错误。

如果您正在使用脚本方法并且存在有关LDF和MDF文件的错误,则可以使用以下命令首先查询备份文件 ,以获取备份集中文件逻辑名称 (和其他详细信息):

 -- Queries the backup file for the file list in backup set, where Type denotes -- type of file. Can be L,D,F or S -- info: https://docs.microsoft.com/en-us/sql/t-sql/statements/restore-statements-filelistonly-transact-sql RESTORE FILELISTONLY FROM DISK = 'C:\Temp\DB_backup.bak' GO 

您将得到类似于以下的结果:

在这里输入图像说明

然后你可以在查询中使用这些逻辑名称:

  -- Script assumes you want MDF and LDF files restored on separate drives. Modify for your scenario RESTORE DATABASE DB FROM DISK='C:\Temp\DB_backup.bak' WITH REPLACE, MOVE 'DB' TO 'E:\MSSQL\Data\DB.mdf', -- "DB" is the mdf logical name from query above MOVE 'DB_log' TO 'F:\MSSQL\Logs\DB.mdf'; -- "DB_log" is LDF logical name from query above 

有关RESTORE FILELISTONLY更多信息,请参阅SQL Server文档 。

简单的3个步骤:

1-右键单击数据库>任务>恢复>数据库

2-检查设备作为源并select.bak文件

3-点击选项并检查这三个选中标记:

  1. 检查 OverWrite现有的数据库。
  2. 在还原之前取消选中尾部日志备份
  3. 检查closures与目标数据库的现有连接。
  4. 其他选项真的是可选的!

我只是想解决这个问题。

我尝试了一切从pipe理运行到在这里和其他地方find的build议。 最终解决的办法是检查“文件属性”选项卡中的“重定位文件”选项。

希望这可以帮助别人。

我必须在我的本地创build新的数据库进行testing,我从我的产品备份。 我首先创build了数据库,并试图在新的数据库之上运行BAK,这为我产生了这个错误。 我删除了数据库,并恢复它,而在恢复屏幕本身采购新的数据库名称。 数据库是在恢复时自动创build的。

我通过交替的方式完成了工作,使用生成脚本。 这对我来说很有用,因为备份还原并不能帮助解决由于同样的错误所导致的问题。

你们中的一些人已经非常复杂了。 我发现这是非常简单的。

1)创build一个与.bak文件数据库名称相同的数据库!

2)右键单击数据库| 任务>恢复>数据库

3)在“恢复源”下select“从设备”

4)select.bak文件

5)在下面的gridview中选中数据库的checkbox

6)在右侧的“select页面”下select“选项”

7)选中标有“保留复制设置(WITH KEEP_REPLICATION)”checkbox

现在回到常规页面,点击确定恢复数据库…就是这样。

在选项中,将“还原为”文件名更改为新的数据库mdf和ldf。 它引用源数据库.mdf和.ldf文件。

我确定这个问题是关系到文件和文件夹的权限。

您可以恢复到一个新的数据库,validation文件名的语法,它将在日志文件中,为新的SQL版本ll是一个“_log”后缀

广告检查覆盖选项选项卡中的现有数据库标志

法比奥

我试图将生产数据库还原到同一台服务器上的临时数据库。

在我的情况下唯一的工作是恢复到一个新的空白数据库。 这很好,没有试图覆盖生产文件(如果你只是将生产备份文件恢复到现有的临时数据库)。 然后删除旧的数据库和重命名 – 文件将保持新的临时名称,但在我的情况下,这是好的。

(或者先删除临时数据库,然后再恢复到与临时数据库同名的新数据库)

同样的问题与我对我的解决scheme是:

  1. 右键点击数据库。
  2. select任务,select恢复数据库。
  3. 点击左侧的选项。
  4. 检查第一个选项OverWrite现有的数据库(WITH REPLACE)。
  5. 转到常规,select源和目标数据库。
  6. 点击确定,就是这样