从单个备份文件还原两个数据库(SQL Server 2005)

时间:2010-01-27 09:28:20

标签: sql-server-2005 backup database-restore

我有一个.bak文件,其中包含两个不同数据库的备份集。它是由sql server维护计划制作的。现在我必须恢复两个数据库。问题是,当第一个数据库恢复正常(db_companies)时,另一个数据库(db_data)会出错:

  

服务器'SBSERVER'的恢复失败。   (Microsoft.SqlServer.Smo)

     

System.Data.SqlClient.SqlError:   逻辑文件'CompaniesDB'   不是数据库'DataDB'的一部分。使用   RESTORE FILELISTONLY列出   逻辑文件名。   (Microsoft.SqlServer.Smo)

数据库恢复向导显示两个数据库,我选择完整和最新的差异集。 RESTORE FILELIST命令仅显示 CompaniesDB。怎么了?

我也尝试过RESTORE DATABASE WITH MOVE,但它无法识别DataDB逻辑名。

有没有办法从备份集中恢复 DataDB

3 个答案:

答案 0 :(得分:1)

经过深入研究后,我终于发现这是sql server 2005中的一个错误。安装完 SP3后一切都很顺利。

答案 1 :(得分:0)

1)如果您(在Management Studio中),分离db_data,备份现有的mdf和日志,然后完全删除数据库,确保mdf和日志已从其原始DATA文件夹中删除。
2)然后,右键单击数据库并转到“还原数据库”
3)首先选择来源!转到“从设备”并浏览到.MDF
4)现在展开“还原目标”部分下标题为“To Database”的下拉列表,然后选择db_data。
5)单击“确定”
6)它应该恢复正常,右键单击它,转到属性并设置所有者。

请注意,这是我使用的MSSQL 08,但如果内存对我有用,那么05年的管理工作室并没有太大的区别。

我确定此处的其他人知道更清洁的方式,但上述方法将有效。

答案 2 :(得分:0)

bak文件可能没有两个数据库的备份。

根据您的设置,每个文件只有一个备份,除非该文件实际上是“设备”,备份没有初始化设备/文件。