【问题标题】:How to restore data from single bak file which contain multiple mdf file in 2008R2如何从 2008R2 中包含多个 mdf 文件的单个 bak 文件中恢复数据
【发布时间】:2020-07-10 13:09:59
【问题描述】:

我在一个 bak 文件中有多个 mdf 文件,如何恢复数据库中的 bak 文件。

【问题讨论】:

    标签: sql-server sql-server-2008 database-backups


    【解决方案1】:

    您可以运行该命令来查看您的 bak 文件的文件列表:

    RESTORE FILELISTONLY FROM DISK ='<path>\<yourfile.bak>'
    

    看到文件后,您可以构建一个类似的恢复命令(仅作为示例):

    restore database [db_name] from disk = '<file>.bak'
    with 
    move '<data_file_name>' to 'D:\MSSQL\Data\<file>.mdf',
    move '<log_file_name>' to 'D:\MSSQL\Data\<file>.ldf'
    

    【讨论】:

      【解决方案2】:

      运行restore headeronly 列出文件(设备)中的备份集,然后运行restore filelistonly 以查看要恢复的备份集的详细信息,然后运行restore database 以选定的备份集为目标。

      --create the backup file
      backup database adventureworks2017 to disk='c:\temp\aw.bak' with format, init
      
      --append some more backups to the file
      backup database adventureworks2017 to disk='c:\temp\aw.bak' 
      backup database adventureworks2017 to disk='c:\temp\aw.bak' 
      
      restore headeronly from disk='c:\temp\aw.bak' 
      
      restore filelistonly from disk='c:\temp\aw.bak' with file=2
      
      restore database adventureworks2017 from disk='c:\temp\aw.bak' with file=2
      

      【讨论】:

      • 我收到错误消息,您能否帮助 Msg 3154,级别 16,状态 4,第 6 行备份集包含现有“ABCDB”数据库以外的数据库的备份。消息 3013,级别 16,状态 1,第 6 行 RESTORE DATABASE 异常终止。IT 有 3 个 mdf 文件,其中包含 abcdb、abcdb_index、abcdb_mac 和一个日志文件 abcdb_log
      • 该错误警告您,您正在尝试使用其他数据库的备份覆盖数据库。如果这是您想要的,您必须在 RESTORE 命令中指定 WITH REPLACE。见docs.microsoft.com/en-us/sql/t-sql/statements/…
      猜你喜欢
      • 1970-01-01
      • 2020-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多