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

时间:2013-09-05 09:20:50

标签: sql-server tfs database-restore

恢复TFS数据库时出错

我已使用Team Foundation Server管理控制台安排了团队基础服务器的备份。它需要每晚完整备份,看起来确实如此。

现在发生了灾难,我们的tfs崩溃了,我正在用tfs 2012建立一个新的Windows服务器.Luckely我有备份......但是......

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

  

TF401001:数据库的还原操作...失败。有关更多信息,请参阅日志

我为每个数据库(ReportServer,ReportServerTempDB,Tfs_warehouse,tfs_defaultcollection,TFS_configuration)都得到了这个。

查看日志文件:

[Info   @09:07:33.420] RESTORE DATABASE [Tfs_Configuration]  FROM DISK = N'\\172.16.46.234\Backup_TeamFS.crashed\Tfs_Configuration_9858508765097608601L.trn' WITH RECOVERY, NOUNLOAD, STATS = 10, STOPATMARK = N'TfsMarkTfpt'
[Error  @09:07:33.514] TF401001: The restore operation for database Tfs_Configuration failed. Please refer to the logs for more information 
[Error  @09:07:33.514] 
Exception Message: The database "Tfs_Configuration" does not exist. RESTORE can only create a database when restoring either a full backup or a file backup of the primary file.
RESTORE DATABASE is terminating abnormally. (type SqlException)
SQL Exception Class: 16
SQL Exception Number: 3118
SQL Exception Procedure: 
SQL Exception Line Number: 1
SQL Exception Server: TEAMFS
SQL Exception State: 1
SQL Error(s):
SQL Error[1]: System.Data.SqlClient.SqlError: RESTORE DATABASE is terminating abnormally.
    Class: 16
    Number: 3013
    Server: TEAMFS
    Source: .Net SqlClient Data Provider
    State: 1
    Procedure: 
    Line Number: 1

Exception Data Dictionary:
HelpLink.ProdName = Microsoft SQL Server
HelpLink.EvtSrc = MSSQLServer
HelpLink.EvtID = 3118
HelpLink.BaseHelpUrl = http://go.microsoft.com/fwlink
HelpLink.LinkId = 20476


Exception Stack Trace:    at Microsoft.TeamFoundation.Admin.SqlDatabaseBackupRestoreComponent.Execute(String sqlStatement)
   at Microsoft.TeamFoundation.Admin.SqlDatabaseRestore.Restore(String connectionString)
   at Microsoft.TeamFoundation.Admin.RestoreFactory.RestoreLogs(ActivityContext context, String serverName, String databaseName, String path, List`1 backupChain, Boolean useMarkAtEnd, Int32 minPercent)
   at Microsoft.TeamFoundation.Admin.RestoreDatabases.Run(ActivityContext context)

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

[9/1/2013 10:24:44 PM] [Info] starting full backups
[9/1/2013 10:24:44 PM] [Info] Taking Full Backup server:TEAMFS database:Tfs_Configuration filename:\\172.16.46.234\Backup_TeamFS\Tfs_Configuration_9858508747697505276F.bak
[9/1/2013 10:24:44 PM] [Info] BACKUP DATABASE [Tfs_Configuration] TO DISK = N'\\172.16.46.234\Backup_TeamFS\Tfs_Configuration_9858508747697505276F.bak' WITH NOFORMAT, NOINIT, NOSKIP, REWIND, NOUNLOAD, STATS = 10
[9/1/2013 10:32:17 PM] [Info] Backup Complete for database Tfs_Configuration
[9/1/2013 10:32:17 PM] [Info] Finished Full Backup server:TEAMFS database:Tfs_Configuration filename:\\172.16.46.234\Backup_TeamFS\Tfs_Configuration_9858508747697505276F.bak

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

2 个答案:

答案 0 :(得分:2)

我们设法做到这一点,所以我将分享我的经验..

所以你有备份..

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

  1. 双击安装文件。

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

    < / LI>

    一个。通过SQL管理控制台

    恢复配置和团队集合数据库

    湾打开TFS管理控制台

    ℃。单击“应用程序层”并配置此功能

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

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

    干杯

答案 1 :(得分:1)

以下是我如何解决这个问题。使用SQL管理工具还原备份文件。它们就像常规的数据库备份文件一样,所以你只需要像对待它们一样。

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

您可能会在此过程中遇到一些错误。

我得到的是缺少一个集合。您需要在转到TFS控制台之前恢复所有内容。

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

查看此blog以寻求帮助。

顺便说一下,我假设您这样做的原因是因为您尝试将TFS还原到其他服务器。

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