了解備份 Team Foundation Server

您可以藉由建立 Visual Studio Team Foundation Server (TFS) 所需要之資料庫的定期備份排程,防止您的部署遺失資料。 若要完整還原 Team Foundation 的部署,您必須先備份所有 TFS 資料庫。 如果您的部署包括 SharePoint 產品或 SQL Server Reporting Services,您也必須備份 TFS 在那些元件內所使用的資料庫。 若要防止發生同步處理錯誤或資料不符錯誤,您必須將所有備份同步處理為相同時間戳記。 確保同步處理成功的最簡單方式就是使用有標示的異動。 在每一個 Team Foundation 資料庫中定期標示相關的異動,就可以在資料庫中建立一系列通用的復原點。 如需使用 SharePoint Foundation 及報告功能來備份單一伺服器部署的逐步指引,請參閱設定備份排程和計劃

備份資料庫

建立資料庫備份,這是 TFS 防止您部署的 Team Foundation 遺失的不二法門。 下表和隨附的圖例顯示您必須備份的資料庫,以及提供範例說明那些資料庫如何實際散發至部署中。

資料庫類型

產品

選擇性元件?

組態資料庫

Team Foundation Server

倉儲資料庫

Team Foundation Server

Team 專案集合資料庫

Team Foundation Server

SharePoint 產品資料庫

SharePoint 產品

報告資料庫

SQL Server Reporting Services

分析資料庫

SQL Server Analysis Services

部署拓撲

根據您的部署組態,所有需要備份的資料庫可能位在相同的實體伺服器上 (如此範例拓撲所示)。 此範例不包括 SharePoint 產品或 Reporting Services,因此您不需要備份任何與報告、分析或 SharePoint 產品相關聯的資料庫。

包含資料庫的簡單拓撲

替代方式是資料庫可能散發至多部伺服器和伺服器陣列。 在此範例拓撲中,您必須備份下列範圍橫跨六部伺服器或伺服器陣列的資料庫:

  • 組態資料庫

  • 倉儲資料庫

  • 位在 SQL Server 叢集上的 Team 專案集合資料庫

  • 位在執行 SQL Server 之獨立伺服器上的集合資料庫

  • 兩個 SharePoint Web 應用程式1 的 SharePoint 產品管理資料庫和網站集合資料庫

  • 位在執行 Reporting Services 之伺服器上的資料庫

  • 位在執行 Analysis Services 之伺服器上的資料庫

1 如果您的 SharePoint 資料庫已跨多部伺服器擴充,您就無法使用排程備份功能來備份這些資料庫。 您必須手動設定這些資料庫的備份,並確定這些備份與 TFS 資料庫的備份同步。 如需詳細資訊,請參閱 手動備份 Team Foundation Server

範例:複雜的資料庫分佈

在上述兩個範例中,您不需要備份任何連接至伺服器的用戶端。 不過,您可能需要先手動清除用戶端電腦上的 Team Foundation Server 快取,這些用戶端電腦才能重新連接至已還原的部署。

要備份的資料庫

下列清單提供您必須備份之項目 (取決於部署資源) 的其他詳細資料。

警告

