我试图恢复我的数据库的SQL Server备份文件,但它抛出一个错误如下:
备份集保存现有数据库以外的数据库的备份
我的数据库是SQL Server 2008,备份文件是2005年的。
会有什么问题呢?
我试图恢复我的数据库的SQL Server备份文件,但它抛出一个错误如下:
备份集保存现有数据库以外的数据库的备份
我的数据库是SQL Server 2008,备份文件是2005年的。
会有什么问题呢?
当前回答
:
1)在使用RESTORE命令时使用WITH REPLACE(如果使用GUI,则在Options ->覆盖现有数据库(WITH REPLACE))。
2)删除冲突的旧数据库,使用restore命令重新恢复。
查看链接了解更多细节。
其他回答
我通过另一种方式完成工作,使用生成脚本。这对我来说确实有用,因为由于同样的错误,Backup-Restore没有帮助解决这个问题。
我试图将一个生产数据库恢复到同一台服务器上的一个登台数据库。
在我的案例中,唯一有效的是恢复到一个新的空白数据库。这工作得很好,没有尝试覆盖生产文件(如果您只是将生产备份文件恢复到现有的登台数据库,则会覆盖生产文件)。然后删除旧数据库并重命名-文件将保留新的临时名称,但在我的情况下,这是好的。
(或者先删除暂存数据库,然后恢复到与暂存数据库同名的新数据库)
在选项中,将“还原为”文件名称更改为新的数据库mdf和ldf。它引用源数据库的.mdf和.ldf文件。
简单3步:
1-右键单击数据库→任务→恢复→数据库
2-检查设备作为源,并找到。bak(或压缩。bak)文件
3-在左侧窗格单击选项和:
check覆盖现有数据库。 恢复前进行尾日志备份 关闭到目标数据库的现有连接。
其他选项都是可选的(当然也很重要)!
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';