【问题标题】:Query for restoring a .bak file to a new Database?查询将 .bak 文件恢复到新数据库?
【发布时间】:2013-10-08 15:26:35
【问题描述】:

我正在使用此查询将我的备份文件恢复到新数据库。

RESTORE FILELISTONLY
FROM DISK = 'D:\abc.bak'

RESTORE DATABASE TestDB2 
FROM disk = 'D:\abc.bak'
WITH
MOVE 'cse' TO 'E:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL \DATA\TestDB2.mdf',
MOVE 'cse_log' TO 'E:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\TestDB2_log.ldf'
GO

但是它抛出了一个错误:

消息 3132,第 16 级,状态 1,第 1 行
媒体集有 2 个媒体系列,但仅提供 1 个。必须提供所有成员。
消息 3013,第 16 级,状态 1,第 1 行
RESTORE DATABASE 异常终止。

我是 SQL Server 2008 的新手。请帮忙。

【问题讨论】:

  • 您能否使用WITH INIT 将单个备份备份到 单个.BAK 文件? RESTORE HEADERONLY 显示什么?
  • 我们如何备份'WITH INIT'?
  • 呃,BACKUP DATABASE TestDB TO DISK = '...new filename...' WITH INIT;
  • 尝试使用 INIT ,但现在恢复时显示错误:The backup set holds a backup of a database other than the existing 'TestDB2' database.
  • 如果已经有一个名为 TestDB2 的数据库来自不同的备份集,那么您还需要使用 WITH REPLACE。或者,当然你可以尝试一些非常疯狂的东西并将其命名为TestDB3

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


【解决方案1】:
RESTORE DATABASE TestDB2 
FROM DISK = 'D:\abc.bak'
WITH FILE = 1,  
MOVE 'CSE' TO N'E:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL \DATA\TestDB2.mdf',  
MOVE N'(your DB name)_LOG' TO N'E:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\TestDB2_log.ldf',  
NOUNLOAD,  
REPLACE,  
STATS = 10
GO

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-13
    • 1970-01-01
    • 2019-12-20
    • 1970-01-01
    相关资源
    最近更新 更多