下列清單中的所有資料庫都是 SQL Server 資料庫。雖然您可以使用 SQL Server Management Studio 隨時備份個別資料庫,但是您應該盡可能避免使用這樣的個別備份。因為 TFS 使用的資料庫都是相關的,所以如果您從個別備份進行還原,則可能會得到意外的結果。如果您只備份一個資料庫,則該資料庫中的資料會與其他資料庫中的資料不同步。

  • Team Foundation Server 資料庫:Team Foundation Server 的邏輯資料層包括數個 SQL Server 資料庫 (包括組態資料庫、倉儲資料庫和部署中每個 Team 專案集合的資料庫)。 這些資料庫可能都位在相同的伺服器上、散發至相同 SQL Server 部署中的數個執行個體,或散發至多部伺服器。 不論其實際散發情況為何,您都必須將所有資料庫備份為相同時間戳記,以協助確保資料不遺失。 您可以手動執行資料庫備份,也可以使用在特定時間或間隔執行的維護計劃來自動執行資料庫備份。

    警告

    Team Foundation Server 的資料庫清單不是靜態的。每當您建立集合時都會建立新的資料庫。當您建立集合時,請務必將該集合的資料庫加入至您的維護計畫。

  • SharePoint 產品資料庫:如果您的部署使用 SharePoint 產品裝載 Team 專案入口網站,則必須備份數個資料庫。 這些資料庫包含部署所使用的每個 SharePoint Web 應用程式的系統管理資料庫,以及裝載 Team 專案入口網站的網站集合資料庫。 最理想的情況是,您的部署已經設定讓部署中的每個 Team 專案集合分別使用不同的網站集合。 就像 Team 專案集合可以在 Team Foundation Server 中當成單位來進行備份和還原,網站集合也可以在 SharePoint 產品 中進行備份和還原。 如果您部署中的一個或多個集合使用網站或子網站,而不是使用網站集合做為它們的根網站,則可能會無法完整備份和還原集合。 如需詳細資訊,請參閱管理 Team 專案集合

    注意事項注意事項

    您可能會假設您必須為 Team 專案入口網站網頁備份資料庫和網站,但是,SharePoint 產品會從資料庫動態產生網站。因此,當您備份資料庫時,也會備份顯示為網站之 Team 專案的部分。如果您已經在 SharePoint 產品中,而不是在 Team Foundation 外部建立自訂網站集合、網站範本或 Web 組件,您必須另外備份這些項目。如需詳細資訊,請參閱 Microsoft 網站上的下列網頁:備份 (SharePoint Foundation 2010)

  • Reporting Services 和 Analysis Services 的資料庫:如果您的部署使用 SQL Server Reporting Services 或 SQL Server Analysis Services 產生 Team Foundation Server 的報表,則必須備份報告和分析資料庫。 不過,您在還原之後仍必須重新產生特定資料庫,例如倉儲。

  • 報表伺服器的加密金鑰:報表伺服器具有您必須備份的加密金鑰。 此金鑰會保護儲存於報表伺服器資料庫中的機密資訊。 您可以使用 Reporting Services 組態工具或命令列工具,手動備份此金鑰。

備份的進階準備工作

當您部署 Team Foundation 時,應該記錄所建立的帳戶以及電腦名稱、密碼和指定的安裝選項。 您也應該在安全的位置保存所有復原資料、文件以及資料庫與異動記錄備份的複本。 若要保護不受災害影響 (例如火災或地震),則應該在與伺服器位置不同的位置中保存伺服器備份的複本。 此策略可保護您不會遺失重要的資料。 最佳做法是應該保存備份媒體的三個複本,並至少應該將其中一個複本保存在受控制環境的不同位置。

重要

定期執行評估資料還原,以驗證是否正確地備份檔案。評估還原會發現軟體驗證時沒有顯示的硬體問題。

備份及還原資料庫時,您必須將資料備份至有網路位址的媒體 (例如,當做網路磁碟機共用的磁帶或磁碟)。 您的備份計劃應該包括可管理媒體的提供事項,例如下列方法:

  • 用來存放及回收處理備份集的追蹤與管理計劃。

  • 用來覆寫備份媒體的排程。

  • 在多伺服器環境中,決定使用集中式或分散式備份。

  • 追蹤媒體可用期限的方法。

  • 將遺失備份集或備份媒體 (例如磁帶) 的影響降至最低的程序。

  • 決定要在本地或異地存放備份集,以及分析此決定對復原時間的影響。

因為 Team Foundation 的資料是存放在 SQL Server 資料庫中,所以您不需要備份已安裝 Team Foundation 用戶端的電腦。 如果這些電腦發生媒體故障或損毀,則可以重新安裝用戶端軟體,並重新連接至伺服器。 透過重新安裝用戶端軟體,您的使用者就會有更清楚和更可靠的替代方法,從備份中還原用戶端電腦。

使用更新 2 中的排程備份功能,或在 SQL Server 中手動建立維護計畫來備份與 Team Foundation 部署相關的資料庫,即可備份伺服器。 Team Foundation Server 的資料庫彼此之間會緊密合作,如果您建立手動計劃,則應該同時將它們備份及還原。 如需備份資料庫策略的詳細資訊,請參閱 Microsoft 網站上的下列網頁:SQL Server 中的備份和還原策略簡介

備份類型

了解可用的備份類型,有助於判斷備份部署的最佳選項。 例如,如果您使用大型部署,並且在有效率地使用有限的儲存資源的同時想要防止資料遺失,則可以設定差異備份,以及完整資料備份。 如果使用的是 SQL Server ALwaysOn,您可以建立次要資料庫的備份。 您也可以嘗試使用備份壓縮,或分割跨多個檔案的備份。 以下是備份選項的簡短描述:

完整資料備份 (資料庫):若要讓您的部署具有可復原性,則需要完整的資料庫備份。 完整備份包括一部分異動記錄,如此才能復原完整備份。 完整備份是獨立的 (Self-Contained),因此它們代表在您進行備份時存在的整個資料庫。 如需詳細資訊,請參閱 Microsoft 網站上的下列網頁:完整資料庫備份

