无法还原 Team Foundation 服务器数据库

Posted

技术标签:

【中文标题】无法还原 Team Foundation 服务器数据库【英文标题】:Failed to restore Team Foundation server databases 【发布时间】:2013-09-09 01:25:54 【问题描述】:

恢复 TFS 数据库时出错

我已经使用 Team Foundation Server 管理控制台安排了我们的 Team Foundation Server 的备份。每天晚上都需要进行一次完整备份,而且看起来确实如此。

现在灾难发生了,我们的 tfs 崩溃了,我正在使用 tfs 2012 设置一个新的 Windows 服务器。幸运的是我有备份......但是.....

恢复备份似乎并不容易。 当我恢复时,我收到以下错误消息:

TF401001:数据库的还原操作...失败。请参阅日志以获取更多信息

我为每个数据库(ReportServer、ReportServerTempDB、Tfs_warehouse、tfs_defaultcollection、TFS_configuration)获取此信息。

查看日志文件:

[Info @09:07:33.420] 恢复数据库 [Tfs_Configuration] 从磁盘 = N'\\172.16.46.234\Backup_TeamFS.crashed\Tfs_Configuration_9858508765097608601L.trn' 恢复,NOUNLOAD,STATS = 10,STOPATMARK = N'TfsMarkTfpt [错误@09:07:33.514] TF401001:数据库 Tfs_Configuration 的还原操作失败。请参阅日志以获取更多信息 [错误@09:07:33.514] 异常消息:数据库“Tfs_Configuration”不存在。 RESTORE 只能在还原主文件的完整备份或文件备份时创建数据库。 RESTORE DATABASE 异常终止。 (类型 SqlException) SQL 异常类:16 SQL 异常号:3118 SQL异常过程: SQL 异常行号:1 SQL 异常服务器:TEAMFS SQL 异常状态:1 SQL 错误: SQL 错误 [1]:System.Data.SqlClient.SqlError:RESTORE DATABASE 异常终止。 班级:16 编号:3013 服务器:TEAMFS 来源:.Net SqlClient 数据提供者 状态:1 程序: 行号:1 异常数据字典: HelpLink.ProdName = Microsoft SQL Server HelpLink.EvtSrc = MSSQLServer HelpLink.EvtID = 3118 HelpLink.BaseHelpUrl = http://go.microsoft.com/fwlink HelpLink.LinkId = 20476 异常堆栈跟踪:在 Microsoft.TeamFoundation.Admin.SqlDatabaseBackupRestoreComponent.Execute(String sqlStatement) 在 Microsoft.TeamFoundation.Admin.SqlDatabaseRestore.Restore(字符串连接字符串) 在 Microsoft.TeamFoundation.Admin.RestoreFactory.RestoreLogs(ActivityContext 上下文,字符串服务器名称,字符串数据库名称,字符串路径,列表`1 备份链,布尔 useMarkAtEnd,Int32 minPercent) 在 Microsoft.TeamFoundation.Admin.RestoreDatabases.Run(ActivityContext 上下文)

但是,我完全确定我确实有完整备份。查看备份中的日志文件:

[9/1/2013 10:24:44 PM] [信息] 开始完整备份 [9/1/2013 10:24:44 PM] [信息] 采取完整备份服务器:TEAMFS 数据库:Tfs_Configuration 文件名:\\172.16.46.234\Backup_TeamFS\Tfs_Configuration_9858508747697505276F.bak [9/1/2013 10:24:44 PM] [信息] 备份数据库 [Tfs_Configuration] 到磁盘 = N'\\172.16.46.234\Backup_TeamFS\Tfs_Configuration_9858508747697505276F.bak' 带有 NOFORMAT、NOINIT、NOSKIP、倒带、NOUNLOAD、STATS = 10 [9/1/2013 10:32:17 PM] [信息] 数据库 Tfs_Configuration 备份完成 [9/1/2013 10:32:17 PM] [信息] 完成完整备份服务器:TEAMFS 数据库:Tfs_Configuration 文件名:\\172.16.46.234\Backup_TeamFS\Tfs_Configuration_9858508747697505276F.bak

更新 我只安排备份进行完整备份,而不是增量备份。也许与此有关?

【问题讨论】:

【参考方案1】:

我们已经做到了,所以我将分享我的经验..

所以你有备份..

此外,您还有一个全新的 TFS 操作系统和安装文件(在我们的例子中是 TFS 2013)

    双击安装文件。

    安装完成后,理想情况下,MSDN 会告诉您关闭窗口,然后在 TFS CONSOLSE 中,您必须转到计划备份以恢复哪个 FAILS,因此以下方法将帮助您解决问题:

一个。通过 SQL 管理控制台恢复配置和团队集合数据库

b.打开 TFS 管理控制台

c。单击应用程序层并配置此功能

d。以管理员身份运行 CMD 并运行以下命令: TFSConfig Accounts /add /AccountType:ApplicationTier /Account:"NT Authority\Network Service" SQLInstance:ServerName /DatabaseName:TFS_Configuration

e。然后只需按照步骤 c 中工具中的下一步按钮即可。

干杯

【讨论】:

【参考方案2】:

这就是我如何解决这个问题。使用您的 SQL 管理工具来恢复备份文件。它们就像常规的数据库备份文件一样,因此您只需将它们视为文件即可。

完成后,您可以在 TFS 控制台中查看您的集合。

在这个过程中你可能会遇到一些错误。

我得到的那个缺少一个集合。在进入 TFS 控制台之前,您需要还原所有内容。

顺便说一句,完成后,请重新启动您的 TFS 服务或整个服务器,否则您可能会遇到另一个错误,例如找不到对象引用。

查看此blog 以寻求帮助。

顺便说一句,我认为您这样做的原因是您尝试将 TFS 恢复到不同的服务器。

您只需要从 TFS 安装重新安装应用程序层。我花了很长时间才弄明白。

【讨论】:

以上是关于无法还原 Team Foundation 服务器数据库的主要内容,如果未能解决你的问题,请参考以下文章

Team Foundation Service 构建在 NuGet 包还原时失败

无法连接到 Team Foundation Server

无法连接到Team Foundation Server

Team Foundation Server 2018 - TFS_SERVICE_LEVEL不匹配

Team Foundation Server 突然无法连接(错误:TF400324)

Team Foundation 无法从 Team Foundation Server 检索团队项目列表