Team Foundation Server (TFS) 2017 Falha ao criar backup

1

Portanto, temos alguns backups em execução há alguns anos e, nos últimos dias, ele começou a fazer backup de tempos extras. Eu fui para reconfigurar os backups para verificar as configurações e recebi um erro dizendo que não é possível fazer backup do banco de dados fictício.

[Info   @12:03:50.669] +-+-+-+-+-| Running Confirming Permissions: Confirming Permissions |+-+-+-+-+-
[Info   @12:03:50.669] 
[Info   @12:03:50.669] +-+-+-+-+-| Confirming Permissions |+-+-+-+-+-
[Info   @12:03:50.669] Starting Node: CONTAINER
[Info   @12:03:50.669] NodePath : Container/Progress
[Info   @12:03:50.669] Node returned: Ignore
[Info   @12:03:50.669] Completed Confirming Permissions: Ignore
[Info   @12:03:50.669] -----------------------------------------------------
[Info   @12:03:50.669] 
[Info   @12:03:50.669] +-+-+-+-+-| Running VerifyCanBackupDatabase: Verifying backing up an empty database succeeds |+-+-+-+-+-
[Info   @12:03:50.669] 
[Info   @12:03:50.669] +-+-+-+-+-| Verifying backing up an empty database succeeds |+-+-+-+-+-
[Info   @12:03:50.669] Starting Node: DUMMYDATABASE
[Info   @12:03:50.669] NodePath : Container/Progress/DUMMYDATABASE
[Info   @12:03:50.669] Creating dummy database to test backup.
[Info   @12:03:51.200] Queue verify backup job
[Info   @12:03:51.263] Queued job [GUID]
[Info   @12:03:51.263] Starting backup job to verify necessary permissions
[Info   @12:03:56.295] Waiting for backup job to finish
[Error  @12:04:01.311] Backup job Failed: TF400797: Job extension had an unhandled error: System.Data.SqlClient.SqlException (0x80131904): The server principal "[DOMAIN\SERVERNAME]$" is not able to access the database "Tfs_Temp[GUID]" under the current security context.
BACKUP DATABASE is terminating abnormally.
   at Microsoft.VisualStudio.Services.Configuration.SqlDatabaseBackupRestoreComponent.Execute(String sqlStatement)
   at Microsoft.VisualStudio.Services.Configuration.SqlDatabaseBackup.Backup(ISqlConnectionInfo connectionInfo)
   at Microsoft.TeamFoundation.Admin.Jobs.DatabaseBackupJob.TakeFullBackupOfSingleDatabase(IVssRequestContext requestContext, String dataSource, String databaseName, String fullFileName, ITFLogger logger)
   at Microsoft.TeamFoundation.Admin.Jobs.VerifyBackupPermissionsJobExtension.Run(IVssRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime jobQueueTime, String& resultMessage)
   at Microsoft.TeamFoundation.Framework.Server.JobRunner.ExecuteJob(IVssRequestContext requestContext)
ClientConnectionId:00000000-0000-0000-0000-000000000000
Error Number:916,State:1,Class:14
[Info   @12:04:04.405] Node returned: Error
[Error  @12:04:04.405] TF401002: The SQL Server Database Engine failed to save the database backup to path \[MACHINE]\TFSBackups.  Please grant SQL service account read/write access to that folder.
[Info   @12:04:04.405] Completed VerifyCanBackupDatabase: Error
[Info   @12:04:04.405] -----------------------------------------------------

As permissões na pasta são boas, tanto com nosso serviço quanto com a máquina com permissões de gravação completas

Existe uma maneira de ignorar esse banco de dados temporário? O backup normal estava funcionando, mas agora que ele não conseguiu fazer backup desse teste, ele removeu os backups agendados todas as noites

    
por John 16.03.2018 / 20:12

1 resposta

1

Um backup do servidor TFS só pode ser restaurado restaurando todos os bancos de dados que fazem parte da instância do TFS. executar um backup que esteja ignorando um dos bancos de dados coloca você em um estado irrecuperável.

A primeira mensagem de erro é provavelmente a causa do problema, o backup está sendo executado pela conta LocalSystem do servidor TFS Data Tier (por exemplo, [DOMAIN\SERVERNAME]$ e porque esse usuário não tem permissão para criar backups do banco de dados temp tfs_temp, não é possível concluir o conjunto de backup completo.

A solução é descartar a coleção de projetos temporários do console administrativo do TFS ou corrigir as configurações de segurança do usuário que está executando o backup, para que ele possa executar um backup completo do servidor.

    
por 17.03.2018 / 14:10