TFS 2010还原了数据库,TfsJobAgent无法连接到数据库

时间:2013-07-11 17:19:04

标签: tfs tfs2010 disaster-recovery

我有一个Team Foundation Server 2010安装程序,其中我在一台服务器上安装了TFS,在另一台服务器上安装了数据库。最近,数据库的服务器完全崩溃,我不得不更换它。我从备份中恢复了数据库,并将tfs的web.config文件更改为指向新服务器,并且大多数操作似乎都正常。我可以连接到tfs,检查/签入,创建工作项等。但是,我无法对构建进行排队,并且事件日志中充满了错误,说TfsJobAgent无法连接到数据库。我想知道是否有人知道是否有办法配置TfsJobAgent指向我的新数据库。事件日志详细信息如下(TCOSRV1是运行tfs的计算机,而不是数据库服务器)。任何帮助将不胜感激。

  

TF53010:Team Foundation中发生以下错误   组件或扩展:日期(UTC):7/11/2013 4:55:27 PM机器:   TCOSRV1应用程序域:TfsJobAgent.exe程序集:   Microsoft.TeamFoundation.Framework.Server,Version = 10.0.0.0,   Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a; v2.0.50727服务   主机:流程详细信息:流程名称:TFSJobAgent流程ID:3520   线程ID:5304账户名​​称:NT AUTHORITY \ NETWORK SERVICE

     

详细消息:作业代理执行期间出错。该   将重试操作。在接下来的五分钟内可能出现类似错误   不记录。异常消息:TF246017:Team Foundation Server   无法连接到数据库。验证服务器是否是   托管数据库是可操作的,而网络问题则不然   阻止与服务器的通信。 (类型   DatabaseConnectionException)

     

异常堆栈跟踪:at   Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.TranslateException(的Int32   errorNumber,SqlException sqlException,SqlError sqlError)at   Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.TranslateException(SQLEXCEPTION   sqlException)at   Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.MapException(SQLEXCEPTION   ex,QueryExecutionState queryState)at   Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.HandleException(SQLEXCEPTION   ex)at   Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.Execute(ExecuteType   executeType,CommandBehavior behavior)at   Microsoft.TeamFoundation.Framework.Server.ExtendedAttributeComponent.ReadDatabaseAttribute(字符串   attributeName)at   Microsoft.TeamFoundation.Framework.Server.DatabaseConnectionValidator.ValidateDatabaseInstanceStamp(字符串   configConnectionString,Guid configInstanceId)at   Microsoft.TeamFoundation.Framework.Server.DatabaseConnectionValidator.ValidateApplicationConfiguration(字符串   configConnectionString,Guid configInstanceId,List`1 sqlInstances,   String analysisInstance,String analysisDatabaseName,Boolean   ignoreAnalysisDatasourceUpdateErrors,Boolean autoFixConfiguration,   Boolean fullValidation,DatabaseVerificationDatabaseTypes   continueOnMissingDatabaseTypes)at   Microsoft.TeamFoundation.Framework.Server.ApplicationServiceHost..ctor(GUID   instanceId,String connectionString,String physicalDirectory,String   plugInDirectory,String virtualDirectory,Boolean   failOnInvalidConfiguration)at   Microsoft.TeamFoundation.Framework.Server.JobApplication.SetupInternal()   在   Microsoft.TeamFoundation.Framework.Server.JobServiceUtil.RetryOperationsUntilSuccessful(RetryOperations   操作)

     

内部异常详情:

     

异常消息:与网络相关或特定于实例的错误   在建立与SQL Server的连接时发生。服务器是   没找到或无法访问。验证实例名称是否为   正确并且SQL Server配置为允许远程连接。   (提供程序:SQL网络接口,错误:26 - 错误定位   指定的服务器/实例)(类型SqlException)SQL异常类:20   SQL异常编号:-1 SQL异常过程:SQL异常行   数字:0 SQL异常服务器:SQL异常状态:0 SQL错误:

     

异常数据字典:HelpLink.ProdName = Microsoft SQL Server   HelpLink.EvtSrc = MSSQLServer HelpLink.EvtID = -1 HelpLink.BaseHelpUrl   = http://go.microsoft.com/fwlink HelpLink.LinkId = 20476

     

异常堆栈跟踪:at   System.Data.SqlClient.SqlInternalConnection.OnError(SQLEXCEPTION   exception,Boolean breakConnection,Action1 wrapCloseInAction)at   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject   stateObj,Boolean callerHasConnectionLock,Boolean asyncClose)at   System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo,   SqlInternalConnectionTds connHandler,Boolean ignoreSniOpenTimeout,   Int64 timerExpire,布尔加密,布尔值trustServerCert,布尔值   integratedSecurity,Boolean withFailover)at   System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo   serverInfo,String newPassword,SecureString newSecurePassword,   Boolean ignoreSniOpenTimeout,TimeoutTimer timeout,Boolean   withFailover)at   System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo   serverInfo,String newPassword,SecureString newSecurePassword,   Boolean redirectedUserInstance,SqlConnectionString connectionOptions,   SqlCredential凭据,TimeoutTimer超时)at   System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer   timeout,SqlConnectionString connectionOptions,SqlCredential   credential,String newPassword,SecureString newSecurePassword,   Boolean redirectedUserInstance)at   System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity   identity,SqlConnectionString connectionOptions,SqlCredential   凭证,Object providerInfo,String newPassword,SecureString   newSecurePassword,Boolean redirectedUserInstance,SqlConnectionString   userConnectionOptions)at   System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions   options,DbConnectionPoolKey poolKey,Object poolGroupProviderInfo,   DbConnectionPool池,DbConnection owningConnection,   DbConnectionOptions userOptions)at   System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(类DBConnectionPool   pool,DbConnectionOptions选项,DbConnectionPoolKey poolKey,   DbConnectionOptions userOptions)at   System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnectionOptions   userOptions)at   System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnectionOptions   userOptions)at   System.Data.ProviderBase.DbConnectionPool.TryGetConnection(的DbConnection   owningObject,UInt32 waitForMultipleObjectsTimeout,Boolean   allowCreate,Boolean onlyOneCheckConnection,DbConnectionOptions   userOptions,DbConnectionInternal&连接)   System.Data.ProviderBase.DbConnectionPool.TryGetConnection(的DbConnection   owningObject,TaskCompletionSource1 retry,DbConnectionOptions   userOptions,DbConnectionInternal&连接)   System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(的DbConnection   owningConnection,TaskCompletionSource1重试,DbConnectionOptions   userOptions,DbConnectionInternal&连接)   System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(的DbConnection   outerConnection,DbConnectionFactory connectionFactory,   TaskCompletionSource1重试,DbConnectionOptions userOptions)at   System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1   重试)在System.Data.SqlClient.SqlConnection.Open()处   Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.Execute(ExecuteType   executeType,CommandBehavior行为)

1 个答案:

答案 0 :(得分:0)

恢复到新的数据层(在服务器之间移动时调用)需要遵循相当广泛的过程,以确保所有设置都得到适当更新。对于您用于从一个SQL Server迁移到另一个SQL Server的过程,该过程将是相同的。

这里解释了整个过程: