TFS 2015分析数据库同步时域信任关系失败求助
TFS 2015 全量/增量分析数据库同步失败:域信任关系错误解决办法
我之前处理过好几起类似的TFS 2015分析数据库同步故障,这个错误的核心是The trust relationship between the primary domain and the trusted domain failed,本质是TFS服务账户无法正确解析OLAP数据库的角色权限,导致同步作业中断。以下是几个经过验证的可行修复方案:
1. 排查域信任与服务账户有效性
- 先确认TFS服务器所在域的控制器状态:在TFS应用层服务器上运行命令
nltest /sc_query:你的域名,检查域连接是否正常,有没有出现错误提示。如果是跨域部署,还要验证域之间的信任关系是否未过期、未被破坏。 - 检查TFS相关服务的运行账户(包括TFS Warehouse服务、Analysis Services服务账户):确认账户没有被锁定、密码没有过期,并且在域中是有效状态。同时要确保这些账户拥有Analysis Services实例的服务器管理员权限,以及
Tfs_Analysis数据库的读写权限。
2. 重新配置OLAP数据库角色账户
- 打开SQL Server Management Studio,连接到TFS使用的Analysis Services实例。
- 找到
Tfs_Analysis数据库,展开「角色」节点,检查TfsWarehouseDataReader和TfsWarehouseDataWriter这两个角色中的账户:- 移除任何格式错误(比如没有带域前缀)或者已失效的账户;
- 重新添加正确的TFS服务账户(格式为
域\账户名),保存更改后,手动测试账户是否能正常访问该数据库。
3. 重置TFS Warehouse配置
- 打开TFS管理控制台,切换到「应用层」→「Warehouse」选项卡。
- 点击「管理」按钮,在弹出的配置窗口中重新确认Analysis Services的服务器地址、数据库名称,以及服务账户的用户名和密码是否正确。
- 保存配置后,手动触发一次「Full Analysis Database Sync」作业,观察作业执行状态是否恢复正常。
4. 修复服务器与域的信任关系
如果TFS服务器本身和域的信任关系出现问题,可以尝试:
- 以管理员身份打开命令提示符,运行命令
netdom reset 你的服务器名 /domain:你的域名; - 重启TFS服务器,之后再次验证服务账户的登录权限,确保能正常访问域内资源。
错误日志详情
[Full Analysis Database Sync]: ---> AnalysisDatabaseProcessingType=Full, needCubeSchemaUpdate=True. ---> Microsoft.TeamFoundation.Warehouse.WarehouseException: TF221122: An error occurred running job Full Analysis Database Sync for team project collection or Team Foundation server TEAM FOUNDATION. ---> Microsoft.TeamFoundation.Warehouse.WarehouseException: Failed to Process Analysis Database 'Tfs_Analysis'. ---> System.SystemException: The trust relationship between the primary domain and the trusted domain failed. at System.Security.Principal.NTAccount.TranslateToSids(IdentityReferenceCollection sourceAccounts, Boolean& someFailed) at System.Security.Principal.NTAccount.Translate(IdentityReferenceCollection sourceAccounts, Type targetType, Boolean forceSuccess) at System.Security.Principal.NTAccount.Translate(Type targetType) at Microsoft.TeamFoundation.Warehouse.OlapCreator.AddAccountToRole(Role role, String accountName, Boolean throwOnError) at Microsoft.TeamFoundation.Warehouse.OlapCreator.AddAccountsToRole(Database database, String roleName, IEnumerable`1 accountNames, Boolean ignoreAccountResolutionFailures) at Microsoft.TeamFoundation.Warehouse.OlapCreator.CreateOrUpdateRoles(Server server, Database database, IEnumerable`1 serviceAccountNames, Boolean ignoreServiceAccountResolutionFailures, IEnumerable`1 readerAccountNames, Boolean ignoreReaderAccountResolutionFailures) at Microsoft.TeamFoundation.Warehouse.OlapCreator.UpdateOlapSchema(Server server, IEnumerable`1 readerAccountNames, WarehouseConfig warehouseConfig) at Microsoft.TeamFoundation.Warehouse.TFSOlapProcessComponent.UpdateOlapSchema() at Microsoft.TeamFoundation.Warehouse.TFSOlapProcessComponent.ProcessOlap(AnalysisDatabaseProcessingType processingType, WarehouseChanges warehouseChanges, Boolean lastProcessingFailed, Boolean cubeSchemaUpdateNeeded) --- End of inner exception stack trace --- at Microsoft.TeamFoundation.Warehouse.TFSOlapProcessComponent.ProcessOlap(AnalysisDatabaseProcessingType processingType, WarehouseChanges warehouseChanges, Boolean lastProcessingFailed, Boolean cubeSchemaUpdateNeeded) at Microsoft.TeamFoundation.Warehouse.AnalysisDatabaseSyncJobExtension.RunInternal(IVssRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime queueTime, String& resultMessage) at Microsoft.TeamFoundation.Warehouse.WarehouseJobExtension.Run(IVssRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime queueTime, String& resultMessage) --- End of inner exception stack trace ---
内容的提问来源于stack exchange,提问作者D-luv
相关产品推荐
相关产品推荐

