首页 文章

备份集包含除现有数据库之外的数据库的备份

提问于
浏览
393

我正在尝试为我的数据库恢复SQL Server备份文件,但它发出如下错误:

备份集包含现有数据库以外的数据库备份

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

可能是什么问题?

21 回答

  • 1

    我今天遇到了类似的问题 . 尝试了所有上述解决方案,但没有奏效 . 所以在这里发布我的解

    不要忘记在恢复之前取消选中Tail-long Backup

    Don't forget to uncheck Tail-long Backup before restore

    希望它也能帮到别人!

  • 75

    我也遇到过这个问题 .

    方案:

    • 不要创建空数据库并将 .bak 文件还原到它 .

    • 通过右键单击SQL Server Management Studio的"Databases"分支可访问 'Restore Database' 选项,并提供数据库名称,同时提供要还原的源 .

    • 如果另一个数据库仍然存在,也可以在"Files"更改文件名 . 否则你会得到"The file '...' cannot be overwritten. It is being used by database 'yourFirstDb'" .

  • 14

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

    2) Delete 旧数据库冲突并使用 RESTORE 命令再次恢复 .

    有关详细信息,请查看link .

  • 8

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

    在左侧窗格的 Options 下,不要忘记选择

    • 覆盖现有数据库

    • 保留复制设置

    enter image description here

    而已

  • 2

    面对同样的问题,通过这样做,使用SSMS 2014找到了解决方案

    - Just select the Option Overwrite the existing database(WITH REPLACE)
    

    Existing Database> Task> Restore> Database

  • 0
    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';
    
  • 1

    因为原来的 Db.mdf.ldf 文件位于 c:\programFile\.... ,此信息保存在备份中!

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

    因此:

    • 在新服务器上创建一个空DB

    • 右键单击空Db>任务>还原>数据库>单击设备选择 .bak 文件>选择要还原为Db

    • 点击左侧的文件>选择"Relocate all Files to Folder"

    • 单击左侧站点上的选项>单击覆盖

    完成!
    希望能帮助到你!

  • 0

    简单的3个步骤:

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

    2-检查设备是否为源,然后选择 .bak 文件

    3-单击选项并检查以下三个复选标记:

    • check 覆盖现有数据库 .

    • uncheck 在恢复之前进行尾部日志备份

    • check close与目标数据库的现有连接 .

    • 其他选项真的是可选的!

  • 5

    如果您正在使用脚本方法并且有关于LDF和MDF文件的错误, you can first query the the backup file 用于备份集中文件的 logical names (和其他详细信息),请使用以下命令:

    -- 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
    

    您将获得类似于以下内容的结果:

    enter image description here

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

    -- 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 can be found from the SQL Server docs的更多信息 .

  • 45

    同样重要的是确保您尝试还原的备份中的数据库名称是 database name matches . 如果不匹配,您将得到相同的错误 .

  • 0

    在执行任何其他操作之前,请确认您的备份是完整还是差异 . 如果您尝试使用差异备份创建新数据库,则无论您执行什么操作,都会遇到错误 .

  • 20

    system.data.sqlclient.sqlerror:备份集包含现有“Dbname”数据库以外的数据库的备份

    我找到了灵魂

    1)不要创建具有相同名称或不同数据库名称的数据库!重要说明 .

    2)右键单击数据库|任务>还原>数据库

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

    4)选择.bak文件

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

    6)到DataBase:“在这里你可以输入新的数据库名称”(例如:DemoDB)

    7)不要从DropDownlist中选择现有数据库

    8)现在单击Ok按钮,它将创建一个新的数据库并恢复.bak文件中的所有数据 .

    you can get help from this link even

    希望它有助于理清你的问题......

  • 16

    与我同样的问题 . 我的解决方案是:

    • 右键单击数据库 .

    • 选择任务,选择还原数据库 .

    • 单击左侧的选项 .

    • 检查第一个选项覆盖现有数据库(WITH REPLACE) .

    • 转到常规,选择源和目标数据库 .

    • 点击OK,就是这样

  • 1

    我只是想解决这个问题 .

    我尝试了从管理员运行到此处和其他地方的建议;最终为我解决的是检查Files属性选项卡中的“重定位文件”选项 .

    希望这有助于其他人 .

  • 25

    我不得不在我的本地创建新的数据库进行测试,我从我的产品中备份了 . 我首先创建了db并尝试在生成此数据库的新数据库之上运行BAK我的错误 . 我删除了数据库并在恢复屏幕本身中获取新数据库名称时将其恢复 . 在还原时自动创建数据库 .

  • 1

    我通过使用Generate脚本以替代方式完成工作 . 这对我有用,因为Backup-Restore因同样的错误无法解决问题 .

  • 1

    你们中的一些人非常复杂 . 我发现这非常简单 .

    1)创建一个与.bak文件数据库名称同名的数据库!重要

    2)右键单击数据库|任务>还原>数据库

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

    4)选择.bak文件

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

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

    7)选中标记为“保留复制设置(WITH KEEP_REPLICATION)”的复选框

    现在返回General页面并单击OK恢复数据库......就是这样 .

  • 681

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

  • 4

    我确定这个问题与文件和文件夹权限有关 .

  • 9

    您可以还原到新数据库,验证文件名语法,它将在日志文件中,对于新的SQL版本,将是“_log”后缀

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

    法比奥

  • 141

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

    在我的案例中唯一有效的是恢复到一个新的空白数据库 . 这非常有效,并没有尝试覆盖 生产环境 文件(如果您只是将 生产环境 备份文件还原到现有的临时数据库,那就是这样) . 然后删除旧数据库并重命名 - 文件将保留新的临时名称,但在我的情况下,这很好 .

    (或以其他方式首先删除登台数据库,然后您可以还原到与登台数据库同名的新数据库)

相关问题