差異資料備份 (資料庫):差異資料庫備份只會記錄前次完整資料庫備份 (稱為差異基底) 之後變更的資料。 差異資料庫備份比完整資料庫備份還要小,而且速度也比較快。 此選項可節省備份時間,但會增加複雜度。 針對大型資料庫,差異備份的發生間隔比資料庫備份還要短,因而減少工作遺失的可能。 如需詳細資訊,請參閱 Microsoft 網站上的下列網頁:差異資料庫備份

您也應該定期備份異動記錄。 如果您使用完整資料庫備份模型,則在復原資料時需要這些備份。 如果您備份異動記錄,則可以在故障點或另一個特定時間點復原資料庫。

異動記錄檔備份:除了執行每一項修改的異動外,異動記錄檔也是資料庫中所發生之所有修改的連續記錄。 異動記錄會記錄每個異動的開始、資料的變更,必要時也會記錄足夠的資訊來復原該異動期間所進行的修改。 資料庫中發生可記錄的作業時,記錄檔就會持續擴充。

備份異動記錄,就可以將資料庫復原至較早的時間點。 例如,您可以將資料庫還原至輸入不需要的資料之前,或是還原至故障點。 除了資料庫備份以外,異動記錄檔備份也必須是還原策略的一部分。 如需詳細資訊,請參閱 Microsoft 網站上的下列網頁:使用異動記錄檔備份

異動記錄檔備份使用的資源通常會比完整備份少。 因此,比起完整備份,您可以更經常建立異動記錄備份,因而降低遺失資料的風險。 不過,有時候異動記錄檔備份會比完整備份還大。 例如,資料庫可能具有高異動率,因而使異動記錄快速擴充。 在這種情況下,您應該更頻繁地建立異動記錄備份。 如需詳細資訊,請參閱 Microsoft 網站上的下列網頁:寫滿異動記錄疑難排解

您可以執行下列類型的異動記錄備份:

  • 純記錄檔備份只包含間隔的異動記錄檔記錄,而不含任何大量變更。

  • 大量記錄檔備份包含大量作業所變更的記錄檔和資料頁。 不允許時間點復原。

  • 尾端記錄檔備份則是在可能損毀的資料庫上執行,以擷取尚未備份的記錄檔記錄。 會在發生故障之後進行結尾記錄備份,防止工作遺失並可包含純記錄檔或大量記錄檔資料。

因為資料同步處理對於成功還原 Team Foundation Server 非常重要,如果您正在進行手動設定備份,則應該使用標示異動做為備份策略的一部分。 如需詳細資訊,請參閱 設定備份排程和計劃手動備份 Team Foundation Server

備份服務 (應用程式層)

您必須針對邏輯應用程式層執行的唯一備份就是備份 Reporting Services 的加密金鑰。 如果您使用排程備份功能來備份您的部署,則會為您備份這個金鑰做為計劃的一部分。 您可能會假設您必須備份做為 Team 專案入口網站的網站。 如果您將 SharePoint 產品整合為 Team Foundation Server 部署的一部分,則會在備份 Team Foundation Server 和 SharePoint 產品資料庫期間備份入口網站。 不過,如果您指定的網站不是使用整合 Web 應用程式所建立,則必須手動備份及還原那些網站。 此外,如果您對 SharePoint 產品或服務進行任何自訂,則也必須備份或記錄它們,以在新伺服器上予以重新產生。

雖然備份應用程式層比備份資料層還要簡單,但是您在還原應用程式層時必須執行許多步驟。 您必須安裝 Team Foundation 的另一個應用程式層,將 Team 專案集合重新導向為使用新的應用程式層,並重新導向 Team 專案的入口網站。

預設資料庫名稱

如果您沒有自訂資料庫的名稱,則可以使用下表來識別您的 Team Foundation Server 部署中所使用的資料庫。 如前所述,並非所有部署都會有這些資料庫。 例如,如果您未使用 Reporting Services 設定 Team Foundation Server,就不會有 ReportServer 或 ReportServerTempDB 資料庫。 同樣地,如果您未設定 Team Foundation Server 來支援 Lab Management,就無法擁有 System Center Virtual Machine Manager (SCVMM) 所適用的資料庫 (其名稱為 VirtualManagerDB)。 此外,Team Foundation Server 使用的資料庫可能會散發至多個 SQL Server 執行個體或散發至多部伺服器。

注意事項注意事項

根據預設,前置詞 TFS_ 會加入至當您安裝 Team Foundation Server 或是當它運作時,所自動建立的任何資料庫名稱中。

資料庫

說明

TFS_Configuration

Team Foundation Server 的組態資料庫包含部署的目錄、伺服器名稱和組態資料。 此資料庫的名稱在 TFS_Configuration 之間可能包括其他字元 (例如安裝 Team Foundation Server 之人員的使用者名稱)。 例如,資料庫的名稱可能是 TFS_UserNameConfiguration。

