我试图恢复我的数据库的SQL Server备份文件,但它抛出一个错误如下:
备份集保存现有数据库以外的数据库的备份
我的数据库是SQL Server 2008,备份文件是2005年的。
会有什么问题呢?
我试图恢复我的数据库的SQL Server备份文件,但它抛出一个错误如下:
备份集保存现有数据库以外的数据库的备份
我的数据库是SQL Server 2008,备份文件是2005年的。
会有什么问题呢?
当前回答
这是因为原始Db中的.mdf和.ldf文件可能位于c:\programFile\....这个信息保存在备份!
如果您在安装在c:\program Files (x86)\ ....的不同SQL Server上创建了相同的DB您不能像往常一样恢复。您需要重新定位.mdf和.ldf文件的路径。
因此:
在新的Server上创建一个空DB 右键单击空Db >任务>恢复>数据库>单击设备选择您的。bak文件>选择Db恢复到 选择“重新定位所有文件到文件夹” 点击左边站点>的选项,点击覆盖
完成了! 希望能有所帮助!
其他回答
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';
在执行其他操作之前,请确认备份是全量备份还是差动备份。如果您试图从差异备份中创建一个新数据库,那么无论您做什么,都会遇到错误。
您可以恢复到一个新的数据库,验证文件名语法,它将在日志文件中,对于新的SQL版本将是“_log”后缀
AD检查覆盖现有的数据库标志在选项卡
Fabio
我也面临同样的问题,并通过这样做找到了解决方案,使用SSMS 2014
Just select the Option Overwrite the existing database(WITH REPLACE)
通常处理.bak文件会让人头疼,一种更直接的方法是使用sqldump文件来传输数据库。
生成要移动或复制的当前数据库的脚本。 选择All Tables,而不是整个数据库。 从选项菜单中选择另存为脚本,然后单击高级按钮并设置以下配置(我正在起诉MSSQL 2016): 现在,在你想导入这些数据的地方,创建一个新数据库,切换到这个新数据库(我的意思是设置为默认值) 最后运行脚本,将导入所有表和数据。
祝你好运。
列表项