%202017%20%E7%84%A1%E6%B3%95%E5%BB%BA%E7%AB%8B%E5%82%99%E4%BB%BD.png)
因此,我們的備份已經運行了幾年,在過去幾天裡,它開始進行額外的備份。我去重新配置備份以驗證設置,但收到一條錯誤訊息,指出它無法備份虛擬資料庫。
[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] -----------------------------------------------------
對於我們的服務和具有完全寫入權限的電腦來說,資料夾的權限都很好
有沒有辦法繞過這個臨時資料庫?正常備份工作正常,但現在無法備份此測試備份,因此刪除了每晚計劃的備份
答案1
TFS 伺服器備份只能透過恢復來恢復全部屬於 TFS 實例一部分的資料庫。執行跳過其中一個資料庫的備份會使您處於不可復原的狀態。
第一個錯誤訊息可能是問題的原因,備份正在由 TFS 資料層伺服器的 LocalSystem 帳戶執行(例如,[DOMAIN\SERVERNAME]$
因為該使用者沒有建立臨時 tfs_temp 資料庫的備份的權限,所以無法完成完整備份集。
解決方案是從 TFS 管理控制台刪除臨時項目集合,或修復執行備份的使用者的安全設置,以便它可以執行完整的伺服器備份。