TFS_Warehouse

倉儲資料庫包含的資料可用來建置 Reporting Services 所使用的倉儲。 此資料庫的名稱在 TFS_Warehouse 之間可能包括其他字元 (例如安裝 Team Foundation Server 之人員的使用者名稱)。 例如,資料庫的名稱可能是 TFS_UserNameWarehouse。

TFS_CollectionName

Team 專案集合的資料庫包含該集合中 Team 專案的所有資料。 此資料包括原始程式碼、組建組態和 Lab Management 組態。 集合資料庫的數目將會等於集合的數目。 例如,如果您的部署中有三個集合,您必須備份三個集合資料庫。 每個資料庫的名稱在 TFS_ 與 CollectionName 之間可能包括其他字元 (例如建立集合之人員的使用者名稱)。 例如,集合資料庫的名稱可能是 TFS_UserNameCollectionName。

TFS_Analysis

SQL Server Analysis Services 資料庫包含您 Team Foundation Server 部署的資料來源和 Cube。 此資料庫的名稱在 TFS_Analysis 之間可能包括其他字元 (例如安裝 Analysis Services 之人員的使用者名稱)。 例如,資料庫的名稱可能是 TFS_UserNameAnalysis。

注意事項注意事項

您可以備份此資料庫,但是必須從已還原的 TFS_Warehouse 資料庫重建倉儲。

ReportServer

Reporting Services 資料庫包含您 Team Foundation Server 部署的報表和報表設定。

注意事項注意事項

如果 Reporting Services 安裝在與 Team Foundation Server 不同的伺服器上,則此資料庫可能不存在於 Team Foundation 的資料層伺服器上。在這種情況下,您必須個別從 Team Foundation Server 設定、備份並還原它。不過,您應該同步維護資料庫,以避免發生同步處理錯誤。

ReportServerTempDB

Reporting Services 的暫存資料庫會暫時存放執行特定報表時的資訊。

注意事項注意事項

如果 Reporting Services 安裝在與 Team Foundation Server 不同的伺服器上,則此資料庫可能不存在於 Team Foundation 的資料層伺服器上。在這種情況下,您必須個別從 Team Foundation Server 設定、備份並還原它。不過,您應該同步維護資料庫,以避免發生同步處理錯誤。

WSS_Config

SharePoint 產品的組態資料庫包含所有網站的清單 (例如內容資料庫、網站範本、自訂 Web 組件,以及 SharePoint 管理中心的其他設定)。

注意事項注意事項

如果手動備份或還原 SharePoint 產品 使用的資料庫,您不應該使用有標示的異動。不過,為了避免發生同步處理錯誤,您應該嘗試同步處理 SharePoint 產品 和 Team Foundation Server 的備份與還原排程。如需詳細資訊,請參閱建立 SharePoint Foundation 的備份計劃

WSS_Content

SharePoint 產品的內容資料庫包含 Team 專案入口網站的實際內容。

注意事項注意事項

此資料庫的名稱會根據安裝的 SharePoint 產品版本以及安裝人員是否自訂該名稱而有所不同。如果手動備份或還原 SharePoint 產品 使用的資料庫,您不應該使用有標示的異動。不過,為了避免發生同步處理錯誤,您應該嘗試同步處理 SharePoint 產品 和 Team Foundation Server 的備份與還原排程。如需詳細資訊,請參閱建立 SharePoint Foundation 的備份計劃

WSS_AdminContent

SharePoint 產品的系統管理資料庫包含使用者、角色和資料庫的安全性資訊。

注意事項注意事項

如果手動備份或還原 SharePoint 產品 使用的資料庫,您不應該使用有標示的異動。不過,為了避免發生同步處理錯誤,您應該嘗試同步處理 SharePoint 產品 和 Team Foundation Server 的備份與還原排程。如需詳細資訊,請參閱建立 SharePoint Foundation 的備份計劃

VirtualManagerDB

SCVMM 的管理資料庫包含您在 SCVMM 系統管理員主控台中所檢視的資訊,例如虛擬機器、虛擬機器主機、虛擬機器程式庫伺服器以及其屬性。

注意事項注意事項

如果 SCVMM 安裝在與 Team Foundation Server 不同的伺服器上,則這個資料庫可能不會存在於 Team Foundation 的資料層伺服器上。在這種情況下,您必須個別從 Team Foundation Server 設定、備份並還原它。不過,您應該使用標示的異動並同步維護資料庫,以避免發生同步處理錯誤。

請參閱

概念

備份和還原 TFS

其他資源

將部署還原至新硬體