1

我有一个 .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 ?

4

3 回答 3

1

经过一番深入研究,我终于发现这是 sql server 2005 中的一个错误。安装SP3后一切正常。

于 2010-01-27T11:59:41.210 回答
0

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

请注意,这是我使用 MSSQL 08,但如果我没记错的话,05 的管理工作室并没有太大的不同。

我相信这里的其他人知道更清洁的方法,但上述方法会起作用。

于 2010-01-27T09:40:13.207 回答
0

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

根据您的设置,除非文件实际上是“设备”并且备份没有启动设备/文件,否则每个文件都有一个备份。

于 2010-01-27T09:42:36.547 回答